دیکھیں: پیداوار سے پہلے QA دروازے
ویڈیو: youtu.be/Vs2Em0HPvoY · پروڈکٹ: ringpromoter.com
Ring Promoter آرڈر شدہ انگوٹھیوں کے لیے Workstation کا پروموشن کنٹرول طیارہ ہے۔ int → test → acc → prod. یہ مضمون توجہ مرکوز کرتا ہے اس پائپ لائن میں QA اور معیار کے دروازے: وہ کہاں بیٹھتے ہیں، کس طرح آٹو پروموٹ انسانی دروازوں کے ساتھ تعامل کرتا ہے (خاص طور پر پروڈکشن سے پہلے)، صحت اور ورژن کی تصدیق فرسٹ کلاس گیٹس کے طور پر، رول بیک رویہ، اور AI پلیٹ فارم ٹیموں کے لیے مضمرات۔ پروڈکٹ: ringpromoter.com · ذریعہ: github.com/bwalia/ring-promoter. ساتھی بلاگ: کاروبار مختصر · جائزہ: جدید CI/CD مضمون · مصنوعات کا صفحہ: /ring-promoter.
- مسئلہ: ہر چیز کو پروڈ میں خودکار طور پر فروغ دینا YOLO ہے۔ ہر ہاپ کو ہاتھ سے گیٹ کرنا بہت سست ہے۔
- ماڈل: مشترکہ حلقے؛ ایک وقت میں ایک ہاپ؛ کبھی نہ چھوڑیں؛ صحت (+ اختیاری ورژن) ہر ہاپ پر۔
- پالیسی: اختیاری
auto_promoteابتدائی ہاپس کے لئے فی انگوٹی؛ انسانی دروازے پر رکھیںacc → prod. - ناکامی: غیر صحت بخش ہدف یا ورژن کی مماثلت → خودکار رول بیک + ہسٹری۔
- ٹیگ لائن: پیداوار میں خودکار طور پر ترقی نہ کریں - QA گیٹس کے ذریعے پیداوار کمائیں۔
1. پروموشن کا عمل (ریپ)
ایپلی کیشنز فی رنگ تعیناتی اہداف کا اعلان کرتی ہیں (نام کی جگہ، تعیناتی، تصویری ریپو، ہیلتھ یو آر ایل، تعینات کنندہ)۔ انگوٹھیاں خود شیئر کی جاتی ہیں اور آرڈر کی جاتی ہیں۔ آپریٹرز، 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 |
صحت + ورژن؛ اکثر auto_promote | بیج کے بعد تیز رائے |
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. اے سی سی → پروڈ ہیومن گیٹ
رکھنا 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 پلیٹ فارم ٹیموں کے لیے مضمرات
AI اسٹیٹس مختلف گھڑیوں اور تعیناتیوں (kubectl بمقابلہ GitHub ایکشنز بمقابلہ k8sjob) پر انفرنس سروسز، ایجنٹ رن ٹائمز، MCP گیٹ ویز، RAG APIs، اور کلاسک سروسز کو فروغ دیتے ہیں۔ مشترکہ حلقے ایک فروغ کی زبان دیتے ہیں۔ دروازے اس زبان کو ایماندار رکھتے ہیں:
- ورژن سے تصدیق شدہ صحت پکڑتا ہے "پرانا ایجنٹ اب بھی جواب دے رہا ہے۔"
- خودکار فروغ ایول کی انگوٹھیوں کو ہر ہاپ کو بے بی سیٹنگ کیے بغیر حرکت میں رکھتا ہے۔
- پیداوار سے پہلے انسانی گیٹ کسٹمر کا سامنا کرنے والے ماڈلز اور ٹولز کو خاموش جھرن سے بچاتا ہے۔
- ملٹی ایپ کو فروغ دیں۔ اب بھی فی ایپ ہیلتھ کا احترام کرتا ہے - ایک غیر صحت بخش سروس دوسروں کے لیے چھوڑی ہوئی انگوٹھی ایجاد نہیں کرتی ہے۔
Workstation کا موقف: AI شپنگ کو پروڈکشن سروسز کی طرح برتاؤ - مشاہدہ اور فروغ کا نظم پہلے (یہ بھی دیکھیں LLM رکاوٹیں / OTEL)، پھر رفتار.
9. فوائد، نقصانات، اور تجویز کردہ پالیسی
| انتخاب | پیشہ | Cons |
|---|---|---|
| آٹو ابتدائی بجتی ہے۔ | تھوتھ پٹ، کم محنت | کمزور صحت کے معاہدوں کی تشہیر کرتا ہے۔ |
| پیداوار سے پہلے انسان | تعمیل، کنٹرول کو تبدیل کریں | واضح مالک / SLA کی ضرورت ہے۔ |
| ورژن کے دروازے | جعلی سبز تعیناتی کو روکتا ہے۔ | انسٹرومینٹڈ ہیلتھ اینڈ پوائنٹس کی ضرورت ہے۔ |
تجویز کردہ ڈیفالٹ: auto_promote آن int اور test; انسانی دروازے پر acc; ہر گاہک کا سامنا کرنے والی ایپ پر ورژن کی تصدیق شدہ صحت؛ انگوٹھیوں کو کبھی نہ چھوڑیں؛ گیٹس ناکام ہونے پر آٹو رول بیک پر بھروسہ کریں۔
10. شروع کرنا
- دیکھو youtu.be/Vs2Em0HPvoY.
- وزٹ کریں۔ ringpromoter.com اور کلون github.com/bwalia/ring-promoter.
- پڑھیں کاروباری بلاگ اور Workstation مصنوعات کا صفحہ.
- فی انگوٹی ترتیب دیں۔
auto_promoteاور ہیلتھ ورژن فیلڈز؛ مصنوعات کو انسانی دروازے پر رکھیں۔ - Workstation کے ذریعے بات کریں۔ رابطہ AI پلیٹ فارمز کے لیے CI/CD کے بارے میں۔
کی طرف سے شائع Workstation. اپ اسٹریم دستاویزات: Ring Promoter ریپوزٹری میں README اور ڈیزائن نوٹس۔
پروڈکٹ سائٹ: https://www.ringpromoter.com/