GH GambleHub

انتشار پیشرفته و مرحله بندی

(بخش: معماری و پروتکل ها)

1) چرا تحویل مترقی

طرح کلاسیک «dev → test → staging → prod» ایمنی را تضمین نمی کند: هرچه به تولید نزدیکتر شوید، خطر ناسازگاری بیشتر می شود. انتشار پیشرفته شعاع انفجار را به حداقل می رساند، به تدریج افزایش سهم ترافیک/مخاطب و تقویت راه حل ها با معیارها و SLO. در رابطه با مرحله بندی، این باعث می شود: خرابی صفر، بازگشت سریع، تکرارپذیری فرآیند و کنترل کیفیت قابل اندازه گیری.

2) شرایط

مرحله بندی (محیط) - مراحل رسمی چرخه زندگی مصنوعات: "dev"، "ci"، "qa/test"، "staging/pre-prod"، prod "، و همچنین کوتاه مدت/پیش نمایش محیط تحت شاخه های ویژگی.
تحویل مترقی - گنجاندن مرحله به مرحله از نسخه/ویژگی: قناری, درصد گسترش, حلقه استقرار, phicheflags, تاریک راه اندازی, ترافیک سایه.
گیتس - معیارهای پذیرش خودکار (میزان خطا، p95، معیارهای کسب و کار، بودجه خطای SLO).
ارتقاء مصنوعات، ارتقاء همان ساختار امضا شده بین مراحل (مصنوعات تغییر ناپذیر) است.

3) نقشه محیط زیست و هدف آنها

3. 1 پایه

Dev (محلی/sandboxes): حلقه های سریع، وابستگی، حداقل امنیت.
CI (مخفف integration): تست واحد/ادغام/قرارداد، تجزیه و تحلیل استاتیک، SCA/SAST.
QA/Test: e2e، بار، رگرسیون. داده ها - مصنوعی یا ماسک.
مرحله بندی/پیش تولید: حداکثر «به عنوان یک محصول»: همان پیکربندی، پرچم ها، محدودیت ها، پردازش پس زمینه.
Prod: ترافیک مبارزه، SLO/SLI، هشدارها، برنامه های بازپرداخت.

3. 2 اضافی

Ephemeral/Preview per PR: ایجاد خودکار یک پایه در درخواست pull-request، تخریب خودکار در ادغام/بستن.
UAT/Sandbox برای تیم های تجاری: پذیرش، تظاهرات، سناریوهای آموزشی.
آزمایشگاه عملکرد: آزمایش بار جدا شده (ژنراتور ترافیک، کپی داده ها).

4) اصول مرحله بندی پایدار

پیکربندی به عنوان کد (IaC، GitOps)، رانش محیط توسط کد و اعتبار سنجی خودکار حذف می شود.
Idempotent، مصنوعات امضا شده (SBOM، منشأ، گواهینامه ها)، یک ساخت واحد → استقرار چند مرحله ای.
برابری با فروش: نسخه های زمان اجرا، محدودیت ها، سیاست های شبکه، شامل پرچم ها. تفاوت فقط در اسرار/داده ها است.
TDM (مدیریت داده های تست): مصنوعی/پوشش، مهاجرت و طرف به عنوان بخشی از خط لوله.
قابلیت مشاهده توسط طراحی: علائم انتشار، همبستگی سیاهههای مربوط/ردیابی، داشبورد یکنواخت در تمام مراحل.

5) مدل انتشار پیشرفته

5. 1 ابزار رویکرد

Ficheflags: فعال کردن/غیر فعال کردن قابلیت های بخش (کشور، مشتری، حساب، دانه تصادفی).
قناری: 1-5-10-25-50-100٪ ترافیک با دروازه در هر مرحله.

Ring-deploy: Internal کارمندان → بتا → عمومی

آبی سبز: تلنگر اتمی برای ارتقاء عمده پلت فرم.
Dark-launch: اجرای پنهان بدون تاثیر بر کاربر (جمع آوری معیارها).
ترافیک سایه (Shadow-traffic): منعکس کردن درخواستها به نسخه جدید بدون پاسخ دادن به کاربر.

5. 2 دروازه های اتوماتیک

معیارهای فنی: میزان خطا، p95/p99، اشباع، تاخیر صف.
معیارهای کسب و کار: مجوز، تبدیل به پرداخت، امتناع از مراحل قیف.
SLO/بودجه خطا: توقف سریع در سوزاندن بودجه خطا شتاب.
اهمیت آماری: حداقل زمان/حجم ترافیک در هر مرحله، به طوری که برای تصمیم گیری «در سر و صدا».

6) زنجیره CI/CD معمولی (مرجع)

1. Commit/PR → Build: تصویر/بسته واحد، امضا، SBOM.
2. CI- тесты: واحد/ادغام/قرارداد + امنیت (SAST/SCA/مخفی اسکن).
3. پیش نمایش زودگذر: بلند کردن خودکار پایه برای چک دستی/UX.
4. QA/Test: e2e + بار + آزمون هرج و مرج (اختیاری).
5. مرحله بندی: دود، رگرسیون مسیرهای کاربر بحرانی، چک کردن مهاجرت پایگاه داده.
6. Prod canary: 1-5٪ ترافیک → گیتس → 10-25-50-100٪.
7. بازگشت/تکمیل: در صورت مشکلات - بازگشت خودکار ؛ در صورت موفقیت، نسخه قدیمی را تا کنید.

7) مدیریت داده ها و طرح

Expand-migrate-contract: مهاجرت به عقب سازگار، انتقال پس زمینه، ایست بازرسی، idempointency.
نوشتن دوگانه با deduplication یا جعبه خروجی معامله.
پوشش/جایگزینی داده های تولید برای مرحله بندی (از نظر قانونی و فنی ایمن).
انبارها/جلسات: فروشگاه های خارجی، شروع گرم، سیاست ناتوانی هنگام تلنگر.

8) ایمنی و انطباق

اسرار: مدیر KMS/اسرار، چرخش، اصل حداقل امتیازات.
جداسازی مرحله بندی: شبکه ها/حساب ها/پروژه ها ؛ جلوگیری از هماهنگ سازی تصادفی با تولید.
ردیابی ممیزی/انتشار: چه کسی/چه/زمانی که رول، نسخه مصنوعی، تایید تغییر.
محموله های نرم افزاری: تأیید امضا، سیاست اعتماد رجیستری، آخرین ممنوعیت.

9) قابلیت مشاهده و عملکرد

فرمت تک برچسب: «{سرویس، نسخه، مرتکب، مرحله، منطقه، حلقه}».
مقایسه با baseline: canary vs stable version در برخی از نمودارها.
هشدارها در مورد SLO: مواد غذایی و فنی، آستانه های مختلف برای قناری.
نظارت پس از انتشار: حداقل N ساعت/روز برای اثرات تاخیر.

10) لغو و برنامه های اضطراری

دکمه برگشت/فرمان - بخشی از خط لوله (نه کرافت دستی).
ارتقاء معکوس پرچم سریعتر از کشتن سوئیچ است.
اقدامات متقابل داده: پردازش مجدد idempotent، جبران معاملات، deduplication.
playbooks حادثه: چه کسی تصمیم می گیرد، کانال های ارتباطی، قالب های پیام.

11) هزینه و عملکرد

محیط های زودگذر صرفه جویی در پول اگر به شدت خودکار حذف شده است.
Blue-Green در زمان انتشار چندین برابر گران تر است. canary ارزان تر است اما نیاز به معیارهای بالغ دارد.
خودکار با بارگذاری و انتشار پنجره ؛ سهمیه برای پیش بینی می ایستد.

12) ضد الگوهای مکرر

رانش از محیط: ویرایش کتابچه راهنمای کاربر بر روی غرفه، «این چیزی جزئی است».
یک ساخت در هر محیط: بازسازی در هر مرحله → اشکالات تولید «غیرقابل تولید».
تست بر روی داده های بی ربط: آزمون «سبز» در حال سقوط در تولید.
بدون دروازه: منتشر شده توسط احساس به جای SLO.
TTL های طولانی در DNS تحت آبی سبز ؛ بدون چسبندگی با ترافیک جزئی.
مخلوط کردن طرح های پایگاه داده ناسازگار با canary/stable.

13) چک لیست

قبل از ارتقاء در مرحله

  • تصویر امضا شده، SBOM جمع آوری شده، آسیب پذیری های سطح کرت بسته شده است.
  • مهاجرت پایگاه داده قابل گسترش است.
  • داده ها برای آزمایش ماسک/مصنوعی.
  • داشبورد/هشدار برای نسخه جدید آماده است.

قبل از وارد کردن پیشنهاد

  • طرح قناری با مراحل و آستانه تایید شده است.
  • Kill-switch و rollback plan برای مرحله بندی بررسی می شود.
  • سایه ترافیک و یا تاریک راه اندازی اجرا (در صورت امکان).
  • در تماس با اطلاع، زمان پنجره موافقت کرد.

پس از انتشار

  • نظارت SLO N ساعت پایدار است.
  • «قرارداد» پاکسازی/مهاجرت اعمال می شود.
  • به روز رسانی گذشته نگر و playbook.

14) گزینه های پیاده سازی توسط معماری

Monolith: پیش نمایش می ایستد + آبی سبز، و ویژگی های - از طریق پرچم ؛ canary محدود شده توسط URL/cookie

خدمات میکرو: قناری/حلقه طبیعی هستند ؛ مدیریت دقیق قرارداد (CDC)، نسخه API.
خدمات دولتی: آبی سبز با گرم کردن و یک برنامه مهاجرت روشن ؛ جداگانه صف/موضوعات در هر نسخه.

15) خط لوله مرجع c GitOps (طرح)

مخزن برنامه (کد) artifact را منتشر می کند → manifest را در مخزن env قرار می دهد.
عامل GitOps (Argo CD/Flux) همگام سازی 'env/dev'، 'env/qa'، 'env/staging'، 'env/prod' است.
ارتقاء - از طریق کشیدن درخواست به کاتالوگ مرحله مورد نظر ؛ ادغام ماشه هاي نورد و گيتس.

16) مدیریت ویژگی ها و مخاطبان

تقسیم بندی بر اساس: نوع مشتری، کشور، دستگاه، نسخه برنامه، دادگاه AB، زمان روز.
گسترش تدریجی: 1٪ داخلی → 5٪ بتا → 25٪ مشتریان اولیه → 100٪ همه.
آزمایش های A/B و چند متغیری برای فرضیه های محصول در همان مکانیزم پرچم.

17) سناریوهای عملی

سناریو 1 - ادغام پرداخت جدید

1. استند موقتی در هر PR، QA پسرفت. 2) ارائه دود + sandbox.
2. Prod canary 1% on heading «X-Cohort = internal» را انتخاب کنید. 4) گیتس: میزان خطای پرداخت، تماس تلفنی p95، سهم معاملات موفق.
3. 1→5→25→50→100%; در طول تخریب - کشتن سوئیچ.

سناریو 2: زمان اجرا را ارتقا دهید (JDK/Node/OS)

آبی سبز در سطح خوشه: سبز گرم می شود، مهاجرت «گسترش»، تلنگر، مشاهده، تلنگر در صورت مشکلات.

سناریو 3: ویژگی UI با خطر بالا

Dark-launch + phicheflag فقط برای کاربران بتا، مجموعه معیارهای UX، گسترش تدریجی مخاطبان.

18) حداقل جعبه ابزار

CI: ساخت، آزمایش، امضا، SBOM.
CD/GitOps: Argo CD/Flux/Spinnaker یا ابزارهای ابری بومی.
مسیریابی: ورود/سرویس مش (وزن، هدر/کوکی بر اساس).
Ficheflags: LaunchDarkly/Unleash/OpenFeature/سرویس خود نوشته شده است.
قابلیت مشاهده: معیارها، سیاهههای مربوط، ردیابی، هشدارها ؛ داشبورد تک در هر مرحله.
TDM: پوشش، سایدینگ، ژنراتورهای مصنوعی.
امنیت: اسرار، KMS، سیاست رجیستری، چک وابستگی.

19) خلاصه ای کوتاه

آزادی مترقی ترکیبی از گنجاندن مرحله به مرحله و نظم و انضباط مرحله بندی سخت است. موفقیت بر چهار ستون استوار است: مصنوعات تغییر ناپذیر، autogates SLO، طرح داده های برگشت پذیر و بازگشت سریع. محیط های پیش نمایش، GitOps و phicheflags را اضافه کنید - و انتشار شما قابل پیش بینی، امن و سریع است.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.