Canary Releases এবং Blue/Green Deployments

Lambda এর প্রোডাকশন ডিপ্লয়মেন্ট - এডাব্লিউএস ল্যাম্বডা (AWS Lambda) - Web Development

283

Canary Releases এবং Blue/Green Deployments দুটি জনপ্রিয় deployment strategy যা সিস্টেমের আপডেট এবং পরিবর্তনগুলোকে সুরক্ষিতভাবে প্রবর্তন করতে ব্যবহৃত হয়। এই কৌশলগুলো বিশেষত গুরুত্বপূর্ণ যখন আপনি production সিস্টেমে নতুন ফিচার বা কোড ডিপ্লয় করতে চান কিন্তু তা পুরোপুরি production পরিবেশে ব্যর্থ হওয়া থেকে বাঁচাতে চান।

AWS Lambda এবং Step Functions এর সাথে এই দুটি deployment কৌশল প্রয়োগ করা যেতে পারে। নিচে আলোচনা করা হবে Canary Releases এবং Blue/Green Deployments কিভাবে কাজ করে এবং Axure RP এর প্রেক্ষিতে কিভাবে সেগুলোর বাস্তবায়ন করা যেতে পারে।


১. Canary Releases

Canary Release হল একটি deployment কৌশল যেখানে নতুন ফিচার বা কোড প্রথমে একটি ছোট অংশের ব্যবহারকারীর জন্য চালানো হয়, এবং ধীরে ধীরে বৃহত্তর অংশে প্রকাশ করা হয়। এর মাধ্যমে production environment এর মধ্যে কোনো ত্রুটি বা সমস্যা তৈরি হলে সেটি দ্রুত চিহ্নিত করা সম্ভব হয়, এবং সেই অনুযায়ী পদক্ষেপ নেওয়া যায়।

Canary Release এর পদ্ধতি

  1. প্রথমে ছোট গ্রুপে রোল আউট করুন: নতুন সংস্করণটি প্রথমে ছোট গ্রুপের ব্যবহারকারীর কাছে বা টেস্ট ডেটা নিয়ে পরীক্ষা করা হয়। এটি এক ধরনের A/B testing এর মতো কাজ করে, যেখানে দুইটি ভিন্ন ভার্সনের মধ্যে পার্থক্য দেখা হয়।
  2. ফিডব্যাক সংগ্রহ করুন: যদি কোনো সমস্যা ঘটে, সেটি দ্রুত শনাক্ত করা যায় এবং সমস্যা সমাধানের জন্য পদক্ষেপ নেওয়া যায়।
  3. বড় গ্রুপে রোল আউট: ছোট গ্রুপে সফল হওয়ার পর, নতুন কোডটি ধীরে ধীরে আরো বেশি ব্যবহারকারীর কাছে প্রকাশ করা হয়।
  4. সুপিরিয়র লোগিং এবং মনিটরিং: Canary releases চলাকালে মনিটরিং এবং লোগিং ব্যবস্থা স্থাপন করা খুবই গুরুত্বপূর্ণ। এটি আপনাকে নতুন রিলিজের পারফরম্যান্স বিশ্লেষণ করতে সহায়তা করে।

Canary Release এর উদাহরণ

AWS Lambda ব্যবহার করলে, আপনি AWS CodeDeploy এর মাধ্যমে Canary Deployment কনফিগার করতে পারেন। এখানে নতুন Lambda ফাংশনের কোড আপডেট প্রথমে ছোট অংশে রোল আউট হয়, এবং যদি কোনো সমস্যা না থাকে তবে সেটি পুরোপুরি production environment এ ডিপ্লয় করা হয়।

CodeDeploy Canary Release কনফিগারেশন:

{
  "deploymentGroupName": "MyDeploymentGroup",
  "deploymentConfigName": "CodeDeployDefault.LambdaCanary10Percent5Minutes",
  "applicationName": "MyLambdaApplication",
  "revision": {
    "revisionType": "AppSpecContent",
    "appSpecContent": {
      "version": 0.0,
      "content": "<AppSpec content here>"
    }
  }
}

এই কনফিগারেশনে প্রথম ১০% ট্রাফিক Canary Release এর মাধ্যমে যায়, এবং পরবর্তীতে ধীরে ধীরে বাকি ট্রাফিকের মধ্যে রোল আউট হয়।


২. Blue/Green Deployments

Blue/Green Deployment একটি কৌশল যেখানে দুটি আলাদা পরিবেশ থাকে: একটি Blue Environment (বর্তমান উৎপাদন পরিবেশ) এবং একটি Green Environment (নতুন পরিবেশ যেখানে নতুন কোড বা ফিচারগুলি ডিপ্লয় করা হয়)। এই কৌশলে মূল উদ্দেশ্য হলো কোনো ধরনের ডাউনটাইম ছাড়াই নতুন কোড চালু করা এবং অ্যাপ্লিকেশন সম্পূর্ণরূপে কার্যকরী অবস্থায় রেখে ব্যবহারকারীদের ট্রাফিক পরিচালনা করা।

