GitHub Actions और DevOps पाइपलाइनों के साथ CI/CD · पाठ

Actions के साथ कैनरी रिलीज़

प्रदर्शन और स्थिरता पर नज़र रखते हुए नए फ़ीचर को धीरे-धीरे कुछ उपयोगकर्ताओं तक पहुँचाने के लिए कैनरी रिलीज़ पैटर्न लागू कीजिए।

पाठ 2, कुल 4 में से11 चरण

Actions के साथ कैनरी रिलीज़, CoddyKit पर GitHub Actions और DevOps पाइपलाइनों के साथ CI/CD का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह GitHub Actions और DevOps पाइपलाइनों के साथ CI/CD सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। GitHub Actions और DevOps पाइपलाइनों के साथ CI/CD पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

कैनरी रिलीज़ का परिचय

कल्पना कीजिए कि आप कोई नया फ़ीचर या अपडेट जारी कर रहे हैं। यदि उसमें ऐसा बग हो जो आपके सभी उपयोगकर्ताओं को प्रभावित करे तो क्या होगा? डरावना है, है न?

कैनरी रिलीज़ पहले उपयोगकर्ताओं के एक छोटे समूह के लिए बदलावों को धीरे-धीरे जारी करके इस जोखिम को कम करने में मदद करती हैं। यह बाकी सभी लोगों के प्रवेश करने से पहले हवा की जाँच करने के लिए "कोयला खदान में कैनरी" भेजने जैसा है।

कैनरी रिलीज़ के लाभ

कैनरी रिलीज़ कई महत्वपूर्ण लाभ देती हैं:

  • कम जोखिम: समस्याओं के प्रभाव को उपयोगकर्ताओं के छोटे समूह तक सीमित रखें।
  • वास्तविक दुनिया की प्रतिक्रिया: प्रदर्शन और स्थिरता पर उत्पादन डेटा प्राप्त करें।
  • त्वरित पिछले संस्करण पर वापसी: समस्या आने पर केवल छोटे कैनरी समूह या पूरी सेवा को जल्दी पिछले संस्करण पर ले जाएँ।
  • नियंत्रित विस्तार: भरोसा बढ़ने के साथ उपयोगकर्ताओं के लिए उपलब्धता धीरे-धीरे बढ़ाएँ।

कैनरी बनाम ब्लू/ग्रीन

आपको ब्लू/ग्रीन परिनियोजन याद होगा, जिसमें दो एक जैसे परिवेशों के बीच ट्रैफ़िक तुरंत बदला जाता है।

कैनरी रिलीज़ अलग होती हैं। इनमें तुरंत बदलाव के बजाय धीरे-धीरे ट्रैफ़िक बदला जाता है। नया संस्करण पुराने संस्करण के साथ चलता है और शुरुआत में केवल कुछ प्रतिशत उपयोगकर्ताओं को नया संस्करण दिखाई देता है। इससे पूर्ण रूप से जारी करने से पहले विस्तृत निगरानी की जा सकती है।

कैनरी रिलीज़ कैसे काम करती हैं

कैनरी रिलीज़ का मूल प्रवाह इस प्रकार है:

  1. नया संस्करण परिनियोजित करें: आपके एप्लिकेशन का नया संस्करण मौजूदा स्थिर संस्करण के साथ कुछ सर्वर या इंस्टेंस के छोटे समूह में परिनियोजित किया जाता है।
  2. थोड़ा ट्रैफ़िक भेजें: लोड बैलेंसर या सेवा जाल को इस तरह कॉन्फ़िगर किया जाता है कि उपयोगकर्ता ट्रैफ़िक का एक छोटा प्रतिशत (जैसे, 5-10%) नए संस्करण पर भेजा जाए।
  3. निगरानी करें: कैनरी समूह के प्रदर्शन, त्रुटि दर और उपयोगकर्ता प्रतिक्रिया की बारीकी से निगरानी की जाती है।
  4. आगे बढ़ाएँ या पिछले संस्करण पर लौटाएँ: यदि सब कुछ ठीक दिखे, तो ट्रैफ़िक धीरे-धीरे बढ़ाया जाता है या नए संस्करण को 100% तक पहुँचा दिया जाता है। यदि समस्याएँ आती हैं, तो कैनरी को पिछले संस्करण पर लौटाया जाता है और ट्रैफ़िक को स्थिर संस्करण पर वापस भेज दिया जाता है।

GitHub Actions के साथ समन्वय

GitHub Actions पूरी कैनरी रिलीज़ प्रक्रिया का समन्वय कर सकता है। यह सीधे ट्रैफ़िक प्रबंधित नहीं करता (यह आपके अवसंरचना का काम है), बल्कि यह चरणों को ट्रिगर करता है:

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

कैनरी कार्यप्रवाह की रूपरेखा

कैनरी रिलीज़ के लिए सामान्य GitHub Actions कार्यप्रवाह कुछ इस तरह दिख सकता है:

name: Canary Deployment

on: push

jobs:
  build:
    # ... build and test steps ...

  deploy-canary:
    needs: build
    steps:
      - name: Deploy to Canary Group
        # ... call script/tool to deploy and shift 10% traffic ...

  monitor-canary:
    needs: deploy-canary
    # ... wait for monitoring/approval ...

  promote-or-rollback:
    needs: monitor-canary
    # ... conditionally promote to 100% or rollback ...

हर चरण आपके तैनाती उपकरणों के साथ परस्पर क्रिया करेगा।

कैनरी रोलआउट तर्क का अनुकरण

जहाँ GitHub Actions समन्वय करता है, वहीं वास्तविक निर्णय लेना और तैनाती के आदेश अक्सर स्क्रिप्ट के भीतर होते हैं। यहाँ एक Python उदाहरण है, जो कैनरी रोलआउट के तर्क का अनुकरण करता है। कल्पना कीजिए कि कोई Action यह स्क्रिप्ट चला रहा है:

def deploy_version(version, traffic_percent):
    print(f"Deploying {version} to {traffic_percent}% traffic.")
    if traffic_percent == 100:
        print("Full rollout complete!")
    elif traffic_percent > 0:
        print("Canary deployed. Monitoring for stability...")
    else:
        print("Version removed (rollback).")

if __name__ == "__main__":
    print("--- Starting Canary Workflow ---")
    new_app_version = "v2.1-canary"
    stable_app_version = "v2.0"

    # Step 1: Deploy new version to 10% traffic
    deploy_version(new_app_version, 10)

    # Step 2: Simulate monitoring (e.g., waiting for metrics)
    print("Monitoring canary performance...")
    import random
    canary_successful = random.choice([True, True, True, False]) # 75% chance of success

    if canary_successful:
        print("Canary looks good! Proceeding to full rollout.")
        # Step 3a: Promote new version to 100%
        deploy_version(new_app_version, 100)
    else:
        print("Canary issues detected! Rolling back.")
        # Step 3b: Rollback to stable version
        deploy_version(stable_app_version, 100)
    print("--- Canary Workflow Finished ---")

अपने कैनरी की निगरानी

प्रभावी निगरानी अत्यंत महत्वपूर्ण है। आपका GitHub Actions कार्यप्रवाह निगरानी प्रणालियों के साथ कई तरीकों से जुड़ सकता है:

  • API कॉल: प्रमुख मेट्रिक्स के लिए निगरानी उपकरणों (जैसे Datadog, Prometheus) से जानकारी प्राप्त करना।
  • स्वास्थ्य जाँच: अनुप्रयोग के स्वास्थ्य एंडपॉइंट पर बार-बार अनुरोध भेजना।
  • मैन्युअल नियंत्रण: मानव समीक्षा और अनुमोदन के लिए कार्यप्रवाह को रोकना।
  • समय-आधारित प्रतीक्षा: मेट्रिक्स के स्थिर होने के लिए निर्धारित अवधि तक प्रतीक्षा करना।

