डॉकर्स कार्यान्वयन में माइक्रोसिस्टम्स


9

हम अपनी पहली माइक्रो सेवाओं को डॉकटर कंटेनरों का उपयोग करके अमेज़ॅन फ़ार्मेट का उपयोग करके लिख रहे हैं। स्प्रिंग बूट का उपयोग करके कार्यान्वयन स्तर पर हमें कई संदेह हैं

हमारे पास परियोजना में कई सूक्ष्म सेवाएं होंगी, क्या यह अच्छा अभ्यास है कि हम सभी सूक्ष्म सेवाओं को एक कंटेनर में लिख रहे हैं या मुझे अलग-अलग सूक्ष्म सेवाओं के लिए अलग डॉकटर कंटेनर बनाना होगा। लागत प्रभावी तरीके से हम एकल कंटेनर का उपयोग करते हैं लेकिन क्या यह भविष्य में हमारी परियोजना संरचना के लिए कोई समस्या है?

हम एडब्ल्यूएस फारगेट में एप्लिकेशन को तैनात करने की योजना बना रहे हैं और हमारे आवेदन के पास भविष्य में विस्तार करने और लगभग 100 से 150 अतिरिक्त सूक्ष्म सेवाओं की उम्मीद करने का बड़ा विकल्प होगा। इस मामले में क्या यह लागत प्रभावी है अगर हम इन सभी माइक्रोसर्विसेज को विभिन्न कंटेनरों में भी अपलोड कर रहे हैं?


यह सब आपकी संरचना पर निर्भर करता है। आपको अधिक विवरण साझा करने होंगे, जैसे कि अन्य आपकी मदद कर सकते हैं
निको हसे

6
यह प्रति कंटेनर एक सेवा को लागू करने के लिए लगभग हमेशा अधिक समझ में आता है, क्योंकि यह आपको स्वतंत्र रूप से सेवाओं को स्केल करने और उन्नत संस्करणों या वैकल्पिक कार्यान्वयन के साथ व्यक्तिगत सेवाओं को बदलने की क्षमता देता है।
लार्क्स

सेवाओं को समूहीकृत करने और उन्हें व्यक्तिगत रूप से चलाने के बीच व्यापार बंद है। अपने वर्तमान एप्लिकेशन, डोमेन सेवाओं की प्रति डोमेन में कटौती करें, क्योंकि वे समान डेटा स्टोर साझा कर सकते हैं। इससे आपको समूहीकृत सेवाओं को बेहतर ढंग से प्रबंधित करने में मदद मिलेगी।
श्रीनी एम

जवाबों:


21

माइक्रोसर्विस के साथ याद रखने वाली सबसे महत्वपूर्ण बात यह है कि वे मुख्य रूप से तकनीकी समस्याओं को हल करने के लिए नहीं हैं, लेकिन संगठनात्मक समस्याओं के बारे में हैं। इसलिए जब हम यह देखते हैं कि क्या किसी संगठन को माइक्रोसिस्टम का उपयोग करना चाहिए, और उन सेवाओं को कैसे तैनात किया जाना चाहिए, तो हमें यह देखने की जरूरत है कि क्या ऑर्ग की समस्याएं हैं जो माइक्रोसर्विस शैली को हल करती हैं।

आपकी वास्तुकला के बारे में आपके प्रश्न का उत्तर, फिर, आपकी प्रौद्योगिकी टीम के आकार, संगठनात्मक संरचना, आपके उत्पाद की आयु, आपके वर्तमान परिनियोजन प्रथाओं और मध्यम अवधि में उन लोगों के बदलने की संभावना पर निर्भर करेगा।

एक उदाहरण के रूप में, यदि आपका संगठन:

  • 25 से कम तकनीकी कर्मचारी हैं,
  • 1 या 2 टीमों में संगठित,
  • जिनमें से प्रत्येक उत्पाद के किसी भी भाग पर काम करता है,
  • जो 12 महीने से कम पुराना है,
  • और एक नियमित आधार (जैसे दैनिक, साप्ताहिक, मासिक) पर एक बार में सभी को तैनात किया जाता है,
  • और ऑर्गन तेजी से बढ़ने वाला नहीं है,

तो आप लगभग निश्चित रूप से अब के लिए microservices के बारे में भूल जाना चाहते हैं। इस तरह की स्थिति में, टीम डोमेन के बारे में जानने में अभी भी नई है, इसलिए संभावना नहीं है कि वे सब कुछ जानते हैं जो उन्हें वास्तव में समझने के लिए जानना होगा कि सिस्टम को वितरित आर्किटेक्चर में विभाजित करने का एक शानदार तरीका क्या होगा। इसका मतलब है कि अगर वे इसे अब विभाजित करते हैं, तो वे शायद बाद में सीमाएं बदलना चाहेंगे, और यह बहुत महंगा हो जाता है जब आपके पास पहले से ही एक वितरित प्रणाली होती है, जबकि एक मोनोलिथ में बहुत सरल होता है। क्या अधिक है, केवल एक छोटी सी टीम के साथ जो सिस्टम के किसी भी हिस्से पर (और समर्थन) सभी काम कर सकते हैं, एक मंच बनाने में निवेश करने का बहुत कम कारण है जहां व्यक्तिगत टीम व्यक्तिगत सेवाओं को तैनात और बनाए रख सकती है। इस स्तर पर एक संगठन आम तौर पर ग्राहकों को खोजने और उत्पाद को जल्दी से पुनरावृत्त करने से बहुत अधिक चिंतित होगा, शायद उत्पाद को पिवट करना भी, जैसा कि टीमों को स्वायत्त बनाने और उच्च-स्केलिंग, लचीला वास्तुकला के निर्माण के लिए। एक अखंड वास्तुकला इस बिंदु पर समझ में आता है, लेकिन एएपीआई द्वारा लागू की गई स्पष्ट घटक सीमाओं के साथ अच्छी तरह से डिज़ाइन किए गए मोनोलिथ, और डेटा एक्सेस को समझाया, जिससे बाद में अलग-अलग प्रक्रियाओं में सेवाओं को खींचना आसान हो गया।