Blue/Green Deployment এর পদ্ধতি

  1. Blue Environment: প্রথমে বর্তমানে চলমান কোড যা production এ আছে, সেটি Blue environment তে রয়ে যায়।
  2. Green Environment: Green environment তৈরি করা হয় যেখানে নতুন কোড বা ফিচারটি ডিপ্লয় করা হয়। এটি পুরোপুরি production-ready থাকে, কিন্তু কোনো রিয়েল-টাইম ট্রাফিক গ্রহণ করে না।
  3. Test Green Environment: Green environment-এ নতুন ফিচার বা আপডেট পরীক্ষা করা হয়। যদি সবকিছু ঠিক থাকে, তবে Green environment-কে production environment হিসেবে প্রকাশ করা হয়।
  4. Switch Traffic: একবার Green environment production-এ চলে আসলে, পুরনো Blue environment থেকে ট্রাফিক Green environment এ সরিয়ে নেওয়া হয়। যদি কোনো সমস্যা ঘটে, তবে Blue environment এ ফিরে যাওয়া যায়।
  5. Rollback: যদি Green environment এ কোনো সমস্যা দেখা দেয়, তাহলে দ্রুত Blue environment এ ফিরে যাওয়া সম্ভব।

Blue/Green Deployment এর উদাহরণ

AWS Lambda এবং AWS CodeDeploy এর মাধ্যমে Blue/Green Deployment কনফিগার করা সম্ভব। CodeDeploy এর মাধ্যমে Blue environment থেকে Green environment এ সরাসরি ট্রাফিক স্যুইচ করা হয়, এবং কোনো ত্রুটি হলে আপনি সহজেই পুনরায় Blue environment এ ফিরে যেতে পারেন।

CodeDeploy Blue/Green Deployment কনফিগারেশন:

{
  "deploymentGroupName": "MyDeploymentGroup",
  "deploymentConfigName": "CodeDeployDefault.LambdaAllAtOnce",
  "applicationName": "MyLambdaApplication",
  "revision": {
    "revisionType": "AppSpecContent",
    "appSpecContent": {
      "version": 0.0,
      "content": "<AppSpec content here>"
    }
  },
  "blueGreenDeploymentConfiguration": {
    "deploymentReadyOption": {
      "actionOnTimeout": "CONTINUE_DEPLOYMENT"
    },
    "terminateBlueInstancesOnDeploymentSuccess": {
      "action": "TERMINATE"
    }
  }
}

এই কনফিগারেশনে, Green environment যখন সফলভাবে ডিপ্লয় হবে, তখন Blue environment কে টার্মিনেট করে ফেলা হবে। কোনো সমস্যা হলে, Blue environment তে ফিরে যাওয়ার অপশন থাকবে।


Canary Releases এবং Blue/Green Deployments এর মধ্যে পার্থক্য

  • Canary Releases: প্রথমে নতুন ফিচার একটি ছোট গ্রুপে ডিপ্লয় করা হয় এবং তারপর ধীরে ধীরে বড় গ্রুপে ছড়িয়ে দেওয়া হয়। এটা ট্রাফিক ভাগ করে কনফিগার করা যায় এবং সাধারণত error tracking এর জন্য ব্যবহৃত হয়।
  • Blue/Green Deployments: দুটি সম্পূর্ণ আলাদা পরিবেশে নতুন কোড ডিপ্লয় করা হয়—Blue environment পুরানো কোড এবং Green environment নতুন কোডের জন্য। একবার Green environment production-এ চলে এলে, পুরনো Blue environment থেকে ট্রাফিক স্যুইচ করা হয়।

সারাংশ

Canary Releases এবং Blue/Green Deployments দুটি deployment কৌশলই অ্যাপ্লিকেশন বা সিস্টেমে পরিবর্তন করার সময় ত্রুটি সহনশীলতা এবং রিস্ক ম্যানেজমেন্ট নিশ্চিত করে। Canary Releases ছোট গ্রুপে নতুন ফিচার রোল আউট করে এবং ধীরে ধীরে বড় গ্রুপে প্রকাশ করা হয়, যেখানে Blue/Green Deployments দুটি আলাদা পরিবেশ তৈরি করে এবং একটি পরিবেশে নতুন কোড ডিপ্লয় করা হয়, তারপর পুরনো পরিবেশে ট্রাফিক পরিবর্তন করা হয়। AWS Lambda এবং Step Functions এর সাহায্যে এই কৌশলগুলো খুবই কার্যকরীভাবে প্রয়োগ করা যেতে পারে, বিশেষত যখন আপনি দ্রুত এবং নির্ভরযোগ্যভাবে নতুন কোড প্রবর্তন করতে চান।

Content added By
Promotion

Are you sure to start over?

Loading...