Canary और linear deployments

AWS पर Deployments को ऑटोमेट करना

Dunieski Otano

Amazon Web Services Solutions Architect

एक खराब रिलीज़, हर यूज़र पर

split

  • Payment-logic बदलाव तुरंत 100% ट्रैफिक पर डिप्लॉय हुआ
  • लाइव लोड में बग दिखा; हर checkout फेल
  • 10% canary से यह 5 मिनट में पकड़ा जाता
  • Canary छोड़ने की कीमत: वास्तविक पैसों का नुकसान
AWS पर Deployments को ऑटोमेट करना

Canary deployment क्या है

canary

  • पहले नई वर्ज़न पर ट्रैफिक का छोटा हिस्सा भेजें
  • मेट्रिक्स को फिक्स्ड वेट पीरियड तक देखें
  • हेल्दी हो तो बाकी सब एक साथ शिफ्ट करें
  • आम पैटर्न: 10% for 5 minutes, फिर 100%
AWS पर Deployments को ऑटोमेट करना

Linear deployment क्या है

linear

  • ट्रैफिक को बराबर इन्क्रिमेंट्स में शिफ्ट करें
  • हर स्टेप के बीच इंतज़ार करें
  • उदाहरण: 10% every 1 minute, कुल 10 मिनट
  • Canary से स्मूथ, पर समय ज्यादा लगता है
AWS पर Deployments को ऑटोमेट करना

Canary vs. linear, साथ-साथ

  • Canary: एक स्लाइस, फिर सबकुछ
  • Linear: कई छोटे स्टेप्स
  • Canary जल्दी इश्यू पकड़ता है; linear धीरे-धीरे रैम्प करता है
  • दोनों रुकते हैं अगर rollback ट्रिगर हो

traffic

AWS पर Deployments को ऑटोमेट करना

Lambda के लिए CodeDeploy कॉन्फ़िगरेशन

  • CodeDeployDefault.LambdaCanary10Percent5Minutes: 10% for 5 min, फिर 100%
  • CodeDeployDefault.LambdaLinear10PercentEvery1Minute: हर मिनट +10%
  • CodeDeployDefault.LambdaAllAtOnce: पूरा ट्रैफिक तुरंत
  • ECS में इसी से मिलते-जुलते ECS-प्रिफिक्स्ड कॉन्फ़िग्स हैं

label

AWS पर Deployments को ऑटोमेट करना

CloudWatch अलार्म से ऑटो रोलबैक

  • डिप्लॉयमेंट ग्रुप से CloudWatch अलार्म जोड़ें
  • आम अलार्म: errors, duration, 5xx
  • अगर अलार्म ALARM स्टेट में जाए, डिप्लॉयमेंट रुकता है
  • CodeDeploy पिछली वर्ज़न पर roll back करता है

label

AWS पर Deployments को ऑटोमेट करना

सही कॉन्फ़िगरेशन चुनना

pick

  • रूटीन कम-रिस्क पैच → AllAtOnce
  • हाई-रिस्क प्रोडक्शन बदलाव → Canary
  • स्मूथ, steady रैम्प चाहिए → Linear
  • हमेशा अलार्म के साथ पेयर करें ताकि ऑटो-रोलबैक हो सके
AWS पर Deployments को ऑटोमेट करना

अभ्यास करते हैं!

AWS पर Deployments को ऑटोमेट करना

Preparing Video For Download...