Centre of Excellence on Microservices, National Informatics Centre, Govt. of India
Government of India

सेंटर ऑफ एक्सीलेंस ऑन माइक्रोसर्विसेज 

राष्ट्रीय सूचना केंद्र
इलेक्ट्रॉनिक्स और आईटी मंत्रालय 
NIC Logo


सीईएम ई-गवर्नेंस परामर्श

 

माइक्रोसर्विसेज़ सेंटर ऑफ़ एक्सीलेंस (CoE – MSA) की स्थापना इस दृष्टि के साथ की गई है कि एनआईसी को ई-गवर्नेंस सेवाओं की डिलीवरी हेतु माइक्रोसर्विसेज़ आधारित एज़ाइल एवं DevOps कार्यप्रणाली अपनाने में सुविधा प्रदान की जा सके। सीईएम परामर्श, माइक्रोसर्विसेज़ आधारित परियोजनाओं के विकास तथा व्यवहार्य मोनोलिथिक अनुप्रयोगों की पहचान कर उन्हें माइक्रोसर्विसेज़ आधारित अनुप्रयोगों में रूपांतरित करने के लिए संसाधन केंद्र के रूप में कार्य करेगा।

 

NIC-CEM निम्नलिखित क्षेत्रों में परामर्श सेवाएँ प्रदान करता है:

 

o     मोनोलिथिक अनुप्रयोगों का माइक्रोसर्विसेज़ आर्किटेक्चर में माइग्रेशन

 

Monolithic Vs Microservices NIC अनेक ई-गवर्नेंस अनुप्रयोगों की रीढ़ है। इनमें से अधिकांश अनुप्रयोग मोनोलिथिक आर्किटेक्चर में हैं। विरासत (लेगेसी), पुरानी तकनीक, जटिलता, गहरे कपलिंग या निर्भरता से जुड़ी समस्याएँ ऐसे अनुप्रयोगों के आधुनिकीकरण में प्रमुख चुनौतियाँ हैं। NIC-CEM दिए गए अनुप्रयोग का विश्लेषण प्रदान करता है तथा Strangler Pattern जैसे उपयुक्त पैटर्न का उपयोग कर रिफैक्टरिंग के माध्यम से सेवाओं की पहचान करने में सहायता करता है, साथ ही मोनोलिथिक अनुप्रयोग से माइक्रोसर्विसेज़ आर्किटेक्चर (MSA) में माइग्रेशन की संपूर्ण योजना तैयार करता है।

 

o     फ्रेमवर्क्स / भाषाएँ / टूल्स / संसाधन

 

NIC में माइक्रोसर्विसेज़ आधारित अनुप्रयोग विकास को अनेक तकनीकों और टूल्स के माध्यम से समर्थन दिया जाता है। MSA की प्रमुख विशेषताएँ इन टूल्स के उपयोग से प्राप्त होती हैं। NIC-CEM ने इन तकनीकों पर कई PoC (प्रूफ़ ऑफ़ कॉन्सेप्ट) तैयार किए हैं तथा संबंधित SoP प्रकाशित किए गए हैं।

प्रत्येक सेवा के लिए उपयुक्त फ्रेमवर्क्स/भाषाएँकोड रिपॉज़िटरी और डिप्लॉयमेंट हेतु CI/CD पाइपलाइन्स प्रमाणीकरण (Authentication) एवं प्राधिकरण (Authorization) प्रक्रियाएँ
NIC-CEM विकास टीमों को उपयुक्त टूल्स की पहचान करने में सहायता करता है तथा डिप्लॉयमेंट योजनाओं के डिज़ाइन में मार्गदर्शन प्रदान करता है।

 

 

o     DevOps लैब का वॉक-थ्रू

 

DevOps workflow
> NIC-CEM भारत भर की NIC विकास टीमों को IDC तिरुवनंतपुरम, केरल में आवंटित संसाधनों का उपयोग कर स्थापित DevOps वॉक-थ्रू लैब का लाभ उठाने का अवसर प्रदान करता है। इस लैब को परखने और परिष्कृत करने हेतु NIC-CEM टीम द्वारा विभिन्न PoC भी किए गए हैं।
MSA आधारित अनुप्रयोग विकसित कर रही NIC टीमें सोर्स कोड रिपॉज़िटरी से CI के माध्यम से अपने अनुप्रयोगों को स्वचालित रूप से Rancher द्वारा प्रबंधित Kubernetes प्लेटफ़ॉर्म पर लॉन्च करने का अभ्यास कर सकती हैं।
Jenkins आधारित पाइपलाइन में SonarQube द्वारा टेस्टिंग, Docker इमेज का निर्माण, निजी इमेज रजिस्ट्री में पुश करना तथा K3s प्लेटफ़ॉर्म पर वर्कलोड्स लॉन्च करने की व्यवस्था की गई है। लोड मैनेजमेंट, API गेटवे जैसी कॉन्फ़िगरेशन भी इस DevOps चक्र के घटकों का हिस्सा हैं। RabbitMQ/Kafka के माध्यम से मैसेजिंग की आवश्यकताओं की जाँच हेतु सुविधाएँ भी उपलब्ध हैं। डेटा प्रबंधन के विभिन्न विकल्पों तथा Keycloak के माध्यम से प्रमाणीकरण/प्राधिकरण का भी परीक्षण किया जा सकता है।
NIC टीमें उचित अनुरोध एवं स्वीकृति के साथ अपनी विकास एवं डिप्लॉयमेंट चक्र संबंधी आवश्यकताओं का अभ्यास करने हेतु इस सुविधा का उपयोग कर सकती हैं।

 

Jenkins का उपयोग करके लागू की गई CI/CD पाइपलाइन को निम्नलिखित को समर्थन देने के लिए कॉन्फ़िगर किया गया है:

 

    *     SonarQube के माध्यम से स्टैटिक कोड विश्लेषण एवं परीक्षण.
    *     Docker का उपयोग कर कंटेनर इमेज निर्माण.
    *     इमेज को निजी कंटेनर रजिस्ट्री में पुश करना
    *     K3s-आधारित Kubernetes प्लेटफ़ॉर्म पर वर्कलोड का डिप्लॉयमेंट

इसके अतिरिक्त, DevOps सेटअप में डिप्लॉयमेंट लाइफ़साइकल के अंतर्गत लोड प्रबंधन एवं API गेटवे कॉन्फ़िगरेशन से संबंधित घटक भी शामिल हैं। मैसेजिंग आवश्यकताओं के मूल्यांकन हेतु RabbitMQ एवं Kafka का उपयोग किया जा सकता है, जबकि डेटा प्रबंधन के लिए कई विकल्प उपलब्ध हैं। यह लैब Keycloak के माध्यम से प्रमाणीकरण एवं प्राधिकरण परीक्षण का भी समर्थन करती है।

 

आवश्यक पूर्व अनुरोध एवं अनुमोदनों के अधीन, NIC विकास दल अपनी एप्लिकेशन विकास एवं डिप्लॉयमेंट वर्कफ़्लो के सत्यापन हेतु इस लैब का उपयोग कर सकते हैं।