مرحله بندی: ارسال و همگام سازی
TL ؛ دکتر متخصص
مرحله بندی یک محیط پیش تولید با حداکثر برابری تولید است، جایی که قراردادها، مهاجرت ها، پیکربندی ها، وب سایت ها و زنجیره های پرداخت بر روی داده های ناشناس و شبیه سازی ها بررسی می شوند. موفقیت توسط: غیر قابل تغییر استقرار (آبی/سبز)، داده برابری بدون PII، طرح رجیستری، ترافیک سایه، قناری طرح، پرچم ویژگی، دروازه روشن و بازگشت خودکار داده می شود.
1) نقش مرحله بندی و برابری با فروش
هدف: برای تأیید اینکه انتشار برای پول و بازیکنان امن است: طرح های پایگاه داده، چشمک می زند، پیکربندی، محدودیت ها، وب سایت ها، مسیریابی، مشاهده پذیری.
Parity: همان تصاویر، همان توپولوژی (ورود/دروازه، مش، صف، انبارها، موتورهای پایگاه داده، نسخه های هسته/راننده)، همان سیاست (auth/rate/circuit).
تفاوت ها: داده ها شخصی می شوند، تعامل با تامین کنندگان خارجی - از طریق sandbox/simulators، DNS/دامنه ها و اسرار - جداگانه.
2) توپولوژی و دسترسی
دامنه ها: "مرحله بندی. API. به عنوان مثال. کام، صحنه سازی. WS. به عنوان مثال. کام.
جداسازی: VPC/خوشه فردی، اسرار مستقل (KMS/Vault)، mTLS در داخل.
دسترسی: SSO + RBAC (نقش ها: «مدیر انتشار»، «qa»، «dev»، «نمای شریک»)، نشانه های موقت، ورودی های حسابرسی.
3) قطار آزاد
1. ساخت (برچسب، SBOM، امضاهای مصنوعی).
2. تست ها (واحد/ادغام/قرارداد، خطوط امنیتی).
3. بسته/اسکن (SAST/DAST، دروازه های ولن).
4. استقرار به مرحله بندی (تغییر ناپذیر، آبی/سبز و یا نورد با کنترل p95/p99).
5. مرحله بندی گیتس (см § 10).
6. Canary Prod (1 → 5 → 25 → 50٪).
7. بازگشت خودکار به نقض/خطاهای SLO.
4) هماهنگ سازی پیکربندی
GitOps: همه تنظیمات و سیاستمداران در Git ؛ نمودارهای منفرد/برای prod/staging with "values آشکار می شود. مرحله بندی «يامل».
کنترل Parity: «ویرایش دستی» در مرحله بندی ممنوع است. رانش توسط اتوماسیون تشخیص داده میشود (policy-diff, kube-diff).
اسرار: کلید های فردی و نشانه ها ؛ چرخش بدون در نظر گرفتن تشویق.
5) طرح: API/DB/رویدادها
رجیستری یکپارچه: OpenAPI، توصیفگرهای Protobuf، GraphQL SDL، رویدادها. فرهنگ لغت.
چک های شکست در CI: ممنوعیت تغییرات مخرب
مهاجرت DB: «تا» به مرحله قبل از ارتقاء ؛ امکان «پایین »/برگشت پذیر ؛ خشک اجرا با برآورد عکس فوری زمان.
سازگاری رویداد: «ورود دوگانه» (فرمت قدیمی + جدید) در طول انتقال.
6) داده ها و هماهنگ سازی
منبع: تخلیه منظم از prod → anonymization/tokenization/masking → import to staging.
PII/PAN/KYC اسناد: حذف/جایگزین با مصنوعی ؛ مبالغ و فرکانس - تحریف (سر و صدا) برای حفظ حریم خصوصی.
پنجره های همزمان: برنامه/کرون (به عنوان مثال، هر شب)، مدت زمان و نظارت بر خطا.
شناسه ها: حفظ تراکم و کاردینالیتی (برای واقع گرایی تست بار).
7) یکپارچگی خارجی (PSP/KYC/ارائه دهندگان)
حساب های Sandbox یا شبیه سازی با HMAC webhooks، retras، idempotency.
چنگال در پرچم: جعبه ماسه واقعی تامین کننده یا شبیه ساز ما (سوئیچ در پیکربندی).
Webhooks: امضا، پنجره زمان، DLQ/کنسول پخش در مرحله بندی فعال می شود.
ریل های پرداخت: پرداخت واقعی/auth در مرحله بندی در سطح کد (بلوک سخت) ممنوع است.
8) ترافیک سایه و تکرار
سایه: کپی یک زیر مجموعه از خواندن تولید به مرحله بندی (بدون عوارض جانبی)، مقایسه پاسخ/تاخیر.
ترافیک معکوس: ≥ 1-5٪ GET/وضعیت. جهش سایه مجاز نیست.
پخش مصنوعی: اجرای آثار تاریخی (ماسک) برای رگرسیون.
9) ویژگی های پرچم، یخ و سازگاری
پرچم ها رفتار را بدون جابجایی کنترل می کنند ؛ تنظیمات پرچم نسخه بندی می شوند.
انجماد آزاد برای دوره یک رویداد بزرگ/بار ؛ مرحله بندی در «آینه» prod ثابت شده است.
سازگاری عقب/جلو: ابتدا فرمت جدید را بخوانید، سپس بنویسید.
10) گیتس: آنچه ما قبل از ارتقاء بررسی
SLO: تاخیر p95/p99، میزان خطا، اشباع راهرو.
قرارداد: تفاوت API - شکستن без ؛ webhooks امضا شده، idempotency تقریبا.
مهاجرت DB: زمان در بودجه، بدون قفل در جداول «طولانی بازی»، تجزیه و تحلیل برنامه.
پرداخت/KYC: موارد مثبت/منفی گذشت، retray webhooks → 2xx <3 c p95.
نرخ/سهمیه: 429/Retry-After صحیح.
امنیت: آسیب پذیری های زیر آستانه ؛ اسرار/مجوزها معتبر هستند.
اسناد/SDK: OpenAPI/SDL/Proto منتشر شده در رجیستری ؛ پستمن/SDK به روز شد.
Runbooks: Playbooks و برنامه بازگشت تست شده است.
11) قابلیت مشاهده و هشدار
Метрики: RPS، P50/P95/P99، 4XX/5XX، مدارهای باز، LEN صف، ضربه کش، تحویل webhook.
ردپاها: همبستگی انتها به انتها 'trace _ id'; مقایسه با prod (تفاوت تاخیر).
سیاهههای مربوط: پوشش, نمونه برداری, «آرام» خطا (خوشه هشدار).
داشبورد قرار دادن: جداگانه، اما یکسان در ساختار ؛ میله های SLO سبز/قرمز.
12) استقرار استراتژی
آبی/سبز در مرحله بندی (ترجیح داده شده): سوئیچ سریع، بازگشت آسان.
نورد با دسته های کوچک و چک های بهداشتی.
Canary inside staging: درصد ترافیک بین «staging-a» و «staging-b» برای پروفایل A/B.
Migration DB: zero-downtime patterns (expand → migrate → contract), «double write», block search.
13) ایمنی و انطباق
mTLS، WAF، پروفایل DDoS فعال هستند.
RBAC/ABAC در نقاط پایانی مدیریت ؛ غیر فعال کردن انتگرال به پانل های داخلی.
شرایط سیاهههای مربوط کوتاه تر از تحریک هستند; گزارش های حسابرسی آزاد ذخیره می شود.
چک کردن کلید/serts: JWKS/serts فردی، چرخش برای مرحله بندی آزمایش می شود.
14) کتاب های حادثه (مرحله بندی)
شکست SLO پس از مهاجرت: بازگشت به «سبز»، عقب نشینی طرح (در صورت امکان)، امکان تخریب (قطع مصالح «گران»).
چلپ چلوپ 5xx: مدار شکن باز به بالادست شکننده، افزایش به BFF، فعال کردن حافظه پنهان.
نشت PII در مرحله بندی: تمیز کردن فوری تخلیه، لغو اسرار، دسترسی حسابرسی، رفع سیاست پوشش.
ممنوعیت webhooks: انتقال موقت به مرده نامه، پخش دستی پس از تعمیر.
15) چک لیست
15. 1 ارتقاء در هر محصول
- تمام دروازه ها (§ 10) گذشت ؛ گزارش پیوست شده
- طرح قناری و معیارهای پا تعریف شده است.
- پرچم های ویژگی آماده می شوند (روشن/خاموش/درجه بندی).
- مستندات/SDK/پورتال به روز شد.
- ذینفعان اطلاع دادند، پنجره های پشتیبانی موافقت کردند.
15. 2 برگشت
- آبی/سبز: ترافیک به شکاف قبلی، پیکربندی ها به عقب رانده شده است.
- طرح ها قابل برگشت هستند یا پرچم به حالت امن تنزل می یابد.
- الگوی پس از مرگ و جمع آوری مصنوعات.
16) قطعه های کوچک
ارتقاء GitOps (شبه)
yaml stages:
- deploy-staging
- verify-gates
- promote-prod deploy-staging:
script: kubectl apply -f k8s/overlays/staging verify-gates:
script:./scripts/check_slo. sh &&./scripts/check_contracts. sh promote-prod:
when: on_success script: kubectl apply -f k8s/overlays/prod
گسترش → مهاجرت → قرارداد (DDL)
sql
-- expand
ALTER TABLE payouts ADD COLUMN note TEXT NULL;
-- migrate (background job copies data)
-- contract
ALTER TABLE payouts DROP COLUMN comment;
هدر سایه
X-Shadow-Trace: 1
توانایی جهش در هر مرحله بندی
pseudo if store. has(idempotency_key) return store. get(idempotency_key)
res = do()
store. set(idempotency_key,res,ttl=72h)
return res
17) ضد گلوله
مرحله بندی «تقریباً شبیه تولید» است، اما با محدودیت ها/فیلترهای مختلف → نتایج مثبت کاذب.
PAN های واقعی/اسکله در مرحله بندی.
ویرایشهای پیکربندی «داغ» دستی.
مهاجرت بدون زمان و بدون قفل
بدون ترافیک سایه/تکرار - اشکالات فقط در prod ظاهر می شوند.
ارتقاء بدون برنامه برگشت
18) SLO برای مرحله بندی (نشانه ها)
زمان آماده به کار: ≥ 99. 5٪ (ویترین ادغام نباید سقوط کند).
افزودنی تاخیر به مواد غذایی: ≤ + 10-20٪.
وب سایت p95: ≤ 3 c تا 2xx با بازپرداخت.
بودجه خطا: دروازه 5xx ≤ 0. 1٪ در هر پنجره انتشار.
سهم چک های سایه: ≥ 1٪ از خواندن.
خلاصه
مرحله بندی «شن و ماسه» نیست، بلکه یک تمرین واقعی تولید است: همان پشته و سیاستمداران، داده های ناشناس، شبیه سازی راه آهن، سایه های ترافیک prod، دروازه های سخت و بازگشت فوری. همه چیز را در طرح های رجیستری GitOps++ قرار دهید، پرچم های ویژگی و یک برنامه قناری را نگه دارید، و نسخه های شما قابل پیش بینی خواهد شد و حوادث نادر و قابل کنترل خواهد بود.