Orbit
एक Deployment को वापस रोल करना
If a deployment breaks production, you can put an earlier build back in front of traffic in seconds without rebuilding anything. This guide covers how rollback works, how to pick the right…
यदि कोई डिप्लॉयमेंट प्रोडक्शन को तोड़ता है, तो आप कुछ ही सेकंड में बिना कुछ दोबारा बनाए एक पहली बिल्ड को ट्रैफिक के सामने वापस ला सकते हैं। यह गाइड कवर करती है कि रोलबैक कैसे काम करता है, सही डिप्लॉयमेंट कैसे चुनें, Orbit जो स्वचालित रोलबैक कर सकता है, और रोलबैक के बाद क्या करें।
रोलबैक कैसे काम करता है
Orbit हर सफल बिल्ड के पैकेज किए गए आर्टिफैक्ट को रखता है। एक रोलबैक आपके इंस्टॉल या बिल्ड कमांड को फिर से चलाता नहीं है: यह एक आर्टिफैक्ट को प्रमोट करता है जो पहले से मौजूद है और पहले से ही सेवा दी जा चुकी है, इसलिए यह सेकंड में पूरा होता है और बिल्ड विफल होने के किसी भी कारण से विफल नहीं हो सकता।
यह पहले पहुंचने का पूरा कारण है। रोलबैक करना तेज है, और आपकी साइट टूटे हुए दौरान आगे की ओर ठीक करने की कोशिश करने से कहीं अधिक अनुमानित है।
पिछली डिप्लॉयमेंट पर रोलबैक करना
- अपनी प्रोजेक्ट को Orbit में खोलें।
- Deployments टैब खोलें।
- आखिरी डिप्लॉयमेंट खोजें जो आप जानते हैं कि अच्छी थी।
- उस पंक्ति पर Roll back क्लिक करें और पुष्टि करें।
पुष्टि ठीक यह कहती है कि क्या होगा: ट्रैफिक तुरंत पुरानी बिल्ड से सेवा दी जाएगी, और वर्तमान डिप्लॉयमेंट को प्रतिस्थापित किया जाएगा।

