16

ऐसा लगता है कि जिस कंपनी के लिए मैं काम करता हूं वह हमेशा हमारे ग्राहकों के सर्वर वातावरण से संघर्ष कर रहा है।परीक्षण और उत्पादन सर्वर वातावरण को साफ, सिंक, और संगत

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

बेशक

हम क्यों ऐसा होता है की एक सामान्य विचार है। हर क्लोन वातावरण ही बाहर शुरू होता है और दिन के एक ही पहले दो काम करता है, लेकिन अभी या बाद में किसी सर्वर वातावरण से केवल एक में कुछ पुन: कॉन्फ़िगर (यह एक डेटाबेस अद्यतन हो, एक घटक पुस्तकालय का एक अद्यतन, एक वेब फ़ाइल अद्यतन, या अन्य विन्यास), जिससे विसंगति का कारण बनता है। और जैसे ही समय बीतता है, अधिक से अधिक विसंगतियां बढ़ती हैं। लेकिन सवाल यह है कि हम इसके बारे में क्या कर सकते हैं?

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

मैं कल्पना है कि दूसरों को यह बहुत ही समस्या के रूप में अच्छी तरह से की है। या वे करते हैं? शायद यह सिर्फ मेरी विशेष कंपनी है जो अक्षम है? क्या आप में से कोई समस्या का सामना कर रहा है? यदि हां, तो आपने इसके बारे में क्या किया?

निष्ठा से,

लीनुस, स्वीडिश सिस्टम डेवलपर

+0

लिनस, यह * विशेष रूप से * आपके ग्राहकों के वातावरण में शिपिंग कोड को संदर्भित करता है, है ना? आप उन परिवेशों पर यथार्थ रूप से कितना नियंत्रण डाल सकते हैं। –

+0

साथ ही, क्या आप सूचीबद्ध कर सकते हैं कि आप अपने ग्राहकों के लिए कौन से वातावरण का समर्थन करते हैं? विंडोज? लिनक्स? मैक? अब आपके पास किस तरह की आवश्यकताएं हैं? कॉन्फ़िगरेशन प्रबंधन के लिए –

उत्तर

0

आप यह सुनिश्चित करें कि वातावरण में कोई भी परिवर्तन के लिए एक सुसंगत तरीके से किया जाता बनाने की जरूरत है।

मैं या तो ताजा छवियों के साथ शुरू करना और एक सख्त संशोधन लॉग नीति लागू करना, या दूरस्थ मशीनों को निष्पादित करने और कोड को सभी मशीनों पर तैनात करने के लिए कैपिस्ट्रानो जैसे कुछ का उपयोग करना चाहूंगा।

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

6

आपको परीक्षण वातावरण में किए गए हर बदलाव का ट्रैक रखना शुरू करना होगा और उत्पादन वातावरण में इसका प्रचार करने का एक तरीका प्रदान करना होगा।

कोड के लिए, इसका मतलब है एक संस्करण प्रणाली जैसे सीवीएस, सबवर्जन या जीआईटी।

डेटाबेस के लिए, इसका मतलब संरचना तुलना उपकरण या उत्पादन डेटाबेस अद्यतन करने वाली स्क्रिप्ट को तैनात करना है।

कॉन्फ़िगरेशन के लिए, दो सिस्टम बिल्कुल वही होना चाहिए और किसी भी 'ट्वीकिंग' या बदलती जरूरतों को पहले परीक्षण सर्वर पर लागू किया जाना चाहिए और बाद में तैनाती के दौरान उत्पादन सर्वर पर लागू किया जाना चाहिए।

जब तक आपके पास कोई प्रक्रिया न हो, तब तक आपको समस्याएं जारी रहेंगी।

+0

, यदि आप वास्तव में महत्वाकांक्षी महसूस कर रहे हैं तो आप एक घोषणात्मक भाषा के साथ अपने सिस्टम कॉन्फ़िगरेशन (स्थापित पैकेज, कॉन्फ़िगरेशन फ़ाइल सामग्री इत्यादि) को परिभाषित करने के लिए cfengine या कठपुतली को देख सकते हैं। –

0

आपकी समस्याएं काफी सामान्य हैं। कम से कम दो रणनीतियों को मैं अच्छी तरह से जानता हूं:

यदि आप लिनक्स पर वितरण कर रहे हैं, तो आप अपनी विकास प्रक्रिया से आरपीएमएस/डीबीएस बना सकते हैं और पैकेज प्रबंधन फ़ंक्शन का उपयोग कर सकते हैं। मुझे पता है कि कई परियोजनाएं इनहाउस परियोजनाओं के लिए बड़ी सफलता के साथ करती हैं।

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

इन दोनों रणनीतियों को अपनी बिल्ड स्क्रिप्ट/बिल्ड सिस्टम से सभी तरह से इन कलाकृतियों के स्वचालित उत्पादन को शामिल करना चाहिए। यह प्रक्रिया आसान है, सभी शामिल पार्टियों के लिए बेहतर है।

0

बेशक हमारे पास एक सामान्य विचार है कि ऐसा क्यों होता है। हर क्लोन वातावरण ही बाहर शुरू होता है और एक ही दिन के पहले दो काम करता है, लेकिन अभी या बाद में किसी सर्वर वातावरण

मुझे लगता है कि आप उदार किया जा रहा है कर रहे हैं से केवल एक में कुछ पुन: कॉन्फ़िगर, या आप जा चुके हैं बहुत भाग्यशाली। जैसे-जैसे दुकानों को विकास कार्यों के लिए अनुबंध करने की आवश्यकता नहीं होती है, वे वास्तव में विकास प्रक्रिया को समझ नहीं पाते हैं। यदि वे आपको जो भी मिलेगा, उस पर एक परीक्षण वातावरण प्रदान करते हैं, तो अंतिम सर्वर रीफ्रेश से पहले उनकी उत्पादन प्रणाली है।

0

सिंक में MySQL डेटाबेस रखने के लिए, मैं सिर्फ इस उपकरण में भाग:

http://schemasync.org/

मैं वास्तव में यह अभी तक उपयोग नहीं किया है तो मैं क्या यह किसी भी अच्छा है से बात नहीं कर सकते, लेकिन हम की जरूरत है परीक्षण और प्रोड के बीच स्कीमा बहाव को नियंत्रित करने का कोई तरीका है ताकि हम इसे एक शॉट दे सकें।

संबंधित मुद्दे