आप (आपकी कंपनी) आपके द्वारा बनाए गए ऐप्स/सिस्टम की कॉन्फ़िगरेशन फ़ाइलों को कैसे प्रबंधित करते हैं? मैं आपको बताता हूं कि हम इसे कैसे करते हैं, और समस्या क्या है।वातावरण में कॉन्फ़िगरेशन फ़ाइलों को प्रबंधित करें
मैं एक ऐसी कंपनी में काम कर रहा हूं जहां हम लगभग 15 डेवलपर्स के साथ सॉफ्टवेयर विकसित करते हैं। हम लाइन-ऑफ-बिजनेस वेब ऐप्स बनाते हैं जो हमारे प्रबंधित होस्टिंग प्रदाता पर तैनात किए जाते हैं। हमारे मुख्य ऐप्स में से एक में एक वेबसाइट और लगभग दस डब्ल्यूसीएफ सेवाएं शामिल हैं। कुछ सेवाएं एक-दूसरे से जुड़ी हैं।
मुझे नहीं पता कि यह एक बड़ी प्रणाली है, या छोटी है, लेकिन मेरी राय यह है कि चीजों को पाने और हमारे विभिन्न वातावरण (परीक्षण, स्वीकृति और उत्पादन) में चलने के लिए हमें बहुत लंबा रास्ता लगता है।
हमारे पास हमारे विजुअल स्टूडियो परियोजनाओं में प्रति वातावरण कॉन्फ़िगर-फ़ाइलें हैं। तो web.test.config
, web.acc.config
, web.prod.config
और web.config
विकास के लिए। उनके पास सभी में एक ही कुंजी है, लेकिन वे पर्यावरण के आधार पर मूल्य अलग-अलग हो सकते हैं।
यदि मैं वेबपैप के लिए web.config में एप्सेटिंग की त्वरित गणना करता हूं तो मैं 32 गिनती करता हूं। और मैं 5 एंडपॉइंट्स गिनता हूं। हमारे पास चार वातावरण हैं (देव, परीक्षण, एसीसी और प्रोड) इसका मतलब है कि एक वेब ऐप के लिए कुल 128 ऐपेटिंग और 20 एंडपॉइंट्स हैं। हम आसानी से गलतियां कर सकते हैं, खासकर जब समय सीमाएं बंद हो रही हैं। हम सभी लोग हैं इसलिए इस तरह की चीजें हर किसी के साथ होती हैं: हम कॉन्फ़िगर-फ़ाइल में बदलाव करते हैं, लेकिन निर्माण और तैनाती से पहले जांचना भूल जाते हैं। या हम वेबसर्वर पर बदलाव करते हैं और इसे चार web.configs में भी बदलना भूल जाते हैं। या हम केवल चार कॉन्फ़िगरेशन फ़ाइलों में से तीन को बदलते हैं। और इसी तरह। और फिर हमारे पास हमारे प्रबंधित होस्टिंग प्रदाता पर आधारभूत संरचना है। डिफ़ॉल्ट रूप से प्रत्येक बंदरगाह बंद है। इसलिए यदि एक डब्ल्यूसीएफ सेवा को किसी अन्य सर्वर पर किसी अन्य डब्ल्यूसीएफ सेवा से बात करने की ज़रूरत है, तो एक पोर्ट को फ़ायरवॉल में खोला जाना है। हम इसे टेस्ट में करते हैं, लेकिन स्वीकृति में हमें इसे फिर से करना है, और हम भूल गए हैं कि कौन से बंदरगाहों को खोला जाना है, इसलिए यह परीक्षण और त्रुटि की तरह है: ओह मेरी सेवा डेटाबेस से कनेक्ट नहीं हो सकती है, शायद बंदरगाह बंद है। और वही सामान फिर से उत्पादन में होता है। एसएलए के मुताबिक, हमारे प्रबंधित होस्टिंग प्रदाता को फायरवॉल में बंदरगाह खोलने में कुछ दिन लग सकते हैं। तो, thuis जल्दी एक बहुत लंबी प्रक्रिया बन जाता है। और अंत में टेस्ट, स्वीकृति और उत्पादन करने और चलाने के लिए हमें लगभग दो महीने लगते हैं।
तो, मेरा सवाल है: आप कॉन्फ़िगरेशन और आधारभूत संरचना और इसके आसपास की प्रक्रिया का प्रबंधन कैसे करते हैं?
केवल एक टुकड़ा। शुरुआत में मेरे पास एक चेक था कि ऐप सभी संसाधनों को छूता है और एक गैर प्रतिक्रिया की रिपोर्ट करता है। – Paparazzi
यह एक अच्छा सवाल है - मेरी इच्छा है कि इसमें दर्जनों जवाब हों। –