देव/चरण/परीक्षण पर्यावरण से उत्पादन के लिए साइट अपडेट को धक्का देने के सर्वोत्तम अभ्यास क्या हैं?


8

अभी मेरे पास एक बुनियादी सर्वर है जो मूल LAMP कॉन्फ़िगरेशन चला रहा है। उत्पादन सर्वर slicehost है। लेकिन मैं सोच रहा हूं कि कोड/डीबी के चरणों को चरण> चरण> उत्पादन में धक्का देने का सबसे अच्छा तरीका क्या है। क्या आपको चरणों को बनाने के साथ क्या करना है?

साइट को नीचे लाए बिना आप इसे कैसे करते हैं? यदि आप लोड संतुलन नहीं करते हैं तो क्या यह भी संभव है?

मुझे पता है कि यह कुछ सामान्य है, मैं बस सही दिशा में इंगित करने के लिए देख रहा हूं।

1

मैं दीपक के लिए स्वचालित "निर्माण" शैली के माहौल में कुछ प्रकार की तलाश करूंगा जहां आपके पास स्क्रिप्ट हैं जो प्रत्येक वातावरण के लिए पैकेज तैयार करती हैं और तैयार करती हैं।

मुझे पता है कि PHP के लिए कोई वास्तविक इमारत नहीं है लेकिन आप किसी भी कॉन्फ़िगरेशन या सेटअप समस्याओं को बदलने के लिए स्वचालन सेट अप कर सकते हैं और सब कुछ लागू करने के लिए तैयार फ़ोल्डर में सहेज सकते हैं।

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

वास्तव में फ़ाइलों की प्रतिलिपि बनाने के कार्य के लिए, मुझे एफ़टीपी या जो भी सुविधाजनक है, का उपयोग करने से कहीं ज्यादा नहीं पता। हो सकता है कि एक लोडिंग संदेश डालें। फिर यह सब लिखित हो सकता है।

अंत में ध्यान रखें क्योंकि PHP नहीं बनाया गया है, यह आपके लिए अब क्या हो रहा है और आपने जो बदल दिया है और केवल उन फ़ाइलों को स्थानांतरित करने के बीच अंतर को ट्रैक करने के लिए अच्छा काम कर सकता है। कभी-कभी जो अनियंत्रित जटिलता जोड़ सकता है।


2

मैं "रखरखाव मोड" जिफी बनाने के लिए .htaccess का उपयोग करता हूं जहां अद्यतन करते समय केवल मेरा आईपी मुख्य साइट देख सकता है। सभी को एक छोटा संदेश देखने को मिलता है ताकि वे जान सकें कि कुछ चीजों में सबकुछ वापस ऑनलाइन होना चाहिए।

तब मैं:

  1. बनाओ किसी भी डीबी संपादित करता
  2. SVN निर्यात/
  3. भागो स्वचालित परीक्षण अपलोड की गई फ़ाइलों और जितना संभव हो उतना दे एक त्वरित देखो घोर रूप से गलत
  4. कोई बात नहीं है सुनिश्चित करने के लिए
  5. .htaccess

वापस लाएं यह एक दिया है, लेकिन जैसा कि आप मवाद से पहले स्थानीय स्तर पर कर सकते हैं आप ज्यादा के रूप में चीजों का परीक्षण करना चाहिए एक लाइव सर्वर के लिए hing। लाइव लोग अपडेट के लिए परीक्षण क्षेत्र के रूप में कार्य करने के लिए कुछ लोग दो लाइव सर्वर (जैसे उत्पादन सर्वर पर गुप्त रूप से नाम सबडोमेन) का उपयोग करते हैं। यह मुख्य साइट के वास्तविक डाउनटाइम को कम कर सकता है।

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

  0

और मैं इसे जोड़ दूंगा। Htaccess-swap-out, डीबी-संपादन, svn चेकआउट/फ़ाइल-अपलोडिंग और स्वचालित इकाई परीक्षण सभी को स्क्रिप्ट किया जा सकता है, इसलिए एक अद्यतन बहुत तेज होता है। 23 sep. 082008-09-23 19:14:11


1

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


0

जहां तक ​​सभी वेब सर्वरों पर फ़ाइलों को धक्का देना मुझे लगता है कि अच्छी पुरानी रोबोकॉपी चाल करता है। मेरे देव/मंच/प्रोड वातावरण सभी समान हैं। बस एक अस्थायी पृष्ठ डालें जो उपयोगकर्ताओं को बताता है कि साइट वापस आ जाएगी।


0

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


0

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

ये यूआरएल स्थिर एचटीएमएल फाइलों के लिंक हैं जो उपयोगकर्ता को बता रहे हैं कि क्या हो रहा है।

जब यह सक्षम होता है तो डेटाबेस या किसी भी फ़ाइल के लिए कोई अनुरोध नहीं होता है क्योंकि ऐसा होने से पहले सभी अनुरोध HTML फ़ाइल में भेजे जाते हैं जो मुझे किसी भी अपडेट को तैनात करने के लिए 'स्पष्ट' स्थान देता है।


0

अपाचे चींटी svn और ftp के लिए कार्यों के साथ मेरे लिए बिल। ऐसे लोग भी हैं जो एएनटी के साथ डीबी सामान करते हैं, लेकिन मैं उन्हें व्यक्तिगत रूप से देखना चाहता हूं। एक बार जब आपके पास अपने सभी स्थानों पर ftp के लिए क्लीन और पुश बिल्ड हो जाए, तो आप आश्चर्यचकित होंगे कि यह कितना आसान है।