के साथ परमाणु वेबसाइट अपडेट मैं एक परमाणु तरीके से एक लाइव वेबसाइट अपडेट करना चाहता हूं। यदि हमने पृष्ठों, छवियों और जावास्क्रिप्ट में कई बदलाव किए हैं, तो सभी परिवर्तन एक साथ डाउनटाइम, असंगतता, या 404 के साथ दिखाई देना चाहिए।गिट
यदि मैं बस बदली गई फ़ाइलों को वेबसाइट निर्देशिका में कॉपी करता हूं, तो कम से कम कुछ अनुरोध एक असंगत साइट देखेंगे। यदि मैं नई साइट को एक अलग निर्देशिका में कॉपी करता हूं, तो उसे पुरानी निर्देशिका का नाम बदलने के लिए नाम बदलें और इसे लाइव करने के लिए नई निर्देशिका का नाम बदलें, फिर एक संक्षिप्त पल के लिए हमें 404 मिलेंगे।
मैं कैसे एक परमाणु रास्ते में फ़ाइलों की एक निर्देशिका अद्यतन कर सकते हैं:
मैं वास्तव में दो प्रश्न हैं?
मैं इसे गिट के साथ कैसे समन्वयित कर सकता हूं? हम एक गिट पुल (या संभवतः धक्का) का उपयोग करके तैनाती करना चाहते हैं। गिट रेपो के भीतर साइट का पथ सर्वर पर पथ से अलग है, इसलिए कुछ चलने/नाम बदलने की आवश्यकता है, या तो गिट कमांड या ओएस कमांड का उपयोग करना।
Capistrano एक ऐसा उपकरण है जो आपके कोड को परमाणु रूप से तैनात करने के लिए सिम्लिंक का उपयोग करता है। – user1158559
यह एक अच्छा जवाब है। हालांकि, असंगत परिणाम होने का एक छोटा सा मौका है क्योंकि ब्राउज़र एक पृष्ठ का अनुरोध कर सकता है, साइट बदल सकती है, और फिर पृष्ठ एक छवि या सीएसएस फ़ाइल का अनुरोध कर सकता है जो अब वहां नहीं था। लेकिन सर्वर पक्ष पर इसके बारे में आप कुछ भी नहीं कर सकते हैं। – ccleve
@ccleve यदि आप वास्तव में फैंसी प्राप्त करना चाहते हैं, तो आप प्रत्येक रखरखाव सत्र को एक ही रिलीज में लॉक करने या कुकीज़ के साथ खेलने के लिए प्रयास कर सकते हैं। – Zenexer