প্রোডাকশন পরিবেশ হল সেই জায়গা যেখানে একটি অ্যাপ্লিকেশন বাস্তব ব্যবহারকারী এবং ডেটা নিয়ে কাজ করে। ডেভেলপমেন্ট এবং স্টেজিংয়ের বিপরীতে, প্রোডাকশনে স্থিতিশীলতা, কর্মক্ষমতা এবং ত্রুটি সহনশীলতার প্রতি বাড়তি মনোযোগ প্রয়োজন। DORA (2024) অনুসারে, উচ্চ DevOps পরিপক্কতা সম্পন্ন দলগুলি নিম্ন-পরিপক্ক দলের তুলনায় 200 গুণ বেশি বার প্রোডাকশনে ডিপ্লয় করে। CI/CD পাইপলাইন এই প্রক্রিয়াটিকে স্বয়ংক্রিয় করে, মানবিক ত্রুটির ঝুঁকি হ্রাস করে এবং ব্যবহারকারীদের কাছে পরিবর্তন সরবরাহ ত্বরান্বিত করে।
মূল বিষয়
CI/CD-এর প্রেক্ষাপটে প্রোডাকশন হল অ্যাপ্লিকেশন জীবনচক্রের চূড়ান্ত পর্যায়, যেখানে বিল্ড এবং টেস্টিংয়ের সমস্ত ধাপ অতিক্রম করার পর কোড শেষ ব্যবহারকারীদের জন্য উপলব্ধ হয়। ডেভেলপমেন্ট এবং স্টেজিং পরিবেশের বিপরীতে, প্রোডাকশন পরিবেশ বাস্তব ডেটা এবং লোড নিয়ে কাজ করে, যা নির্ভরযোগ্যতা এবং কর্মক্ষমতার উপর বিশেষ প্রয়োজনীয়তা আরোপ করে।
প্রোডাকশন পরিবেশ শুধু একটি সার্ভার নয়, বরং একটি সম্পূর্ণ অবকাঠামো যা লোড ব্যালেন্সার, ডেটাবেস, ক্যাশিং লেয়ার, CDN এবং মনিটরিং সিস্টেম অন্তর্ভুক্ত করে। প্রতিটি উপাদান ত্রুটি-সহনশীল এবং স্কেলেবল হতে হবে। মোবাইল ডেভেলপমেন্টে, প্রোডাকশনে ব্যাকএন্ড পরিষেবা, API গেটওয়ে এবং পুশ অবকাঠামোও অন্তর্ভুক্ত যা ক্লায়েন্ট অ্যাপ্লিকেশনকে সমর্থন করে।
প্রোডাকশন পরিবেশকে কঠোর মানদণ্ড পূরণ করতে হবে: 99.9% এবং তার বেশি উপলব্ধতা, API প্রতিক্রিয়া সময় 200 ms-এর বেশি নয়, দুর্যোগ পুনরুদ্ধার সমর্থন (SLA-এর মধ্যে RTO এবং RPO)। মোবাইল অ্যাপ্লিকেশনের জন্য, ক্র্যাশ রিপোর্টিং, ব্যবহার বিশ্লেষণ এবং পরীক্ষার জন্য A/B প্ল্যাটফর্ম অতিরিক্তভাবে প্রয়োজন। CI/CD পাইপলাইন প্রতিটি ডিপ্লয়মেন্টের আগে স্বয়ংক্রিয় পরীক্ষার মাধ্যমে এই প্রয়োজনীয়তাগুলির সাথে সম্মতি নিশ্চিত করে।
প্রোডাকশনে ডিপ্লয়মেন্ট একটি বহু-ধাপ প্রক্রিয়া যা CI/CD পাইপলাইন এর মাধ্যমে স্বয়ংক্রিয় হয়। প্রতিটি ধাপে পরীক্ষা অন্তর্ভুক্ত থাকে যা ত্রুটিপূর্ণ কোডকে প্রোডাকশনে পৌঁছানো থেকে বিরত রাখে। আসুন একটি সাধারণ মোবাইল অ্যাপ্লিকেশন পাইপলাইনের উদাহরণ ব্যবহার করে মূল ধাপগুলি পর্যালোচনা করি।
পাইপলাইন রিপোজিটরির মূল শাখায় কমিট দিয়ে শুরু হয়। পুশের পরে, স্বয়ংক্রিয় বিল্ড এবং ইউনিট টেস্ট চালু করা হয়, তারপরে ইন্টিগ্রেশন টেস্ট এবং কোড গুণমান পরীক্ষা করা হয়। সমস্ত ধাপ সফলভাবে সম্পন্ন হলে, আর্টিফ্যাক্টটি বিল্ড রেজিস্ট্রিতে প্রকাশিত হয় এবং চূড়ান্ত যাচাইয়ের জন্য স্টেজিংয়ে ডিপ্লয় করা হয়। স্টেজিংয়ে নিশ্চিতকরণের পরেই পাইপলাইন প্রোডাকশন ডিপ্লয়মেন্টে এগিয়ে যায়।
@Library("shared-lib") _
pipeline {
agent any
stages {
stage("Build") {
steps {
sh "cd app && ./gradlew assembleRelease"
}
}
stage("Test") {
steps {
sh "cd app && ./gradlew testRelease"
}
}
stage("Deploy to Staging") {
steps {
sh "deploy-staging.sh"
}
}
stage("Deploy to Production") {
input "Deploy to production?"
steps {
sh "deploy-production.sh"
}
}
}
}
প্রোডাকশনে স্বয়ংক্রিয় ডিপ্লয়মেন্ট শূন্য-ডাউনটাইম ডিপ্লয়মেন্ট কৌশল ব্যবহার করে: রোলিং আপডেট, ব্লু-গ্রিন ডিপ্লয়মেন্ট বা ক্যানারি রিলিজ। রোলিং আপডেটে, অ্যাপ্লিকেশনের নতুন ইনস্ট্যান্স পরিষেবা বন্ধ না করেই ধীরে ধীরে পুরানোগুলি প্রতিস্থাপন করে। ব্লু-গ্রিন ডিপ্লয়মেন্ট দুটি অভিন্ন পরিবেশ বজায় রাখে এবং তাত্ক্ষণিকভাবে ট্রাফিক সুইচ করে, সমস্যা দেখা দিলে দ্রুত রোলব্যাকের অনুমতি দেয়। কৌশলের পছন্দ পরিষেবার গুরুত্ব এবং গ্রহণযোগ্য ডাউনটাইমের উপর নির্ভর করে। মোবাইল অ্যাপ্লিকেশনের জন্য, প্রোডাকশনে ডিপ্লয়মেন্টের মধ্যে ধাপে ধাপে রোলআউট সহ অ্যাপ স্টোর (App Store Connect, Google Play Console)-এ প্রকাশনা অন্তর্ভুক্ত, যার জন্য বাইনারি আপলোড, মেটাডেটা পূরণ এবং পর্যালোচনার জন্য জমা দেওয়া সহ প্রকাশনা প্রক্রিয়া স্বয়ংক্রিয় করতে স্টোর API-গুলির সাথে অতিরিক্ত CI/CD ইন্টিগ্রেশন প্রয়োজন।
প্রোডাকশনে সফল ডিপ্লয়মেন্টের পরে, CI/CD পাইপলাইন স্মোক টেস্ট-এর একটি সেট চালু করে যা মৌলিক পরিষেবা কার্যকারিতা যাচাই করে: এন্ডপয়েন্ট উপলব্ধতা, API প্রতিক্রিয়ার সঠিকতা, স্বাভাবিক সীমার মধ্যে প্রতিক্রিয়া সময়। মোবাইল অ্যাপ্লিকেশনের জন্য, অনুমোদন ক্ষমতা, ডেটা সিঙ্ক্রোনাইজেশন এবং পেমেন্ট ইন্টিগ্রেশনের সঠিক কার্যক্রম অতিরিক্তভাবে পরীক্ষা করা হয়। যদি স্মোক টেস্ট ব্যর্থ হয়, পাইপলাইন স্বয়ংক্রিয়ভাবে পূর্ববর্তী স্থিতিশীল সংস্করণে রোলব্যাক শুরু করে এবং দলকে একটি বিজ্ঞপ্তি পাঠায়। ডিপ্লয়মেন্ট-পরবর্তী মনিটরিং বর্ধিত অ্যালার্ট স্তর সহ 30-60 মিনিট পর্যন্ত অব্যাহত থাকে — এটি স্বয়ংক্রিয় পরীক্ষার দ্বারা আচ্ছাদিত নয় এমন সমস্যা সনাক্ত করার জন্য উইন্ডো।
| কৌশল | ডাউনটাইম | রোলব্যাক গতি | জটিলতা |
|---|---|---|---|
| রোলিং আপডেট | সর্বনিম্ন | ক্রমিক | কম |
| ব্লু-গ্রিন | শূন্য | তাৎক্ষণিক | মধ্যম |
| ক্যানারি | শূন্য | ক্রমিক | উচ্চ |
প্রোডাকশন এবং কম কঠোর পরিবেশের মধ্যে মূল পার্থক্য হল বাস্তব ব্যবহারকারীর ডেটা এবং লোড নিয়ে কাজ করা। স্টেজিং পরিবেশ রিলিজের আগে চূড়ান্ত পরীক্ষার জন্য ডিজাইন করা হয়েছে কিন্তু সিন্থেটিক বা বেনামী ডেটা ব্যবহার করে। অন্যদিকে, প্রোডাকশন লাইভ লেনদেন, ব্যক্তিগত ডেটা এবং অত্যন্ত গুরুত্বপূর্ণ অপারেশন প্রক্রিয়া করে, যার জন্য ব্যবস্থাপনায় মৌলিকভাবে ভিন্ন পদ্ধতির প্রয়োজন।
প্রোডাকশন পরিবেশ কনফিগারেশন অন্যান্য পরিবেশ থেকে কঠোরভাবে বিচ্ছিন্ন হতে হবে। এটি এনভায়রনমেন্ট ভেরিয়েবল, ডেটাবেস সংযোগ স্ট্রিং, API কী এবং সার্টিফিকেটের ক্ষেত্রে প্রযোজ্য। প্রোডাকশন অবকাঠামো সাধারণত ত্রুটি সহনশীলতা নিশ্চিত করতে একাধিক উপলব্ধতা অঞ্চলে নকল করা হয়। মোবাইল অ্যাপ্লিকেশনের জন্য, প্রোডাকশনে Apple App Store এবং Google Play কনফিগারেশনও অন্তর্ভুক্ত যা টেস্ট বিল্ডে অনুপস্থিত।
প্রোডাকশনে, পরীক্ষার জন্য বাস্তব ডেটা ব্যবহার কঠোরভাবে নিষিদ্ধ — এই উদ্দেশ্যে স্টেজিং এবং ডেভেলপমেন্ট পরিবেশ বিদ্যমান। ডেটাবেস কাঠামোর সমস্ত পরিবর্তন মাইগ্রেশনের মাধ্যমে হতে হবে যা CI/CD পাইপলাইন স্বয়ংক্রিয়ভাবে প্রয়োগ করে। প্রোডাকশন ডেটা ব্যাকআপ স্বয়ংক্রিয় অখণ্ডতা যাচাই সহ একটি সময়সূচীতে সম্পাদিত হয়। ধারণ নীতি GDPR প্রয়োজনীয়তা এবং অন্যান্য নিয়ম অনুসারে ব্যাকআপের সংরক্ষণ সময়কাল নির্ধারণ করে।
প্রোডাকশন মনিটরিং হল মেট্রিক, লগ এবং ট্রেস সংগ্রহ ও বিশ্লেষণের একটি ধারাবাহিক প্রক্রিয়া। ব্যাপক মনিটরিং ছাড়া, SLA নিশ্চিত করা এবং সময়মত ঘটনা সনাক্ত করা অসম্ভব। মনিটরিংয়ের আধুনিক পদ্ধতি তিনটি স্তম্ভের উপর ভিত্তি করে: মেট্রিক (সংখ্যাত্মক সূচক), লগ (কাঠামোগত ঘটনা রেকর্ড) এবং ট্রেস (অনুরোধ ট্রেসিং)।
প্রধান প্রোডাকশন পরিবেশ মেট্রিক অন্তর্ভুক্ত: আপটাইম (পরিষেবা উপলব্ধতা), লেটেন্সি (প্রতিক্রিয়া বিলম্ব), ত্রুটির হার (ত্রুটির শতাংশ), থ্রুপুট (ব্যান্ডউইথ) এবং স্যাচুরেশন (সম্পদ লোড স্তর)। মোবাইল অ্যাপ্লিকেশনের জন্য, স্টার্টআপ সময় মেট্রিক, ক্র্যাশ-মুক্ত হার এবং ডেটা সিঙ্ক্রোনাইজেশন সময় গুরুত্বপূর্ণ। অ্যালার্টগুলি SLO (পরিষেবা স্তরের উদ্দেশ্য) এর উপর ভিত্তি করে কনফিগার করা হয় যাতে SLA লঙ্ঘনের আগে দল বিজ্ঞপ্তি পায়।
প্রোডাকশন অবকাঠামো মনিটরিংয়ের জন্য বিশেষায়িত প্ল্যাটফর্ম ব্যবহার করা হয়: মেট্রিক সংগ্রহের জন্য Datadog, New Relic, Grafana + Prometheus, মোবাইল অ্যাপ্লিকেশনে ত্রুটি ট্র্যাক করার জন্য Sentry এবং Crashlytics। লগগুলি ELK স্ট্যাক (Elasticsearch, Logstash, Kibana) বা Splunk-এর মাধ্যমে কেন্দ্রীভূত হয়। অনুরোধ ট্রেসিং Jaeger বা Zipkin ব্যবহার করে বাস্তবায়িত হয়। সমস্ত টুল একটি নতুন পরিষেবা ডিপ্লয় করার সময় স্বয়ংক্রিয় ড্যাশবোর্ড তৈরির জন্য CI/CD পাইপলাইনের সাথে সংহত হয়। ঘটনা প্রতিক্রিয়া সিস্টেম (PagerDuty, Opsgenie) সমস্ত মনিটরিং টুল থেকে অ্যালার্ট গ্রহণ করে এবং রোটেশন এবং এসকেলেশন নিয়মের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে অন-কল দায়িত্বশীল ব্যক্তি নিয়োগ করে। প্রতিটি ঘটনার ধরনের জন্য একটি রানবুক রিপোজিটরিতে সংরক্ষিত এবং কোডের সাথে সংস্করণযুক্ত হয়, যা পুনরুদ্ধার নির্দেশাবলীর প্রাসঙ্গিকতা নিশ্চিত করে।
প্রোডাকশন পরিবেশ নিরাপত্তা একটি বহু-স্তরীয় সুরক্ষা ব্যবস্থা যা অবকাঠামো, ডেটা, অ্যাক্সেস এবং ডিপ্লয়মেন্ট প্রক্রিয়াকে কভার করে। প্রতিটি স্তর এমনভাবে কনফিগার করা উচিত যাতে একটির সাথে আপোস পুরো সিস্টেমের সাথে আপোস না করে। CI/CD পাইপলাইন প্রতিটি পাইপলাইন ধাপে স্বয়ংক্রিয় পরীক্ষা, দুর্বলতা স্ক্যানিং এবং সম্মতি নিয়ন্ত্রণের মাধ্যমে নিরাপত্তা নিশ্চিত করতে মূল ভূমিকা পালন করে।
প্রোডাকশন পরিবেশে অ্যাক্সেস ন্যূনতম বিশেষাধিকারের নীতি দ্বারা কঠোরভাবে সীমাবদ্ধ। ডেভেলপারদের প্রোডাকশন সার্ভারে সরাসরি অ্যাক্সেস নেই — সমস্ত পরিবর্তন অনুমোদন প্রক্রিয়া সহ CI/CD পাইপলাইন এর মাধ্যমে যায়। জরুরী অ্যাক্সেসের জন্য, স্বয়ংক্রিয় রোটেশন এবং সম্পূর্ণ কর্ম লগিং সহ অস্থায়ী ক্রেডেনশিয়াল ব্যবহার করা হয়। চার চোখের নীতি (যেকোনো অপারেশনের জন্য দুই জনের অনুমোদন প্রয়োজন) প্রোডাকশন অপারেশনের জন্য মানক।
প্রোডাকশনে প্রতিটি পরিবর্তন অডিট সিস্টেমে রেকর্ড করা হয়: কে ডিপ্লয়মেন্ট শুরু করেছে, কোন কমিট ডিপ্লয় করা হয়েছে, কী কী পরীক্ষা পাস হয়েছে, ডিপ্লয়মেন্টে কত সময় লেগেছে। ঘটনা ব্যবস্থাপনা সিস্টেমের (PagerDuty, Opsgenie) সাথে CI/CD-এর ইন্টিগ্রেশন ডিপ্লয়মেন্ট ব্যর্থ হলে বা SLO লঙ্ঘন হলে স্বয়ংক্রিয় টিকিট তৈরির অনুমতি দেয়। সমস্ত প্রোডাকশন লগ SOC2 এবং ISO 27001 প্রয়োজনীয়তা অনুসারে কমপক্ষে 90 দিনের ধারণ সহ একটি অপরিবর্তনীয় রিপোজিটরিতে সংরক্ষণ করা হয়।
সচরাচর জিজ্ঞাস্য
স্টেজিং হল রিলিজের আগে চূড়ান্ত পরীক্ষার জন্য একটি পরিবেশ যা সিন্থেটিক বা বেনামী ডেটা ব্যবহার করে। প্রোডাকশন বাস্তব ব্যবহারকারী, লোড এবং সংবেদনশীল ডেটা নিয়ে কাজ করে, তাই প্রোডাকশনে নিরাপত্তা এবং ত্রুটি সহনশীলতার প্রয়োজনীয়তা উল্লেখযোগ্যভাবে বেশি। স্টেজিং এবং প্রোডাকশন কনফিগারেশনে যতটা সম্ভব অভিন্ন হওয়া উচিত, কিন্তু সম্পূর্ণ বিচ্ছিন্ন।
ডিপ্লয়মেন্ট ফ্রিকোয়েন্সি CI/CD প্রক্রিয়ার পরিপক্কতা এবং অ্যাপ্লিকেশনের ধরনের উপর নির্ভর করে। DORA (2024) অনুসারে, উচ্চ-কর্মক্ষমতা সম্পন্ন দলগুলি প্রতিদিন বা এমনকি দিনে কয়েকবার ডিপ্লয় করে। মোবাইল অ্যাপ্লিকেশনের জন্য, ফ্রিকোয়েন্সি App Store এবং Google Play পর্যালোচনা চক্র দ্বারা সীমাবদ্ধ, কিন্তু ব্যাকএন্ড পরিষেবাগুলি ব্যাপক স্বয়ংক্রিয় পরীক্ষার সাথে দিনে কয়েকবার ডিপ্লয় করা যেতে পারে।
যখন ডিপ্লয়মেন্ট ব্যর্থ হয়, তখন অবিলম্বে রোলব্যাক প্রক্রিয়া শুরু হয় — পূর্ববর্তী স্থিতিশীল সংস্করণে ফিরে যাওয়া। CI/CD পাইপলাইনের মূল মেট্রিক (ত্রুটির হার, লেটেন্সি) অবনতি হলে স্বয়ংক্রিয় রোলব্যাক সমর্থন করা উচিত। স্থিতিশীলতার পরে, পোস্ট-মর্টেম বিশ্লেষণ পরিচালিত হয়: মূল কারণ চিহ্নিত করা হয়, একটি সংশোধন কার্য তৈরি করা হয় এবং ঘটনার পুনরাবৃত্তি রোধ করতে স্বয়ংক্রিয় পরীক্ষা যুক্ত করা হয়।
গুরুত্বপূর্ণ মেট্রিক: আপটাইম (পরিষেবা উপলব্ধতা), লেটেন্সি (p95 এবং p99 প্রতিক্রিয়া সময়), ত্রুটির হার (HTTP 5xx এবং ব্যতিক্রমের শতাংশ), স্যাচুরেশন (CPU, মেমোরি, ডিস্ক, নেটওয়ার্ক) এবং থ্রুপুট (RPS)। মোবাইল অ্যাপ্লিকেশনের জন্য, ক্র্যাশ-মুক্ত হার, কোল্ড স্টার্ট সময় এবং ANR (অ্যাপ্লিকেশন নট রেসপন্ডিং) ফ্রিকোয়েন্সিও গুরুত্বপূর্ণ। প্রতিটি মেট্রিকের একটি SLO এবং সংশ্লিষ্ট অ্যালার্ট থাকা উচিত।
প্রধান সুরক্ষা পদ্ধতি হল CI/CD পাইপলাইনের মাধ্যমে স্বয়ংক্রিয়করণ: সমস্ত পরিবর্তন বাধ্যতামূলক পরীক্ষা এবং পর্যালোচনা প্রক্রিয়া সহ পাইপলাইনের মধ্য দিয়ে যায়। অতিরিক্তভাবে, নিম্নলিখিতগুলি প্রয়োগ করা হয়: চার চোখের নীতি (দুই সিনিয়র ডেভেলপারের অনুমোদন), ক্রমিক বৈশিষ্ট্য রোলআউটের জন্য ফিচার ফ্ল্যাগ, ঝুঁকি হ্রাস করার জন্য ক্যানারি ডিপ্লয়মেন্ট এবং গুরুত্বপূর্ণ পরিস্থিতি কভার করে স্বয়ংক্রিয় পরীক্ষা। প্রোডাকশনে সরাসরি অ্যাক্সেস শুধুমাত্র অনুমোদিত DevOps পদ্ধতির মাধ্যমে অনুমোদিত।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন