यह उन बदलावों पर निर्भर करेगा जो आप कर रहे हैं, जैसा कि एंटेंडु सुझाव देता है। यदि डेटाबेस अभी तक अपडेट नहीं किया गया है, तो त्रुटियों के कारण कोड अपडेट को किस अनुपात में चलाया जा सकता है? कुछ भी जो डेटाबेस अपडेट पर निर्भर नहीं है (और शायद आप इसे और अधिक सामान्य बनाने के लिए विकास प्रक्रिया को थोड़ा बदल सकते हैं) ऐसा करने के लिए वास्तव में कुछ खास नहीं है। मुझे लगता है कि आप कम से कम समय के साथ तैनाती करना चाहते हैं, अन्यथा यह बस कुछ बुनियादी सिंक संचालन लेगा। इस मामले में हमेशा अवांछित प्रभावों के साथ समय की कुछ खिड़की होगी (भले ही यह केवल पढ़ने के लिए केवल मोड में साइट हो) लेकिन मुझे लगता है कि यह अधिकांश समय काफी छोटा हो सकता है।
आप समय से पहले प्रत्येक सर्वर पर एक "नई" निर्देशिका स्थापित करने और फिर एक ही समय में नई निर्देशिका को इंगित करने के लिए उन पर स्विच कर रहे हैं जैसे मूल अनुकूलन कर सकते हैं (शायद Entendu के जवाब में जैसे सिर्लिंक का उपयोग करके) ताकि आप सभी प्राप्त कर सकें सर्वर 5-10 सेकंड के भीतर नई फ़ाइलों पर स्विच कर दिया।
यह डेटाबेस अद्यतन के मुद्दे को छोड़ देता है। यदि वे उस प्रकार के हैं जो केवल एक सर्वर से किया जाना है, तो आप दूसरों को रखरखाव मोड में रखना चाहते हैं या ऐसा होने पर उनका उपयोग न करने के लिए लोड बैलेंसर को समायोजित कर सकते हैं। बेशक, यदि वे नहीं किए जा सकते हैं जबकि उपयोगकर्ता साइट पर सक्रिय रहते हैं, तो आपको केवल रखरखाव मोड में सब कुछ होना चाहिए, लेकिन सरल अपडेट के लिए यह कुछ ऐसा हो सकता है जिसे आप लगभग 30 सेकंड या उससे कम समय में कर सकते हैं।
यह विभिन्न प्रकार के परिवर्तनों के लिए अलग-अलग परिनियोजन स्क्रिप्ट होने के लायक हो सकता है, इसलिए आप आवश्यक न्यूनतम प्रक्रिया चला सकते हैं, चाहे वह फ़ाइलों की प्रतिलिपि बनाना हो, एक छोटा डेटाबेस अद्यतन चलाना हो, या एक बड़ा डेटाबेस परिवर्तन करना हो।
यदि आप अपनी फ़ाइल और डेटाबेस अपडेट को ऑप्टिमाइज़ कर सकते हैं और देख सकते हैं कि क्या साधारण बदलाव हैं जिनसे आप चीजें विकसित कर सकते हैं, तो यह आपको और करीब ले जा सकता है, लेकिन मुझे नहीं पता कि इसमें से कोई भी आपके लिए नया है :)