आमच्या सिस्टमचे काही भाग पडद्यामागे बफरवर कसे संवाद साधतात हे साफ करण्यासाठी आम्ही अलीकडेच एक छोटासा प्रकल्प सुरू केला आहे. काही द्रुत संदर्भ: आम्ही SQS (Amazon Simple Queue Service. या रांगा कार्यांसाठी वेटिंग रूमप्रमाणे काम करतो. आमच्या सिस्टमचा एक भाग संदेश सोडतो, आणि दुसरा तो नंतर उचलतो. याचा विचार करा, जेव्हा आपण डेटा मिळवा तेव्हा एक संधी सोडा: "सहकारी प्रक्रिया सोडा. नोट पाठवणाऱ्या सिस्टमला प्रतिसादासाठी प्रतीक्षा करावी लागत नाही. आमचा प्रकल्प नियमित देखभाल करणे हा होता: स्थानिक पातळीवर रांगांची चाचणी घेण्यासाठी आणि त्यांचे कॉन्फिगरेशन साफ करण्यासाठी आम्ही वापरत असलेली साधने अद्ययावत करा. परंतु आम्ही प्रत्यक्षात कोणत्या रांगा वापरतो हे आम्ही मॅप करत असताना, आम्हाला अपेक्षा न करता असे काहीतरी सापडले: सात वेगवेगळ्या पार्श्वभूमी प्रक्रिया (किंवा क्रॉन जॉब्स, ज्या स्वयंचलितपणे चालविल्या गेल्या आहेत) पाच वर्षांसाठी अनुसूचित केलेल्या कामांसाठी आणि सिल कर्मचाऱ्यांसाठी अनुसूचित कार्ये. ते सर्व काही करत नाहीत. हे महत्त्वाचे का आहे, आम्हाला ते कसे सापडले आणि आम्ही त्याबद्दल काय केले. हे महत्त्वाचे का आहे, होय, अनावश्यक पायाभूत सुविधा चालवण्याकरता पैसे खर्च होतात आणि त्यापैकी एकासाठी, आम्ही 5 वर्षांमध्ये ~ 360-600 पैसे दिले असते, परंतु ही सर्वात मोठी रक्कम आहे अशा प्रक्रियेसाठी कचरा जो काही करत नाही. तथापि, या क्लीनअपमधून गेल्यानंतर, मी असे म्हणू शकतो की आर्थिक खर्च हा समस्येचा सर्वात लहान भाग आहे. प्रत्येक वेळी जेव्हा एखादा नवीन अभियंता संघात सामील होतो आणि आमच्या सिस्टमचा शोध घेतो तेव्हा त्यांना या अनाकलनीय प्रक्रियेचा सामना करावा लागतो कारण ते कदाचित काहीतरी महत्त्वाचे करत असेल. अधूनमधून सुरक्षा अद्यतने, सुसंगतता सुधारणे आवश्यक आहे, यामुळे आमच्या कार्यसंघाने कोड मार्गांवर खर्च केला आहे पूर्वी, आणि संदर्भ त्यांच्याकडेच राहिले. हे कसे घडते? बोटे दाखवणे सोपे आहे, परंतु सत्य हे आहे की हे कोणत्याही दीर्घकालीन प्रणालीमध्ये घडते. एक वैशिष्ट्य नापसंत होते, परंतु पार्श्वभूमीचे काम जो स्थलांतरण हाताळण्यासाठी "तात्पुरते" चालू ठेवतो, आणि तो कधीही बदलला जात नाही तपासण्यासाठी विचार करतो. आम्ही बफरवर वाढदिवस साजरा करणारे ईमेल पाठवायचे, ज्याने वर्तमान तारखेशी जुळणारे संपूर्ण डेटाबेस तपासले आणि 2020 मध्ये रिफॅक्टर दरम्यान, आम्ही आमचे व्यवहार ईमेल साधन स्विच केले परंतु या कार्यकर्त्याच्या अयशस्वीपणाचे आणखी पाच वर्षे ते काढून टाकण्यास विसरले. आम्ही कसे कार्य करतो हे जाणूनबुजून साफ केल्याशिवाय, एंट्रॉपी जिंकते. अनेक कंपन्यांप्रमाणेच, बफरने मायक्रो सर्व्हिसेस चळवळ स्वीकारली (एक लोकप्रिय दृष्टीकोन ज्यामध्ये कंपन्या त्यांचे कोड अनेक लहान, स्वतंत्र सेवांमध्ये विभाजित करतात). संघांमध्ये स्पष्ट सीमा असल्याने स्वत:च तैनात केले जातील. परंतु अनेक वर्षात, डझनभर रिपॉझिटरी व्यवस्थापित करण्याचे फायद्यांचे प्रमाण अधिक आहे, त्यामुळे आम्ही एका बहु-सेवा एकल रेपॉजिटरीमध्ये एकत्रित झाल्या, परंतु ते एकाच ठिकाणी एकत्र राहतात. हे सर्व रीपॉझिटरी बनले आहे एका रेपोमध्ये काम करणाऱ्या अभियंत्यांच्या लक्षात येऊ शकत नाही, कुठे काय चालले आहे याचे कोणतेही एकसंध दृश्य नाही. आम्ही शेवटी प्रत्येक रांगेचे ग्राहक आणि उत्पादकांना शोधू शकलो एकत्रीकरणाची रचना आम्हाला झोम्बी पायाभूत सुविधा शोधण्यात मदत करण्यासाठी केली गेली नव्हती — परंतु यामुळे ते घडलेशोध जवळजवळ अपरिहार्य आहे. आम्ही प्रत्यक्षात काय केले एकदा आम्ही अनाथ प्रक्रिया ओळखल्या की, त्यांचे काय करायचे ते आम्हाला ठरवायचे होते. आम्ही त्याच्याशी कसे संपर्क साधला ते येथे आहे. प्रथम, आम्ही प्रत्येकाला त्याचे मूळ शोधले. प्रत्येक कामगार प्रथम का तयार केला गेला हे समजून घेण्यासाठी आम्ही गिट इतिहास आणि जुने दस्तऐवज खोदले. बऱ्याच प्रकरणांमध्ये, मूळ उद्देश स्पष्ट होता: एक-वेळ डेटा स्थलांतर, एक वैशिष्ट्य जे सूर्यास्त झाले, एक तात्पुरती वर्कअराउंड जी त्याच्या उपयुक्ततेपेक्षा जास्त आहे. मग आम्ही ते खरोखर न वापरलेले असल्याची पुष्टी केली. कोणतीही गोष्ट काढून टाकण्यापूर्वी, या प्रक्रिया शांतपणे आमच्याकडून चुकल्यासारखे काहीतरी करत नसल्याची पडताळणी करण्यासाठी आम्ही लॉगिंग जोडले. त्यांना अजिबात बोलावले गेले नाही याची खात्री करण्यासाठी आम्ही काही दिवस निरीक्षण केले आणि आम्ही त्यांना हळूहळू काढून टाकले. आम्ही एकाच वेळी सर्व काही हटवले नाही. कोणत्याही अनपेक्षित दुष्परिणामांकडे लक्ष ठेवून आम्ही एक-एक करून प्रक्रिया काढून टाकल्या. (सुदैवाने, तेथे कोणतेही नव्हते.) शेवटी, आम्ही जे शिकलो त्याचे दस्तऐवजीकरण केले. आम्ही आमच्या अंतर्गत दस्तऐवजांमध्ये प्रत्येक प्रक्रियेने मूलतः काय केले होते आणि ती का काढली होती याच्या टिपा जोडल्या आहेत, त्यामुळे भविष्यातील अभियंत्यांना काही महत्त्वाचे गहाळ झाल्यास आश्चर्य वाटणार नाही. साफ केल्यानंतर काय बदलले आम्ही अद्याप पूर्ण प्रभाव मोजण्यात लवकर आहोत, परंतु आम्ही आतापर्यंत जे पाहिले ते येथे आहे. आमची पायाभूत सुविधांची यादी आता अचूक आहे. जेव्हा कोणी विचारले की "आम्ही कोणते कामगार चालवतो?" आम्ही त्या प्रश्नाचे उत्तर आत्मविश्वासाने देऊ शकतो. ऑनबोर्डिंग संभाषणे देखील सोपे झाले आहेत. नवीन अभियंते अनाकलनीय प्रक्रियांमध्ये अडखळत नाहीत आणि त्यांना संदर्भ गहाळ आहे की नाही याबद्दल आश्चर्य वाटते. कोडबेस आम्ही प्रत्यक्षात काय करतो ते प्रतिबिंबित करतो, आम्ही पाच वर्षांपूर्वी काय केले नाही. रिफॅक्टर्सना पुरातत्वशास्त्र आणि प्रतिबंध म्हणून हाताळा. या प्रकल्पातील माझा सर्वात मोठा मार्ग आहे: प्रत्येक महत्त्वपूर्ण रिफॅक्टर ही पुरातत्वशास्त्रासाठी एक संधी आहे. जेव्हा तुम्ही एखाद्या सिस्टीममध्ये खोलवर असता, तुकडे कसे जोडले जातात हे खरोखर समजून घेतो, तेव्हा तुम्ही अद्याप काय आवश्यक आहे याबद्दल प्रश्न विचारण्यास योग्य स्थितीत असता. कुठल्यातरी जुन्या प्रकल्पाची ती रांग? कार्यकर्ता कोणीतरी एक-वेळ डेटा स्थलांतर करण्यासाठी तयार केले? शेड्यूल केलेले कार्य जे तुम्ही कधीही ऐकले नसलेल्या वैशिष्ट्याचा संदर्भ देते? ते अजूनही चालू असू शकतात.आम्ही आमच्या प्रक्रियेत पुढे काय तयार करत आहोत ते येथे आहे:कोणत्याही रिफॅक्टर दरम्यान, विचारा: या प्रणालीला आणखी काय स्पर्श करते ज्याकडे आम्ही काही काळापासून पाहिले नाही?एखादे वैशिष्ट्य नापसंत करताना, केवळ वापरकर्ता-फेसिंग कोड नव्हे तर त्याच्या पार्श्वभूमी प्रक्रियेवर सर्व मार्ग शोधून काढा. जेव्हा कोणी संघ सोडतो, तेव्हा आमच्याकडे कोणत्या पार्श्वभूमीच्या भागांचे प्रभारी होते, विशेषत: आमच्याकडे कोणत्या पार्श्वभूमीच्या प्रभारी भाग आहेत याचे दस्तऐवजीकरण करा. कोडबेस जो अद्याप एकल रेपॉजिटरीमध्ये स्थलांतरित झाला नाही. जसजसे आम्ही एकत्रीकरण करत राहू तसतसे आम्हाला खात्री आहे की आम्हाला यापैकी आणखी लपवलेले अवशेष सापडतील. परंतु आता आम्ही त्यांना पकडण्यासाठी आणि नवीन तयार होण्यापासून रोखण्यासाठी सेट अप केले आहे. जेव्हा तुमचा सर्व कोड एकाच ठिकाणी राहतो, तेव्हा अनाथ पायाभूत सुविधांना लपवण्यासाठी कोठेही नसते.

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free