आपके द्वारा वर्णित कोड और कॉन्फ़िगरेशन का वर्तमान संगठन शामिल तकनीकी समाधानों द्वारा संरचित है। यह एक खराब डिज़ाइन है जो हमारे रखरखाव गतिविधियों में बहुत अधिक उपरि जोड़ देगा और साथ ही हमारे रास्ते में बहुत सारे जाल जोड़ देगा। इसके बजाय, उस संगठन को उन कलाकृतियों के आसपास संरचित किया जाना चाहिए जिन्हें हम तैनात कर रहे हैं।
इसका कारण यह है कि हम कलाकृतियों पर विचार करना चाहते हैं ( उदाहरण के लिए एक डॉकटर या सॉफ्टवेयर पैकेज) निम्नलिखित क्रियाओं की वस्तुओं के रूप में:
हम जो स्वचालित कार्य करना चाहते हैं, उसके न्यूनतम सेट पर विचार करना। अगर हम इस बारे में कुछ बदलना चाहते हैं कि परीक्षण क्रिया कैसे लागू की जाती है, तो उपयुक्त रिपॉजिटरी में उस आर्टिफैक्ट के अनुरूप फ़ोल्डर पर जाना आसान है और फिर जेनकिंस-विशिष्ट स्वचालन आइटम की खोज करें जिन्हें अपडेट करने की आवश्यकता है। इसके बजाय, अगर तकनीकी समाधानों के आसपास स्वचालन व्यंजनों को संरचित किया जाता है, तो हमें नीले रंग से यह पता लगाने की आवश्यकता है कि जेनकींस परीक्षण प्रक्रियाओं में शामिल है और वहां से संबंधित संबंधित स्वचालन आइटम ढूंढते हैं। जटिल परिस्थितियों में, तकनीकी समाधानों के आसपास का संगठन अपडेट को बहुत कठिन बना देता है, क्योंकि हमें एक प्राथमिकताओं को जानना होता है ताकि किसी सेवा में शामिल सभी तकनीकी समाधानों को उनके अनुसार अपडेट किया जा सके।
उदाहरण के लिए, एक वेबसाइट और एक माइक्रो-सर्विस "a" के लिए कोड वाले एक रिपॉजिटरी में निम्नलिखित उप-निर्देशिकाएं हो सकती हैं जो संचालन के लिए समर्पित हैं:
./ops/website
./ops/micro-service-a
प्रत्येक में तीन स्क्रिप्ट्स होती हैं build
, test
और deploy
। अब जब ऑटोमेशन आइटम के संगठन को किसी तरह स्पष्ट किया गया है, तो आइए हमारा ध्यान विन्यास पर दें।
कॉन्फ़िगरेशन संगठन के बारे में मुख्य शर्तें और आवश्यकताएं deploy
एक सेवा की तरह कलाबाजी पर लागू होने पर क्रिया द्वारा निर्धारित की जाती हैं । deploy
क्रिया निम्न पैरामीटर होना चाहिए:
- तैनाती के लिए आर्टिफैक्ट का संस्करण,
- आर्टिफैक्ट का परिनियोजन लक्ष्य, जो कंक्रीट के वातावरण का वर्णन करता है, जहां पर तैनात आर्टिफैक्ट चलेंगे ( उदाहरण के लिए एक क्लस्टर और एंडपॉइंट्स पर बात करनी चाहिए)
- अन्य एंडपॉइंट ( जैसे डेटाबेस) से कनेक्ट करने के लिए इसे उपयोग करने वाले क्रेडेंशियल
- का रनटाइम कॉन्फ़िगरेशन (जैसे कि कितनी लंबी कैश एंट्री होनी चाहिए, आदि)
परिचालन के दृष्टिकोण से, पैरामीट्रिशन का यह टूटना तैनाती की समस्या की स्वतंत्रता की प्राकृतिक डिग्री से मेल खाता है - एक तरफ उन क्रेडेंशियल्स से जिन्हें रनटाइम कॉन्फ़िगरेशन के साथ बंडल किया जा सकता है, लेकिन उन्हें अलग करने से बेहतर है कि उन्हें लापरवाही से फैलाने से बचें।