आप डिप्लॉयमेंट के अपने विवरण पृष्ठ से भी रोलबैक कर सकते हैं, जहां बटन छोटे कमिट हैश के लिए Rollback to पढ़ता है।
पुनः स्थापित डिप्लॉयमेंट CURRENT बैज उठाता है। जिस डिप्लॉयमेंट को आप दूर रोल कर गए हैं वह Rolled back स्टेटस के साथ इतिहास में रहता है।
रोलबैक विनाशकारी नहीं है और इसे पूर्ववत करने की आवश्यकता नहीं है। कुछ भी नहीं हटाया जाता, कोई इतिहास फिर से नहीं लिखा जाता, और आपकी रिपोजिटरी अछूती रहती है। आपका अगला सफल पुश प्रोडक्शन शाखा को सामान्य तरीके से बस नया लाइव संस्करण बन जाता है।
सही डिप्लॉयमेंट की पहचान करना
डिप्लॉयमेंट टैब पर प्रत्येक पंक्ति कमिट संदेश और छोटा हैश, शाखा, स्टेटस, कब डिप्लॉय हुआ, और किसने इसे पुश किया दिखाता है। लाइव एक CURRENT बैज ले जाता है।
आमतौर पर आप वह डिप्लॉयमेंट चाहते हैं जो समस्या पैदा करने वाले से तुरंत पहले था। दो चीजें आपको सुनिश्चित करने में मदद करती हैं:
- Compare. संदिग्ध डिप्लॉयमेंट खोलें और Compare क्लिक करें इसे पिछली के विरुद्ध डिफ करने के लिए: बिल्ड समय, आर्टिफैक्ट आकार, कैश स्टेट, फ्रेमवर्क, और फाइल-स्तर आर्टिफैक्ट अंतर।
- Deployment notes. किसी भी डिप्लॉयमेंट में 500 वर्णों तक का नोट हो सकता है। "payment bug के लिए hotfix" या "feature flag X on" जोड़ना समय पर कुछ नहीं खर्च करता और महीनों बाद इतिहास को पढ़ने योग्य बनाता है, जो ठीक वह है जब आपको इसकी जरूरत है।
किसी आर्टिफैक्ट को रोलबैक करना आपके पर्यावरण चर, रीडायरेक्ट नियमों या प्रतिक्रिया हेडर को नहीं रोलबैक करता। उन्हें अनुरोध या बिल्ड के समय पढ़ा जाता है, आर्टिफैक्ट में बेक नहीं किया जाता। यदि घटना कोड परिवर्तन के बजाय कॉन्फ़िगरेशन परिवर्तन के कारण हुई थी, तो कोड को रोलबैक करना इसे ठीक नहीं करेगा। डिप्लॉयमेंट विवरण पृष्ठ बिल्ड समय पर इंजेक्ट किए गए चर को आपके वर्तमान कॉन्फ़िगरेशन के विरुद्ध डिफ करता है, जो दोनों को अलग बताने का सबसे तेज तरीका है।
स्वचालित रोलबैक
Orbit इसे आपके लिए कर सकता है इससे पहले कि आप भी ध्यान दें। सभी तीन सेटिंग्स Settings में हैं।
विफलता पर स्वचालित रोलबैक
Runtime के तहत, Auto-rollback on failure को चालू करें। यदि प्रोडक्शन डिप्लॉय विफल होता है, तो अंतिम स्वस्थ डिप्लॉयमेंट स्वचालित रूप से पुनः स्थापित किया जाता है और आगंतुक कोई डाउनटाइम नहीं देखते हैं। Staging का अपना स्वयं का समान टॉगल है।
हेल्थ चेक
Health check के तहत, एक Health check path सेट करें, उदाहरण के लिए / या /api/health। हर प्रोडक्शन डिप्लॉय के बाद, Orbit उस पथ को फेच करता है। यदि यह 15 सेकंड के भीतर 2xx प्रतिक्रिया नहीं देता है, तो पिछली स्वस्थ डिप्लॉयमेंट पुनः स्थापित की जाती है।
स्मोक टेस्ट
Smoke tests के तहत, 10 तक अल्पविराम-अलग पथ सूचीबद्ध करें, उदाहरण के लिए /,/blog,/api/health। हर सफल डिप्लॉय के बाद, Orbit प्रत्येक को एक GET भेजता है और पास या विफलता रिकॉर्ड करता है। यदि कोई विफल होता है और स्वचालित रोलबैक सक्षम है, तो पिछली डिप्लॉयमेंट पुनः स्थापित की जाती है। परिणाम डिप्लॉयमेंट पृष्ठ पर Smoke tests passed या विफलता गणना के रूप में दिखाई देता है, और कहता है Triggered rollback जब इसने एक का कारण बना।
एक होम पेज पर एक चेक की तुलना में एक रूट पर स्वास्थ्य जांच जो वास्तव में आपके डेटाबेस का उपयोग करती है वह कहीं अधिक मूल्यवान है। एक टूटी हुई डिप्लॉयमेंट जो अभी भी एक कैश किया गया होम पेज सेवा करती है एक / चेक पास करेगी और एक वास्तविक विफल होगी।
रोलबैक बनाम डिप्लॉय लॉक
यदि आप रोलबैक के लिए तैयार नहीं हैं लेकिन जांच करते समय कुछ भी नई नहीं जाना चाहते हैं, तो इसके बजाय डिप्लॉय को लॉक करें:
- प्रोजेक्ट खोलें।
- Lock deploys क्लिक करें।
- एक कारण जोड़ें, उदाहरण के लिए "investigating production issue"।
पुश-ट्रिगर्ड डिप्लॉयमेंट तब चुपचाप छोड़ दिए जाते हैं, और एक बैनर Production deploys are locked पढ़ता है आपके कारण के साथ। मैनुअल डिप्लॉयमेंट अभी भी काम करते हैं, जो जानबूझकर है: लॉक आकस्मिक डिप्लॉयमेंट को रोकता है, आप जो ठीक कर रहे हैं उसे नहीं। इसे हटाने के लिए Unlock deploys क्लिक करें।
एक लॉक और एक रोलबैक अच्छी तरह से एक साथ काम करते हैं। सेवा को पुनः स्थापित करने के लिए पहले रोलबैक करें, फिर लॉक करें ताकि निदान करते समय किसी का दिनचर्या मर्ज इसे पूर्ववत न करे।
Staging को प्रोडक्शन में प्रमोट करना
यदि आप एक Staging वातावरण चलाते हैं, तो आप कुछ भी पुश किए बिना एक परीक्षित Staging बिल्ड को प्रोडक्शन में रख सकते हैं।
- प्रोजेक्ट अवलोकन खोलें और Staging सेक्शन खोजें।
- यदि Staging प्रोडक्शन से आगे है, Promote to production दिखाई देता है।
- इसे क्लिक करें और पुष्टि करें।
पुष्टि को ध्यान से पढ़ें, क्योंकि Orbit में दो अलग-अलग प्रचार व्यवहार हैं और वे विनिमेय नहीं हैं। प्रोजेक्ट अवलोकन से प्रमोट करना समान कमिट पर एक fresh production build ट्रिगर करता है, प्रोडक्शन पर्यावरण चर और प्रोडक्शन बिल्ड कमांड का उपयोग करते हुए। Staging आर्टिफैक्ट पुनः उपयोग नहीं किया जाता है। इसके विवरण पृष्ठ से एक विशिष्ट Staging डिप्लॉयमेंट को प्रमोट करना स्पष्ट रूप से कहता है कि Staging बिल्ड बिना पुनर्निर्माण के तुरंत लाइव हो जाती है। यदि आपके Staging और प्रोडक्शन पर्यावरण चर अलग हैं, तो पहला पथ जो आप परीक्षण करते हैं उससे एक अलग आर्टिफैक्ट का उत्पादन करेगा।
Orbit भी प्रमोट कर सकता है। Settings में Auto-promote staging स्वास्थ्यकर Staging के कई घंटे बाद Staging को प्रोडक्शन में प्रमोट करता है जिसमें स्मोक टेस्ट पास हो रहे हैं, हर 15 मिनट की जांच की जाती है।
रोलबैक के बाद
अपनी रिपोजिटरी में अंतर्निहित समस्या को ठीक करें और एक नया कमिट पुश करें। यह एक सामान्य बिल्ड ट्रिगर करता है जो नया लाइव संस्करण बन जाता है। यदि आपने डिप्लॉयमेंट को लॉक किया है, तो पहले उन्हें अनलॉक करें, या पुश छोड़ दिया जाएगा।
प्रोजेक्ट Activity टैब रोलबैक को हर चीज के साथ दर्ज करता है जो हुई, इसलिए यह एक ऑडिट ट्रेल है कि किसने क्या रोलबैक किया और कब।
क्या सीमित करता है कि आप कितना दूर वापस जा सकते हैं
रोलबैक के लिए आर्टिफैक्ट अभी भी मौजूद होना आवश्यक है। दो सेटिंग्स इसे नियंत्रित करती हैं:
- आपकी प्लान की डिप्लॉयमेंट इतिहास विंडो: Launch पर 7 दिन, Liftoff पर 30, Apex पर 90।
- प्रोजेक्ट की Artifact retention सेटिंग, जो प्रति पर्यावरण सफल आर्टिफैक्ट की संख्या रखती है, 10 से 500 तक, डिफ़ॉल्ट रूप से 50।
वर्तमान लाइव डिप्लॉयमेंट का आर्टिफैक्ट हमेशा दोनों की परवाह किए बिना रखा जाता है।
यदि आप दिन में कई बार डिप्लॉय करते हैं, तो आर्टिफैक्ट गणना वह सीमा है जो आप पहले हिट करेंगे, न कि दिन की गणना। पचास डिप्लॉयमेंट एक सप्ताह हो सकते हैं। घटना के दौरान छत की खोज करने के बजाय Artifact retention को बढ़ाएं।