आइए थोड़ा आगे देखें और एक संगठन पर विचार करें ...

  • 50 से अधिक तकनीकी कर्मचारी,
  • 7 टीमों में संगठित,
  • जिनमें से प्रत्येक उत्पाद के विशिष्ट क्षेत्रों पर ही काम करता है,
  • जो 3 साल पुराना है,
  • और ऐसी टीमें हैं जो अपना काम स्वतंत्र रूप से तैनात करना चाहती हैं जो अन्य टीमें कर रही हैं।

इस तरह के संगठन को निश्चित रूप से एक वितरित वास्तुकला का निर्माण करना चाहिए। यदि वे नहीं करते हैं, और इन सभी टीमों के बजाय एक मोनोलिथ में काम कर रहे हैं, तो वे सभी प्रकार की संगठनात्मक समस्याओं में भाग लेंगे, टीमों को अपने काम का समन्वय करने की आवश्यकता होती है, रिलीज में देरी हो रही है जबकि एक टीम अपनी नई सुविधा, पैच पर क्यूए खत्म करती है। स्टाफ और ग्राहकों के लिए एक बड़ी परेशानी है। अधिक क्या है, एक परिपक्व उत्पाद के साथ, संगठन को डोमेन के बारे में पर्याप्त रूप से पता होना चाहिए कि डोमेन और टीमों दोनों को विभाजित करने में सक्षम होने के लिए (उस क्रम में, कॉनवे का नियम देखें) समझदार, स्वायत्त इकाइयों में जो समन्वय को न्यूनतम करते हुए प्रगति कर सकते हैं।

लगता है कि आपने पहले से ही माइक्रोसेवा को चुना है। इस बात पर निर्भर करता है कि आप ऊपर दिए गए तराजू पर कहाँ बैठते हैं, हो सकता है कि आप उस फैसले को फिर से देखना चाहते हों।

यदि आप माइक्रोसिस्टर्स के साथ विकास करना चाहते हैं, लेकिन उन सभी को एक कंटेनर में तैनात करते हैं, तो जान लें कि इसमें कुछ भी गलत नहीं हैअगर यह आपके संगठन के काम करने के तरीके पर सूट करता है। क्या यह भविष्य में आपकी परियोजना संरचना के लिए समस्याएं खड़ी करेगा? ठीक है, यदि आप सफल रहे हैं और आपका संगठन बढ़ता है, तो शायद एक ऐसा समय आएगा जहां यह एकल-कंटेनर तैनाती अब सबसे उपयुक्त नहीं है, विशेष रूप से जब टीमें स्वयं सेवाएं शुरू करती हैं और पूरे एप्लिकेशन को तैनात किए बिना सिर्फ अपनी सेवा को तैनात करना चाहती हैं। । लेकिन यह स्वायत्तता अतिरिक्त काम और जटिलता की कीमत पर आएगी, और हो सकता है कि इस समय आपको कोई लाभ न दे। सिर्फ इसलिए कि यह भविष्य में आपके सिस्टम के लिए सही दृष्टिकोण नहीं होगा, इसका मतलब यह नहीं है कि यह आज के लिए सही दृष्टिकोण नहीं है। चाल इस पर नजर रखने और अतिरिक्त निवेश करने के लिए जाने पर है।


1
यह महान व्याख्या है और हम यह पहचानने में सक्षम हैं कि हमें प्रोजेक्ट और टीम संरचना के आधार पर डॉकर्स और माइक्रो सेवाओं का उपयोग कहां करना है। धन्यवाद।
अनूप

2

कोई समस्या नहीं है यदि आप अपने माइक्रोसिस्टर्स के लिए एकल कंटेनर का उपयोग कर रहे हैं, लेकिन माइक्रोसर्विस का मुख्य लक्ष्य प्रत्येक सेवाओं को अलग-अलग बनाए रखना है, प्रत्येक सेवा को शिथिल रूप से जोड़ा जाना चाहिए और प्रत्येक सेवा का अलग डेटाबेस होना चाहिए (यदि आप प्रति सेवा आर्किटेक्चर डेटाबेस प्राप्त करना चाहते हैं)। इसलिए इस चीज को हासिल करने के लिए अपनी सेवाओं को अलग-अलग कंटेनर में चलाने की कोशिश करें और उन सेवाओं को डॉकटर झुंड या कुबेरनेट्स के साथ करें। मुझे लागत के मामले पता हैं, लेकिन अगर आप इसे सही तरीके से करते हैं तो आप फिर माइक्रोसेक्चर आर्किटेक्चर की शक्ति देखेंगे।


क्या यह लागत के लिहाज से फायदेमंद है अगर हम अलग-अलग सूक्ष्म सेवाओं के लिए अलग-अलग डॉकटर कंटेनर का उपयोग कर रहे हैं। चूंकि हम परियोजना में 100 से 150 माइक्रो सेवाओं की उम्मीद कर रहे हैं
अनूप

नहीं, यह लागत के लिहाज से फायदेमंद नहीं है, लेकिन प्रत्येक सेवा को अलग से चलाना तकनीकी रूप से फायदेमंद होगा।
स्लिम कोडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.