हामीले भर्खरै बफरमा हाम्रो प्रणालीका भागहरूले पर्दा पछाडि सञ्चार गर्ने तरिका सफा गर्न एउटा सानो परियोजना सुरु गर्‍यौं। केही द्रुत सन्दर्भ: हामी SQS (Amazon Simple Queue Service) भन्ने कुरा प्रयोग गर्छौं। यी लामहरूले कार्यहरूका लागि पर्खने कोठा जस्तै काम गर्छ। हाम्रो प्रणालीको एउटा भागले सन्देश छोड्छ, र अर्कोले यसलाई पछि उठाउँछ। यसलाई सोच्नुहोस्, यो डेटा प्राप्त गर्दा, "नोट गर्ने प्रक्रियाको लागि यो मौका छोड्नुहोस्।" नोट पठाउने प्रणालीले प्रतिक्रियाको लागि वरिपरि पर्खनु पर्दैन। हाम्रो परियोजना नियमित मर्मत सम्भार गर्ने थियो: स्थानीय रूपमा लामहरू परीक्षण गर्न र तिनीहरूको कन्फिगरेसन सफा गर्न हामीले प्रयोग गर्ने उपकरणहरू अपडेट गर्ने। तर हामीले वास्तवमा कुन लामहरू प्रयोग गर्ने भनेर म्याप गर्दै गर्दा, हामीले अपेक्षा नगरेको कुरा भेट्टायौं: सातवटा फरक पृष्ठभूमि प्रक्रियाहरू (वा क्रोन कार्यहरू, जुन स्वचालित रूपमा चलाउनका लागि पाँच वर्षको कार्यकर्ताहरूको लागि निर्धारित गरिएको छ)। तिनीहरू सबैले कुनै पनि काम गर्दैनन्। यो किन महत्त्वपूर्ण छ, हामीले तिनीहरूलाई कसरी भेट्टायौं, र हामीले यसको बारेमा के गर्यौं। यो किन महत्त्वपूर्ण छ, हो, अनावश्यक पूर्वाधार चलाउँदा पैसा लाग्छ र ती कामदारहरूमध्ये एकको लागि हामीले ~$ 360-600 तिरेको हुन्छ, तर यो हाम्रो फाइनान्सको सबैभन्दा ठूलो रकम हो कुनै पनि प्रक्रियाको लागि बर्बाद। यद्यपि, यो क्लीनअपको माध्यमबाट जाँदा, म तर्क गर्छु कि वित्तीय लागत वास्तवमा समस्याको सबैभन्दा सानो भाग हो। प्रत्येक पटक नयाँ इन्जिनियरहरू टोलीमा सामेल हुन्छन्, तिनीहरूले यी रहस्यमय प्रक्रियाहरूको सामना गर्छन्, "यो कार्यकर्ताले के गर्छ भन्ने प्रश्न बन्न सक्छ जुन हामी सबैलाई डराउँछौं यो हुनसक्छ कि यो केहि महत्त्वपूर्ण छ। कहिलेकाहीँ सुरक्षा अपडेटहरू, निर्भरता समस्याहरू, अनुकूलता सुधारहरू आवश्यक पर्दछ जसले गर्दा हाम्रो टोलीले कुनै उद्देश्य पूरा नगरेको थियो पहिले, र सन्दर्भ तिनीहरूको साथ छोडियो। यो कसरी हुन्छ? यो औंलाहरू देखाउन सजिलो छ, तर यो कुनै पनि लामो समयसम्म चल्ने प्रणालीमा स्वाभाविक रूपमा हुन्छ। एक सुविधा हट्छ, तर यसलाई समर्थन गर्ने पृष्ठभूमि काम चलिरहन्छ "अस्थायी रूपमा" माइग्रेसन ह्यान्डल गर्न को लागी, र यो कुनै पनि कार्य तालिकामा परिवर्तन हुँदैन हामीले बफरमा जन्मदिन मनाउने इमेलहरू पठाउने गर्यौं, हामीले वर्तमान मितिसँग मिल्ने सम्पूर्ण डाटाबेस जाँच गर्यौं र 2020 मा रिफ्याक्टरको समयमा हामीले हाम्रो लेनदेन इमेल उपकरण स्विच गर्‍यौं तर यो कार्यकर्ताको असफलताको थप पाँच वर्षहरू छन्। हामीले काम गर्ने तरिकामा जानाजानी सफाई बिना नै एन्ट्रोपीले जित्छ। कसरी हाम्रो वास्तुकलाले हामीलाई धेरै कम्पनीहरू जस्तै यो पत्ता लगाउन मद्दत गर्‍यो, बफरले वर्षौं अघि आफ्नो कोडलाई धेरै साना, स्वतन्त्र सेवाहरूमा विभाजन गर्‍यो। हामीले हाम्रो मोनोलिथलाई अलग-अलग सेवाहरूमा विभाजन गर्‍यौं, प्रत्येकको आफ्नै भण्डार, डिप्लोमा, सेवाको रूपमा टोलीहरू बीचको स्पष्ट सीमाहरूका साथ आफ्नै रूपमा प्रयोग गरिन्छ। तर वर्षौंको दौडान, हामीले हाम्रो आकारको लागि दर्जनौं रिपोजिटरीहरू प्रबन्ध गर्न पाएका छौं त्यसैले हामीले एक बहु-सेवा एकल भण्डारमा समेकित गरेका छौं, तर तिनीहरू एकै ठाउँमा सँगै बस्छन् एक रिपोमा काम गर्ने ईन्जिनियरहरूले कहिल्यै देख्न सकेनन्, जहाँ चलिरहेको छ भन्ने कुनै एकल दृश्य छैन। हामीले अन्ततः प्रत्येक कतारलाई यसको उपभोक्ताहरू र उत्पादकहरूलाई फेला पार्न सक्छौं समेकन हामीलाई जोम्बी पूर्वाधार फेला पार्न मद्दत गर्न डिजाइन गरिएको थिएन - तर यसले त्यो बनायोखोज लगभग अपरिहार्य छ। हामीले वास्तवमा के गर्यौं एकपटक हामीले अनाथ प्रक्रियाहरू पहिचान गरेपछि, हामीले तिनीहरूसँग के गर्ने निर्णय गर्नुपर्‍यो। यहाँ हामीले यसलाई कसरी सम्पर्क गर्यौं भन्ने कुरा यहाँ छ। पहिलो, हामीले प्रत्येकलाई यसको उत्पत्तिमा पत्ता लगायौं। हामीले प्रत्येक कार्यकर्तालाई पहिलो स्थानमा किन सिर्जना गरिएको थियो भनेर बुझ्नको लागि git इतिहास र पुरानो कागजातहरू खन्यौं। धेरैजसो अवस्थामा, मूल उद्देश्य स्पष्ट थियो: एक पटक डाटा माइग्रेसन, एक सुविधा जसले सूर्यास्त भयो, एक अस्थायी समाधान जसले यसको उपयोगितालाई जीवित राख्यो। त्यसपछि हामीले पुष्टि गर्यौं कि तिनीहरू वास्तवमै प्रयोग नगरिएका थिए। कुनै पनि कुरा हटाउनु अघि, हामीले यी प्रक्रियाहरू चुपचाप हामीले छुटेका महत्त्वपूर्ण कामहरू गर्दैनन् भनी पुष्टि गर्न लगिङ थप्यौं। हामीले उनीहरूलाई बोलाइएको छैन भनेर निश्चित गर्न केही दिनको लागि निगरानी गर्यौं, र हामीले तिनीहरूलाई क्रमशः हटायौं। हामीले एकै पटक सबै कुरा मेटेका छैनौं। हामीले कुनै पनि अप्रत्याशित साइड इफेक्टहरू हेर्दै प्रक्रियाहरू एक-एक गरेर हटायौं। (भाग्यवश, त्यहाँ कुनै थिएन।) अन्तमा, हामीले जे सिकेका थियौं त्यसलाई हामीले दस्तावेजीकरण गर्यौं। हामीले हाम्रो आन्तरिक कागजातहरूमा प्रत्येक प्रक्रियाले मूल रूपमा के गर्‍यो र किन हटाइयो भन्ने बारे टिप्पणीहरू थप्यौं, त्यसैले भविष्यका इन्जिनियरहरूले महत्त्वपूर्ण कुरा हरायो कि भनेर सोच्दैनन्। सफा गरेपछि के परिवर्तन भयो हामी अझै पूर्ण प्रभाव मापन गर्न प्रारम्भिक छौं, तर हामीले अहिलेसम्म देखेका कुराहरू यहाँ छन्। हाम्रो पूर्वाधार सूची अब सही छ। जब कसैले सोध्छ, "हामी के कामदारहरू चलाउँछौं?" हामी वास्तवमा त्यो प्रश्नको जवाफ आत्मविश्वासका साथ दिन सक्छौं। अनबोर्डिङ कुराकानीहरू पनि सरल भएका छन्। नयाँ इन्जिनियरहरू रहस्यमय प्रक्रियाहरूमा ठेस खाइरहेका छैनन् र तिनीहरूले सन्दर्भ हराइरहेका छन् कि भनेर सोचिरहेका छैनन्। कोडबेसले हामी वास्तवमा के गर्छौं भनेर प्रतिबिम्बित गर्दछ, हामीले पाँच वर्ष पहिले के गरेका थियौं। रिफ्याक्टरहरूलाई पुरातत्व र रोकथामको रूपमा व्यवहार गर्नुहोस् यस परियोजनाबाट मेरो सबैभन्दा ठूलो टेकवे: प्रत्येक महत्त्वपूर्ण रिफ्याक्टर पुरातत्वको लागि एउटा अवसर हो। जब तपाईं प्रणालीमा गहिरो हुनुहुन्छ, टुक्राहरू कसरी जोडिन्छन् भन्ने कुरा बुझ्दै हुनुहुन्छ, तपाईं अझै के आवश्यक छ भनेर प्रश्न गर्न उत्तम स्थितिमा हुनुहुन्छ। कुनै पुरानो परियोजनाबाट त्यो लाम? कार्यकर्ता कसैले एक पटक डाटा माइग्रेसनको लागि सिर्जना गरेको हो? तपाईंले कहिल्यै नसुनेको सुविधालाई सन्दर्भ गर्ने अनुसूचित कार्य? तिनीहरू अझै पनि चलिरहेका हुन सक्छन्। हामी हाम्रो प्रक्रियामा अगाडि बढ्ने कुराहरू यहाँ छ: कुनै पनि रिफ्याक्टरको क्रममा, सोध्नुहोस्: यो प्रणालीलाई अरू के छोइन्छ जुन हामीले केही समयदेखि हेरेका छैनौं? कुनै सुविधालाई अस्वीकार गर्दा, प्रयोगकर्ता-फेसिङ कोड मात्र होइन, यसको पृष्ठभूमि प्रक्रियाहरूमा सबै तरिका ट्रेस गर्नुहोस्। जब कसैले टोली छोड्छ, तिनीहरूले हाम्रो पुरानो भागहरू जुन हामीसँग चलिरहेको छ, त्यसका पुराना भागहरू अझै पनि कागजात गर्छौं। कोडबेस जुन अहिलेसम्म एकल भण्डारमा माइग्रेट गरिएको छैन। जब हामी एकीकरण जारी राख्छौं, हामी विश्वस्त छौं कि हामीले यी लुकेका अवशेषहरू फेला पार्नेछौं। तर अब हामी तिनीहरूलाई समात्न र नयाँ बन्नबाट रोक्नको लागि सेट अप गरेका छौं। जब तपाईंको सबै कोड एक ठाउँमा रहन्छ, अनाथ पूर्वाधारहरू लुकाउन कतै छैनन्।

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