“जेव्हा तुम्हाला डेमो मिळतो आणि एखादी गोष्ट 90% वेळा काम करते, तेव्हा ती फक्त पहिली नऊ असते.” – आंद्रेई करपथी

“मार्च ऑफ नाइन” हे एक सामान्य उत्पादकतेचे सत्य बनवते: तुम्ही ठोस डेमोसह पहिल्या 90% विश्वासार्हतेपर्यंत पोहोचू शकता आणि प्रत्येक अतिरिक्त नऊसाठी अनेकदा समान अभियांत्रिकी प्रयत्नांची आवश्यकता असते. एंटरप्राइझ संघांसाठी, “सामान्यपणे कार्य करते” आणि “विश्वसनीय सॉफ्टवेअर म्हणून कार्य करते” मधील अंतर आहे जे त्यांचे दत्तक ठरवते.

नाइनच्या मोर्चामागील गुंतागुंतीचे गणित

“प्रत्येक नऊ कामाचे प्रमाण समान आहे.” – आंद्रेई करपथी

प्रॉक्सी वर्कफ्लो अपयश वाढवते. ठराविक संस्थात्मक प्रवाहामध्ये हे समाविष्ट असू शकते: हेतू विश्लेषण, संदर्भ पुनर्प्राप्ती, नियोजन, एक किंवा अधिक साधनांचा वापर, प्रमाणीकरण, समन्वय आणि ऑडिट लॉगिंग. जर वर्कफ्लोमध्ये n पायऱ्या असतील आणि प्रत्येक पायरी संभाव्यतेसह यशस्वी होईल pजवळजवळ सार्वत्रिक यश p^n.

10-चरणांच्या वर्कफ्लोमध्ये, एकूण यश प्रत्येक पायरीच्या अपयशामुळे एकत्रित होते. जोपर्यंत तुम्ही सामायिक अवलंबित्व कठोर करत नाही तोपर्यंत संबंधित आउटेज (प्रमाणीकरण, दर मर्यादा, कनेक्टर) वरचढ राहतील.

प्रत्येक पायरीवर यश (P)

10 पायऱ्यांमध्ये यश (P^10)

वर्कफ्लो अयशस्वी दर

10 वर्कफ्लो/दिवसावर

सराव मध्ये याचा अर्थ काय आहे

90.00%

34.87%

६५.१३%

~6.5 आउटेज/दिवस

प्रोटोटाइप क्षेत्र. बहुतेक कामात व्यत्यय येतो

99.00%

90.44%

९.५६%

~1 दर 1.0 दिवसांनी

डेमोसाठी चांगले, परंतु वास्तविक वापरामध्ये व्यत्यय अजूनही वारंवार आहेत.

99.90%

99.00%

1.00%

~1 दर 10.0 दिवसांनी

तो अजूनही अविश्वसनीय वाटतो कारण चुका सामान्य राहतात.

99.99%

99.90%

०.१०%

~1 दर 3.3 महिन्यांनी

येथूनच ते विश्वसनीय एंटरप्राइझ-स्तरीय सॉफ्टवेअरसारखे वाटू लागते.

मोजता येण्याजोगे SLO म्हणून विश्वासार्हतेची व्याख्या

“तुमच्या दाव्यांमध्ये अधिक स्पष्ट होण्यासाठी अधिक वेळ घालवणे खूप अर्थपूर्ण आहे.” – आंद्रेई करपथी

विश्वासार्हतेचे मोजमाप करण्यायोग्य उद्दिष्टांमध्ये रूपांतर करून, नंतर भिन्नता कमी करणाऱ्या नियंत्रणांमध्ये गुंतवणूक करून संघ उच्च गुण मिळवतात. SLI आयडेंटिफायर्सच्या छोट्या संचासह प्रारंभ करा जे मॉडेल आणि आसपासच्या प्रणालीच्या वर्तनाचे वर्णन करतात:

  • कार्यप्रवाह पूर्ण होण्याचा दर (यश किंवा स्पष्ट वाढ).

  • इनपुट आणि आउटपुटवर कठोर स्कीमा प्रमाणीकरणासह, टाइमआउटमध्ये टूल कॉलचा यशस्वी दर.

  • स्कीमा प्रति संरचित प्रतिसादासाठी वैध आउटपुट दर (JSON/मीडिया).

  • पॉलिसी अनुपालन दर (वैयक्तिकरित्या ओळखण्यायोग्य माहिती, गुपिते आणि सुरक्षा निर्बंध).

  • p95 एंड-टू-एंड लेटन्सी आणि प्रति वर्कफ्लो खर्च.

  • रोलबॅक दर (सुरक्षित मॉडेल, कॅशे केलेला डेटा किंवा मानवी पुनरावलोकन).

