20 साल पुराने COBOL कोड को हटाने का क्रमिक रूपांतरण तरीका
20 वर्षों से अधिक समय से चल रहा मेनफ्रेम कोड किसी संगठन का इंजन होता है। लेकिन 2027 तक, 92% COBOL डेवलपर्स रिटायर हो जाएंगे। पूरे सिस्टम को एक बार में बदलने का 'बिग बैंग' तरीका 10 में से 7 प्रोजेक्ट्स को विफलता की ओर धकेल देता है। बिना सोचे-समझे पूरे कोड को बदलने के बजाय, व्यावसायिक मूल्य (business value) के आधार पर मॉड्यूल्स को तोड़ना शुरू करें।
अधिक बदलाव वाले मॉड्यूल्स को प्राथमिकता दें
पूरे मॉड्यूल्स को IRC मैट्रिक्स में विभाजित करें। यह प्रभाव (Impact), जोखिम (Risk), और जटिलता (Complexity) का मूल्यांकन करने का एक तरीका है। 1 मिलियन लाइन वाले मोनोलिथ के हर हिस्से को न छुएं। सबसे अधिक बार बदलने वाले 50,000 लाइनों के हॉटस्पॉट को अपना लक्ष्य बनाएं।
- Git लॉग्स को देखें। पिछले 1 वर्ष में सबसे अधिक बार संशोधित किए गए मॉड्यूल्स को निकालें। यदि कोड संशोधन दर 25% से अधिक है, तो वह एक हॉटस्पॉट है।
- प्रत्येक मॉड्यूल को Tier 1 से 4 तक वर्गीकृत करें। सबसे पहले Tier 1 मॉड्यूल्स को स्थानांतरित करें, जो ग्राहक द्वारा सीधे उपयोग किए जाते हैं और जहां डेटा त्रुटि का प्रभाव कम होता है।
- मरमेड (Mermaid) डायग्राम का उपयोग करके डेटा प्रवाह को चित्रित करें। कम निर्भरता वाले हिस्सों से शुरू करके, उन्हें बाहरी API के साथ रैप (wrap) करके मौजूदा कोड से अलग करें।
ऐसा करने से आप पूर्ण पुनर्लेखन की तुलना में प्रारंभिक लागत में 40% की बचत कर सकते हैं। छोटी सफलताएं टीम के भीतर के डर को खत्म करती हैं।
शैडो निष्पादन (Shadow execution) के साथ डेटा विसंगतियों को पकड़ें
जब COBOL के COMP-3 डेटा प्रकार को Java के BigDecimal में स्थानांतरित किया जाता है, तो वित्तीय गणनाओं में त्रुटियां हो सकती हैं। परिचालन संबंधी विफलता को रोकने के लिए, पुराने और नए दोनों सिस्टम में एक ही ट्रैफ़िक को समानांतर रूप से प्रवाहित करना, जिसे 'शैडो निष्पादन' कहा जाता है, आवश्यक है।
- Diffy जैसे प्रॉक्सी टूल को अपनाएं। परिचालन ट्रैफ़िक को कॉपी करें और इसे नए सिस्टम में भेजें।
- मौजूदा सिस्टम के परिणामों और नए सिस्टम के परिणामों की वास्तविक समय में तुलना करें। समय मान या ID जैसे बार-बार बदलने वाले मानों को हटाने के लिए फ़िल्टरिंग नियम निर्धारित करें।
- VSAM कॉपीबुक डेटा को SQL स्कीमा में मैप करने वाली स्क्रिप्ट को पाइपलाइन में शामिल करें। केवल तभी अलर्ट सेट करें जब कोई विसंगति हो।
वास्तविक लेनदेन में नए लॉजिक की सटीकता साबित करने से परिचालन रुकने का जोखिम खत्म हो जाता है।
भ्रष्टाचार विरोधी परत (Anti-Corruption Layer) के साथ लीगेसी संदूषण को रोकें
हमें जटिल लीगेसी मॉडल को नए सिस्टम में आने से रोकना होगा। डोमेन-संचालित डिज़ाइन (DDD) की भ्रष्टाचार विरोधी परत (ACL) का उपयोग करें।
- फ़साड (Facade) पैटर्न का उपयोग करें। जटिल लीगेसी कॉल को सरल REST API में लपेटें।
- स्ट्रैंगलर फिग (Strangler Fig) पैटर्न का उपयोग करके राउटिंग गेटवे तैनात करें। ट्रैफ़िक को धीरे-धीरे केवल उन सुविधाओं पर भेजें जिनका आधुनिकीकरण पूरा हो चुका है।
- ब्रिज (Bridge) पैटर्न के साथ कॉलर और कार्यान्वयन भाग को अलग करें। मौजूदा संबंधित विभागों के API एंडपॉइंट को छुए बिना केवल आंतरिक लॉजिक को बदला जा सकता है।
जब तक लीगेसी पूरी तरह से गायब नहीं हो जाता, तब तक नई डेवलपमेंट टीम एक स्वतंत्र स्टैक बनाए रखती है। आधुनिकीकरण पूरा होने पर, बस ACL को हटा दें।
4-स्तरीय TCO फ्रेमवर्क के साथ बजट सुरक्षित करें
प्रबंधक तकनीकी ऋण (technical debt) के बजाय नुकसान की राशि पर प्रतिक्रिया देते हैं। आधुनिकीकरण एक लागत कटौती परियोजना है। डेलोइट (Deloitte) की एक रिपोर्ट के अनुसार, लीगेसी रखरखाव की 70-80% लागत का अक्सर कम आंकलन किया जाता है।
- प्रत्यक्ष लागत (MIPS), अप्रत्यक्ष लागत (लीगेसी पैचिंग में लगने वाला 40% विकास समय), अनुपालन लागत, और अवसर लागत (opportunity cost) को जोड़ें। आधुनिकीकरण न करने पर होने वाले कुल नुकसान को अपनी रिपोर्ट में शामिल करें।
- Tier 1 मॉड्यूल रूपांतरण के बाद अपेक्षित लाभों को आंकड़ों में दर्शाएं। डैशबोर्ड के माध्यम से विज़ुअलाइज़ करें कि कैसे परिनियोजन (deployment) चक्र 6 महीने से घटकर 2 सप्ताह हो गया है, और MTTR (औसत मरम्मत समय) कितना कम हुआ है।
- ING बैंक के उदाहरण का हवाला दें। अपने रोडमैप में 'वॉर्म स्टैंडबाय' रणनीति (विफलता के मामले में तत्काल पुनर्प्राप्ति) और 90-दिन की 'हाइपरकेयर' योजना को शामिल करें।
यह रिपोर्ट तकनीकी जुआ नहीं है। यह एक वित्तीय निवेश है जो रिटर्न को 288% से 362% तक बढ़ा सकता है।