इसके बाद कार्यप्रवाह इन संकेतों का उपयोग यह तय करने के लिए करता है कि कैनरी को आगे बढ़ाना है या रोलबैक करना है।

सशर्त प्रमोशन/रोलबैक

निगरानी चरण के बाद, GitHub Actions अगला चरण तय करने के लिए सशर्त तर्क का उपयोग करता है। आप अपने जॉब या चरण की परिभाषाओं में if कथनों का उपयोग कर सकते हैं।

  promote-or-rollback:
    needs: monitor-canary
    if: success() && needs.monitor-canary.outputs.canary_ok == 'true'
    steps:
      - name: Promote Full Rollout
        # ... command to shift 100% traffic to new version ...

  rollback:
    needs: monitor-canary
    if: failure() || needs.monitor-canary.outputs.canary_ok == 'false'
    steps:
      - name: Rollback to Stable
        # ... command to shift 100% traffic to old version ...

इससे कैनरी के प्रदर्शन के अनुसार स्वचालित प्रतिक्रिया सुनिश्चित होती है।

कैनरी रिलीज़ जाँच

आपने कैनरी रिलीज़ के लाभों और कार्यप्रणाली के बारे में सीखा है। आइए, आपकी समझ की जाँच करें।

पुनरावलोकन: Actions के साथ कैनरी रिलीज़

इस पाठ में आपने कैनरी रिलीज़ के बारे में सीखा, जो नए सॉफ़्टवेयर संस्करणों को धीरे-धीरे कुछ उपयोगकर्ताओं तक पहुँचाने की एक प्रभावी तैनाती रणनीति है।

  • कैनरी रिलीज़ जोखिम को कम करती हैं और वास्तविक दुनिया से प्रतिक्रिया देती हैं।
  • GitHub Actions निर्माण, कैनरी में तैनाती, निगरानी और सशर्त प्रमोशन/रोलबैक चरणों का समन्वय करता है।
  • प्रभावी निगरानी और सशर्त तर्क सफल कैनरी कार्यप्रवाहों की कुंजी हैं।

कैनरी का उपयोग करके आप अधिक विश्वास और नियंत्रण के साथ तैनाती कर सकते हैं!

शुरुआत निःशुल्क

एआई शिक्षक के साथ GitHub Actions और DevOps पाइपलाइनों के साथ CI/CD सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “Actions के साथ कैनरी रिलीज़” पाठ निःशुल्क है?

हाँ—“Actions के साथ कैनरी रिलीज़” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और GitHub Actions और DevOps पाइपलाइनों के साथ CI/CD पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। GitHub Actions और DevOps पाइपलाइनों के साथ CI/CD पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Actions के साथ कैनरी रिलीज़” में मैं क्या सीखूँगा?

प्रदर्शन और स्थिरता पर नज़र रखते हुए नए फ़ीचर को धीरे-धीरे कुछ उपयोगकर्ताओं तक पहुँचाने के लिए कैनरी रिलीज़ पैटर्न लागू कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ GitHub Actions और DevOps पाइपलाइनों के साथ CI/CD का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या GitHub Actions और DevOps पाइपलाइनों के साथ CI/CD शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर GitHub Actions और DevOps पाइपलाइनों के साथ CI/CD शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“Actions के साथ कैनरी रिलीज़” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस GitHub Actions और DevOps पाइपलाइनों के साथ CI/CD पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर GitHub Actions और DevOps पाइपलाइनों के साथ CI/CD पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. ब्लू/ग्रीन परिनियोजन
  2. Actions के साथ कैनरी रिलीज़
  3. रोलबैक और आपदा पुनर्प्राप्ति
  4. Feature flag और progressive rollout
← GitHub Actions और DevOps पाइपलाइनों के साथ CI/CD पर वापस जाएँ