प्रत्येक वर्कफ्लो लेयरसाठी (कमी/मध्यम/उच्च प्रभाव) SLO सेट करा आणि एरर बजेट व्यवस्थापित करा जेणेकरून प्रयोग नियंत्रणात राहतील.

नऊ लीव्हर विश्वसनीयपणे नाइन जोडतात

1) स्पष्ट वर्कफ्लो डायग्रामद्वारे स्वायत्तता मर्यादित करा

विश्वासार्हता वाढते जेव्हा सिस्टमने स्थिती परिभाषित केली असते, पुन्हा प्रयत्नांसाठी निश्चित प्रक्रिया, कालबाह्यता आणि अंतिम परिणाम.

  • मॉडेल कॉल राज्य मशीन किंवा DAG मध्ये राहतात, जेथे प्रत्येक नोड अनुमत कलाकृती, जास्तीत जास्त प्रयत्न आणि यशाचा अंदाज परिभाषित करतो.

  • निष्क्रिय की सह स्थिर स्थिती जेणेकरून पुन्हा प्रयत्न सुरक्षित आणि दुरुस्त करता येतील.

2) सर्व सीमा ओलांडून करारांची अंमलबजावणी

बहुतेक उत्पादन अपयश इंटरफेसमध्ये ड्रिफ्ट म्हणून सुरू होते: विकृत JSON, गहाळ फील्ड, चुकीची युनिट्स किंवा शोधलेले अभिज्ञापक.

  • प्रत्येक संरचित आउटपुटसाठी JSON स्कीमा/प्रोटोबफ वापरा आणि कोणतेही साधन कार्यान्वित करण्यापूर्वी सर्व्हरची बाजू सत्यापित करा.

  • गणन, मूलभूत अभिज्ञापक, वेळ सामान्यीकरण (ISO-8601 + टाइम झोन) आणि युनिट्स (SI) वापरा.

3) वर्ग प्रमाणीकरण साधने: वाक्यरचना, शब्दार्थ आणि व्यवसाय नियम

स्कीमा प्रमाणीकरण फॉरमॅट कॅप्चर करते. सिमेंटिक चेक आणि व्यवसाय नियम प्रशंसनीय उत्तरांना प्रतिबंधित करतात ज्यामुळे सिस्टमचे उल्लंघन होते.

  • सिमेंटिक चाचण्या: संदर्भ अखंडता, संख्यात्मक सीमा, परवानगी तपासणे आणि जेव्हा उपलब्ध असेल तेव्हा अभिज्ञापकाद्वारे निर्धारित दुवे.

  • व्यवसाय नियम: लेखन क्रिया, डेटा स्थान मर्यादा आणि क्लायंट स्तर मर्यादा यासाठी मंजूरी.

4) अनिश्चितता सिग्नल वापरून जोखीम-आधारित मार्ग

उच्च-प्रभाव कृती उच्च हमी पात्र आहेत. जोखीम-आधारित राउटिंग अनिश्चिततेला उत्पादनाच्या फायद्यात बदलते.

  • राउटिंग निर्दिष्ट करण्यासाठी कॉन्फिडन्स सिग्नल्स (क्लासिफायर्स, कंसिस्टन्सी चेक किंवा सेकंड फॉर्म चेकर्स) वापरा.

  • मजबूत मॉडेल्स, अतिरिक्त पडताळणी किंवा मानवी मंजूरी यांच्या पलीकडे धोकादायक पायऱ्यांसाठी प्रवेशद्वार.

5) अभियंता टूल कॉल जसे की वितरित प्रणाली

कनेक्टर आणि अवलंबित्व बहुधा प्रॉक्सी सिस्टममधील अपयश दरांवर वर्चस्व गाजवतात.

  • प्रति-टूल टाइमआउट, जिटरसह रोलबॅक, सर्किट ब्रेकर्स आणि समवर्ती मर्यादा लागू करा.

  • जेव्हा API बदलतात तेव्हा मूक क्रॅश टाळण्यासाठी टूल ब्लूप्रिंट्स रिलीज करा आणि टूल प्रतिसाद प्रमाणित करा.

