দেখুন: উৎপাদনের আগে QA গেটস
ভিডিও: youtu.be/Vs2Em0HPvoY · পণ্য: ringpromoter.com
Ring Promoter অর্ডার করা রিংগুলির জন্য Workstation এর প্রচার নিয়ন্ত্রণ প্লেন int → test → acc → prod. এই নিবন্ধে ফোকাস সেই পাইপলাইনে QA এবং মানের গেট: তারা কোথায় বসেন, কীভাবে স্বয়ংক্রিয়ভাবে প্রচার করা হয় মানব গেটের সাথে (বিশেষ করে প্রোডের আগে), প্রথম-শ্রেণীর গেট হিসাবে স্বাস্থ্য এবং সংস্করণ যাচাইকরণ, রোলব্যাক আচরণ এবং এআই প্ল্যাটফর্ম টিমের জন্য প্রভাব। পণ্য: ringpromoter.com উত্স: github.com/bwalia/ring-promoter. সহচর ব্লগ: ব্যবসা সংক্ষিপ্ত · সংক্ষিপ্ত বিবরণ: আধুনিক CI/CD নিবন্ধ পণ্য পাতা: /রিং-প্রবর্তক.
- সমস্যা: পণ্যে সবকিছু স্বয়ংক্রিয়ভাবে প্রচার করা হল YOLO; হাত দিয়ে প্রতিটি হপ গেট করা খুব ধীর।
- মডেল: ভাগ করা রিং; এক সময়ে একটি হপ; কখনই এড়িয়ে যাবেন না; স্বাস্থ্য (+ ঐচ্ছিক সংস্করণ) প্রতিটি হপ উপর.
- নীতি: ঐচ্ছিক
auto_promoteপ্রারম্ভিক hops জন্য রিং প্রতি; মানব গেট চালু রাখুনacc → prod. - ব্যর্থতা: অস্বাস্থ্যকর লক্ষ্য বা সংস্করণের অমিল → স্বয়ংক্রিয় রোলব্যাক + ইতিহাস।
- ট্যাগলাইন: পণ্যে স্বয়ংক্রিয়ভাবে প্রচার করবেন না — QA গেটগুলির মাধ্যমে উত্পাদন উপার্জন করুন।
1. প্রচার প্রক্রিয়া (রিক্যাপ)
অ্যাপ্লিকেশনগুলি প্রতি-রিং স্থাপনার লক্ষ্য ঘোষণা করে (নেমস্পেস, স্থাপনা, চিত্র রেপো, স্বাস্থ্য URL, স্থাপনকারী)। রিং নিজেদের ভাগ এবং আদেশ করা হয়. অপারেটর, CI, বা এজেন্ট কল করুন:
- বীজ - একটি সংস্করণ চালু করুন
int(বা একটি কনফিগার করা এন্ট্রি রিং)। - প্রচার — থেকে সংস্করণ সরান
from_ringথেকে পরবর্তী শুধুমাত্র রিং - রোলব্যাক — একটি রিং-এ পূর্ববর্তী সংস্করণ পুনরুদ্ধার করুন (ব্যর্থ পোস্ট-ডিপ্লোয় স্বাস্থ্যের ক্ষেত্রেও স্বয়ংক্রিয়)।
সঙ্গতি: একই অ্যাপের জন্য ক্রিয়াকলাপগুলি সিরিয়াল করা হয় (প্রতিলিপি জুড়ে Postgres সেশন পরামর্শমূলক লক)। অপারেশন প্রসঙ্গ HTTP অনুরোধ থেকে বিচ্ছিন্ন এবং দ্বারা আবদ্ধ operation_timeout, তাই একটি ক্লায়েন্ট সংযোগ বিচ্ছিন্ন একটি ইন-ফ্লাইট প্রচার বা এর রোলব্যাক বাতিল করতে পারে না।
Operators / CI / Agents
→ Ring Promoter (UI + REST API)
→ seed / promote / rollback
→ Deployer (kubectl | GitHub Actions | k8sjob)
→ Health (HTTP + optional version verify) ← quality gate
→ optional auto_promote to next ring ← policy gate
→ Store (Postgres history + locks)
Rings: int → test → acc → prod
2. যেখানে QA গেট বসে
| হপ | সাধারণ গেট মিশ্রণ | নোট |
|---|---|---|
int → test |
স্বাস্থ্য + সংস্করণ; প্রায়ই স্বয়ংক্রিয়_প্রচার | বীজ পরে দ্রুত প্রতিক্রিয়া |
test → acc |
স্বাস্থ্য + সংস্করণ; ইভাল/ধোঁয়া পরে ঐচ্ছিক অটো | স্বয়ংক্রিয় সক্ষম করার আগে স্বাস্থ্যের শেষ পয়েন্টগুলিকে শক্তিশালী করুন৷ |
acc → prod |
স্বাস্থ্য + সংস্করণ + মানব / QA অনুমোদন | করবেন না ডিফল্টরূপে প্রোড-এ স্বয়ংক্রিয়ভাবে প্রচার করুন |
গেট স্তরিত হয়. অটো-প্রমোট কখনই স্বাস্থ্য বা সংস্করণ যাচাইকরণকে বাইপাস করে না — এটি শুধুমাত্র হপসের মধ্যে মানুষের ক্লিকের জন্য অপেক্ষাকে সরিয়ে দেয় যখন পূর্ববর্তী ল্যান্ডিং সুস্থ থাকে।
3. প্রতি রিং স্বয়ংক্রিয় পতাকা প্রচার করুন
অটো-প্রমোট হল ঐচ্ছিক এবং প্রতি রিং. অটো-প্রোমোট সক্ষম থাকা একটি রিং-এ একটি সংস্করণ সুস্থভাবে অবতরণ করলে, Ring Promoter একই লক করা অপারেশনের ভিতরে পরবর্তী রিং-এ চলতে থাকে। নীতি স্কেচ উদাহরণ:
# Conceptual ring policy (illustrative)
rings:
- name: int
auto_promote: true # healthy int → continue to test
- name: test
auto_promote: true # healthy test → continue to acc
- name: acc
auto_promote: false # HUMAN GATE — stop before prod
- name: prod
auto_promote: false # terminal ring
অ্যাপ-স্তরের রিং ম্যাপিংগুলি এখনও স্থাপনা এবং স্বাস্থ্যের বিবরণ বহন করে:
# Per-app ring mapping (illustrative)
apps:
web-frontend:
rings:
acc:
namespace: acc-apps
deployment: web-frontend
health_url: https://acc.example/healthz
health_version_field: version
prod:
namespace: prod-apps
deployment: web-frontend
health_url: https://www.example/healthz
health_version_field: version
অপারেশনাল টিপ: আপনি সেই অ্যাপের জন্য স্বাস্থ্য চুক্তিতে বিশ্বাস করার পরেই স্বয়ংক্রিয় প্রচার সক্ষম করুন৷ সবসময় দুর্বল-200 এন্ডপয়েন্ট প্লাস অটো-প্রমোট আনন্দের সাথে গ্রহণযোগ্যতার দিকে একটি খারাপ বাইনারি মার্চ করবে।
4. মানের গেট হিসাবে স্বাস্থ্য এবং সংস্করণ যাচাইকরণ
প্রতিটি প্রচার চেক উৎস মোতায়েন করার আগে রিং সুস্থ, তারপর পরীক্ষা করে লক্ষ্য কনফিগারযোগ্য পুনঃপ্রচারের সাথে স্থাপন করার পরে। যদি লক্ষ্য অস্বাস্থ্যকর থাকে, Ring Promoter রোলস ব্যাক পূর্ববর্তী সংস্করণের লক্ষ্য এবং ইতিহাসে ব্যর্থতার রেকর্ড।
সংস্করণ-যাচাই করা স্বাস্থ্য একটি সাধারণ সজীবতা URL একটি গুণমান গেটে পরিণত করে:
health_version_field— স্বাস্থ্য সংস্থায় JSON ক্ষেত্র (যেমনversionবাbuild.version).health_version_header— হেডার যেমনX-App-Version.
চেক রিপোর্ট করার জন্য শেষ পয়েন্ট প্রয়োজন সঠিক সংস্করণ সবেমাত্র স্থাপন করা হয়েছে. এটি AI স্ট্যাকের জন্য গুরুত্বপূর্ণ: একটি পুরানো অনুমান সাইডকার বা এজেন্ট বাইনারি এখনও উত্তর দিতে পারে 200 OK যখন নতুন ইমেজ প্রস্তুত হয়নি. সংস্করণের অমিল গেটটি ব্যর্থ করে এবং রোলব্যাককে ট্রিগার করে।
চালু ref-pinned রিং (ref: release), প্রত্যাশিত সংস্করণ সামনে পরিচিত নাও হতে পারে — একটি সুস্থ স্থাপনের পরে নিয়ন্ত্রণ সমতল করতে পারেন রেকর্ড সংস্করণটি পূর্ব-পরিচিত ট্যাগের সাথে তুলনা করার পরিবর্তে শেষ পয়েন্ট রিপোর্ট করে।
5. acc → prod হিউম্যান গেট
রাখা auto_promote: false অন acc মানে সফল test → acc (বা আগের রিং থেকে চেইনড অটো) গ্রহণে থেমে যায়. উত্পাদনের জন্য একটি স্পষ্ট প্রচারের প্রয়োজন — UI ক্লিক, অনুমোদিত API কল, বা পরিবর্তন-টিকিট-ব্যাকড অটোমেশন যা এখনও ইচ্ছাকৃতভাবে প্রচার করে।
- উইন্ডোজ পরিবর্তন, কমপ্লায়েন্স সাইন-অফ, স্টেজিং এ স্টেকহোল্ডার ডেমো বা মাল্টি-অ্যাপ "রিলিজ ট্রেন" এর জন্য এটি ব্যবহার করুন।
- ভার্সন-ভেরিফাইড হেলথের সাথে পেয়ার করুন যাতে মানুষ অনুমোদন করে অধিকার বিল্ড, একটি বাসি সুস্থ শুঁটি না.
- নথি যিনি গেটের মালিক (এসআরই অন-কল, পণ্যের মালিক, রিলিজ ম্যানেজার) যাতে হপ দুর্ঘটনাজনিত সারিতে পরিণত না হয়।
6. গেট গল্পের অংশ হিসাবে রোলব্যাক
- পোস্ট-ডিপ্লয় স্বাস্থ্য/সংস্করণ ব্যর্থতা → এর স্বয়ংক্রিয় রোলব্যাক লক্ষ্য রিং
- অপারেটর-চালিত পুনরুদ্ধারের জন্য ম্যানুয়াল রোলব্যাক API/UI।
- ইতিহাস অডিটের জন্য বীজ / প্রচার / রোলব্যাক সাফল্য এবং ব্যর্থতা রেকর্ড করে।
- সংরক্ষিত স্টেট আপডেটগুলি একটি স্থাপন করার সাথে সাথেই, তাই পরবর্তী স্বাস্থ্য পরীক্ষা ব্যর্থ হলে ক্লাস্টার সত্য হারিয়ে যায় না।
রোলব্যাক ছাড়া গেট থিয়েটার হয়. Ring Promoter ব্যর্থ গেটগুলিকে কার্যযোগ্য হিসাবে বিবেচনা করে: খারাপ হপকে বিপরীত করুন, অডিট ট্রেইল রাখুন, আগের রিংগুলি অক্ষত রাখুন৷
7. API স্কেচ (CI / এজেন্ট)
# Seed int, then promote (auto-promote may chain further)
curl -s -H "Authorization: Bearer $TOKEN" -X POST \
-d '{"ring":"int","version":"1.4.2"}' \
$BASE/api/apps/web-frontend/seed
curl -s -H "Authorization: Bearer $TOKEN" -X POST \
-d '{"from_ring":"int"}' \
$BASE/api/apps/web-frontend/promote
# non-2xx = failed promotion (target auto-rolled back)
# Explicit human-gated hop into prod (after QA on acc)
curl -s -H "Authorization: Bearer $TOKEN" -X POST \
-d '{"from_ring":"acc"}' \
$BASE/api/apps/web-frontend/promote
CI তৈরি করে এবং পরীক্ষা করে; Ring Promoter যা CI উত্পাদিত করে তা সরিয়ে দেয়। একটি নন-2xx প্রচার মানে গেট ব্যর্থ হয়েছে — curl --fail পাইপলাইন একীকরণের জন্য যথেষ্ট। এজেন্ট এবং মুক্তি বট চিকিত্সা করা উচিত acc → prod তাদের নিজস্ব কর্মপ্রবাহে একটি সুস্পষ্ট অনুমোদনের পদক্ষেপ সহ একটি বিশেষ সুবিধাপ্রাপ্ত পদক্ষেপ হিসাবে।
8. এআই প্ল্যাটফর্ম দলগুলির জন্য প্রভাব৷
AI এস্টেটগুলি অনুমান পরিষেবা, এজেন্ট রানটাইম, MCP গেটওয়ে, RAG APIs, এবং বিভিন্ন ঘড়ি এবং স্থাপনার (kubectl বনাম GitHub অ্যাকশন বনাম k8sjob) ক্লাসিক পরিষেবাগুলি প্রচার করে। ভাগ করা রিং একটি প্রচার ভাষা দেয়; গেটস সেই ভাষাকে সৎ রাখে:
- সংস্করণ-যাচাই করা স্বাস্থ্য ক্যাচ "পুরানো এজেন্ট এখনও উত্তর দিচ্ছে।"
- স্বয়ংক্রিয়ভাবে প্রচার করুন প্রতিটি হপ বেবিসিটিং ছাড়াই ইভাল রিংগুলিকে সচল রাখে।
- পণ্যের আগে মানব গেট গ্রাহক-মুখী মডেল এবং সরঞ্জামগুলিকে নীরব ক্যাসকেড থেকে রক্ষা করে।
- মাল্টি-অ্যাপ প্রচার এখনও প্রতি-অ্যাপ স্বাস্থ্যকে সম্মান করে — একটি অস্বাস্থ্যকর পরিষেবা অন্যদের জন্য বাদ দেওয়া রিং আবিষ্কার করে না।
Workstation-এর অবস্থান: AI শিপিংকে প্রোডাকশন সার্ভিসের মতো বিবেচনা করুন — আগে পর্যবেক্ষণযোগ্যতা এবং প্রচারের শৃঙ্খলা (এছাড়াও দেখুন LLM প্রতিবন্ধকতা / OTEL), তারপর গতি।
9. সুবিধা, অসুবিধা, এবং প্রস্তাবিত নীতি
| পছন্দ | পেশাদার | কনস |
|---|---|---|
| অটো তাড়াতাড়ি রিং | থ্রুপুট, কম পরিশ্রম | দুর্বল স্বাস্থ্য চুক্তি প্রচার করে |
| পণ্যের আগে মানুষ | সম্মতি, নিয়ন্ত্রণ পরিবর্তন | স্পষ্ট মালিক/এসএলএ প্রয়োজন |
| সংস্করণ গেট | জাল-সবুজ স্থাপনা বন্ধ করে | ইনস্ট্রুমেন্টেড হেলথ এন্ডপয়েন্ট প্রয়োজন |
প্রস্তাবিত ডিফল্ট: auto_promote চালু int এবং test; মানুষের গেট অন acc; প্রতিটি গ্রাহক-মুখী অ্যাপে সংস্করণ-যাচাই করা স্বাস্থ্য; রিং এড়িয়ে যাবেন না; গেট ব্যর্থ হলে স্বয়ংক্রিয় রোলব্যাকের উপর নির্ভর করুন।
10. শুরু করা
- ঘড়ি youtu.be/Vs2Em0HPvoY.
- ভিজিট করুন ringpromoter.com এবং ক্লোন github.com/bwalia/ring-promoter.
- পড়ুন ব্যবসা ব্লগ এবং Workstation পণ্য পৃষ্ঠা.
- প্রতি-রিং কনফিগার করুন
auto_promoteএবং স্বাস্থ্য সংস্করণ ক্ষেত্র; পণ্য মানব-দ্বার রাখা. - Workstation এর মাধ্যমে কথা বলুন যোগাযোগ এআই প্ল্যাটফর্মের জন্য সিআই/সিডি সম্পর্কে।
দ্বারা প্রকাশিত Workstation. আপস্ট্রিম ডক্স: Ring Promoter সংগ্রহস্থলে README এবং ডিজাইন নোট।
পণ্য সাইট: https://www.ringpromoter.com/