6) पुनर्प्राप्ती अंदाजे आणि निरीक्षण करण्यायोग्य बनवा

परताव्याची गुणवत्ता तुमच्या ऑर्डरची स्थिरता ठरवते. कव्हरेज मेट्रिक्ससह जारी केलेले डेटा उत्पादन म्हणून ते हाताळा.

  • क्रमवारी लावलेल्या क्वेरींमध्ये रिक्त पुनर्प्राप्ती दर, दस्तऐवज ताजेपणा आणि हिट रेटचा मागोवा घ्या.

  • कॅनरीसह चार्ज इंडिकेटर बदलतो, त्यामुळे काहीतरी अयशस्वी होण्याआधीच तुम्हाला कळते.

  • गळतीचा धोका कमी करण्यासाठी लूपबॅक लेयरमध्ये कमीत कमी विशेषाधिकार प्रवेश आणि रिडेक्शन लागू करा.

7) उत्पादन मूल्यमापन पाइपलाइन तयार करा

त्यानंतरच्या नाईन्स दुर्मिळ अपयश पटकन शोधण्यावर आणि रोलबॅक रोखण्यावर अवलंबून असतात.

  • उत्पादन चळवळीचा घटना-आधारित सुवर्ण संच कायम ठेवा आणि प्रत्येक बदलावर चालवा.

  • स्वयंचलित SLI रीग्रेशन रोलबॅकसह शॅडो आणि कॅनरी A/B मोड चालू करा.

8) निरीक्षणक्षमता आणि ऑपरेशनल प्रतिसादात गुंतवणूक करा

एकदा अपयश दुर्मिळ झाले की, निदान आणि उपचारांची गती मर्यादित घटक बनते.

  • प्रत्येक पायरीसाठी ट्रेस/विस्तार जारी करा, सुधारित दावे आणि साधन I/O मजबूत ऍक्सेस कंट्रोल्ससह संग्रहित करा आणि प्रत्येक अपयशाचे वर्गीकरण करा.

  • जोखीम त्वरीत कमी करण्यासाठी प्लेबुक आणि “सेफ मोड” स्विच (धोकादायक टूल्स अक्षम करा, मॉडेल्स स्विच करा, मानवी मंजुरी आवश्यक आहे) वापरा.

9) स्वायत्तता स्लाइडरला निर्धारक राखीवांसह चार्ज करा

चुकीच्या प्रणालींना पर्यवेक्षण आवश्यक आहे आणि उत्पादन सॉफ्टवेअरला कालांतराने स्वातंत्र्य वाढविण्यासाठी सुरक्षित मार्गाची आवश्यकता आहे. स्वतंत्रतेला स्विच म्हणून नॉब म्हणून वागा आणि सुरक्षित मार्गाला डीफॉल्ट बनवा.

  • डीफॉल्ट केवळ-वाचनीय किंवा उलट करता येण्याजोग्या क्रिया आहेत, ज्यांना लेखन आणि अपरिवर्तनीय ऑपरेशन्ससाठी स्पष्ट पुष्टीकरण (किंवा मंजूरी कार्यप्रवाह) आवश्यक आहे.

  • निर्धारवादी फॉलबॅक तयार करा: केवळ-प्राप्त उत्तरे, कॅशे केलेले प्रतिसाद, नियम-आधारित हँडलर, किंवा आत्मविश्वास कमी असताना मानवी पुनरावलोकनाकडे वाढ.

  • प्रत्येक भाडेकरूसाठी सुरक्षित मोड शोधा: धोकादायक साधने/कनेक्टर अक्षम करा, मजबूत मोड लागू करा, तापमान कमी करा, घटनांदरम्यान टाइमआउट घट्ट करा.

  • डिझाईन रीझ्युमेबल डिलिव्हरेबल्स: स्थिती सुरू ठेवा, योजना/फरक दाखवा, समीक्षकांना अयोग्यता की वापरून निवडलेल्या पायरीवरून मंजूरी आणि पुन्हा सुरू करण्यास अनुमती द्या.

अंमलबजावणी रेखाचित्र: एक विशिष्ट चरण लिफाफा

मॉडेल/टूलच्या प्रत्येक पायरीभोवती थोडे रॅपर अनिश्चिततेचे धोरण-चालित नियंत्रणात रूपांतर करते: कठोर प्रमाणीकरण, मर्यादित प्रयत्न, कालबाह्यता, टेलिमेट्री आणि स्पष्ट फॉलबॅक.

def run_step(नाव, Try_fn, validate_fn, *, max_attempts=3, timeout_s=15):

# एकाच डोमेनमधील सर्व प्रयत्नांचा मागोवा घ्या

span = start_span(नाव)

श्रेणीमध्ये प्रयत्न करण्यासाठी (1, कमाल_प्रयत्न + 1):

प्रयत्न करतो:

# लेटन्सी बद्ध त्यामुळे कोणतेही एक पाऊल वर्कफ्लोमध्ये व्यत्यय आणू शकत नाही

मुदतीसह(कालबाह्य_s):

out = try_fn()

#गेट: स्कीमा + सिमेंटिक + व्यवसाय स्थिरांक

validate_fn(बाहेर)

#यशाचा मार्ग

मेट्रिक("पाऊल_यश"संज्ञा, प्रयत्न = प्रयत्न)

परत बाहेर

e प्रमाणे (TimeoutError, UpstreamError) वगळता:

# क्षणिक: पुन्हा प्रयत्न वादळ टाळण्यासाठी जिटरसह पुन्हा प्रयत्न करा

लॉग विस्तार ({"प्रयत्न": प्रयत्न, "चूक": रस्ता(चे)})

झोप (विचलित_बॅकऑफ

ई म्हणून प्रमाणीकरण त्रुटी वगळून:

# खराब आउटपुट: “सुरक्षित” मोडमध्ये पुन्हा प्रयत्न करा (कमी तापमान/कठोर प्रॉम्प्ट)

लॉग विस्तार ({"प्रयत्न": प्रयत्न, "चूक": रस्ता(चे)})

out=try_fn(मोड="सुरक्षित")

# फॉलबॅक: प्रयत्न थकल्यावर सिस्टम सुरक्षित ठेवा

मेट्रिक("step_fallback"नाव)

परत करा EscalateToHuman(कारण=f"{name} अयशस्वी.")

कंपन्या ट्रेलिंग नाईन्सचा आग्रह का धरतात?

विश्वासार्हतेतील अंतर व्यवसायातील जोखमींमध्ये बदलते. मॅकिन्से ग्लोबल सर्व्हे 2025 अहवाल सूचित करतात की एआय वापरणाऱ्या 51% संस्थांनी किमान एक नकारात्मक परिणाम अनुभवला आहे आणि जवळजवळ एक तृतीयांश एआय अयोग्यतेशी संबंधित परिणाम नोंदवले आहेत. हे निष्कर्ष मजबूत मोजमाप, रेलिंग आणि ऑपरेशनल कंट्रोल्सची मागणी वाढवत आहेत.

चेकलिस्ट बंद करत आहे

  • वरचा कार्यप्रवाह निवडा, त्याच्या पूर्णतेसाठी SLO आणि टर्मिनल स्थिती कोड निर्दिष्ट करा.

  • सर्व मॉडेल आउटपुट आणि टूल इनपुट/आउटपुटभोवती कॉन्ट्रॅक्ट + व्हॅलिडेटर जोडा.

  • कंडक्टर आणि पुनर्प्राप्ती विश्वसनीय, प्रथम श्रेणीचे काम (टाइमआउट, सर्किट ब्रेकर, कॅनरी) म्हणून हाताळा.

  • उच्च हमी मार्ग (सत्यापन किंवा मंजूरी) द्वारे उच्च-प्रभाव असलेल्या क्रियांचा मार्ग करा.

  • तुमच्या गोल्ड सूटमधील प्रत्येक घटनेला प्रतिगमन चाचणीमध्ये बदला.

शिस्तबद्ध आर्किटेक्चरद्वारे नऊ घटक येतात: बंधनकारक कार्यप्रवाह, कठोर इंटरफेस, लवचिक अवलंबित्व आणि जलद ऑपरेशनल लर्निंग लूप.

निखिल मुंजिल तिने 15 वर्षांहून अधिक काळ SaaS कंपन्यांमध्ये वितरित प्रणाली आणि AI संघ तयार केले आहेत.

Source link