البيئات
بيئات blue/green (preprod ⇄ prod)
شغّل نسخة preprod من تطبيقك، واختبرها بالمدة التي تريدها دون المساس بالإنتاج، ثم بدّل الدومين المباشر إليها فورًا، مع تراجع بنفس السرعة.
العودة إلى مساعدة المنصةكيف يعمل
- يتكوّن المشروع من بيئتين: prod (مباشر) وpreprod. كل منهما تطبيق عادي بنطاق فرعي اختباري خاص ca-*.cdn.com.tr.
- Promote ينقل دومين الإنتاج من prod إلى preprod خلال ثوانٍ دون انقطاع؛ وRollback يعيده بنفس السرعة.
- ضمن تبويب Platforms للحساب → Managed Container Apps، لوحة "بيئات Blue/Green" (أعلى تطبيقاتك مباشرة) تحتوي على Create preprod وPromote وRollback.
إنشاء واختبار preprod
- اضغط "Create preprod" على تطبيق prod: يستنسخ الصورة والـ env والأسرار والموارد وفحص الصحة إلى تطبيق preprod جديد.
- انشر تطبيق preprod واختبره على نطاقه الفرعي بالمدة التي تريدها؛ يبقى الإنتاج دون تغيير.
- عند الجاهزية اضغط Promote لجعل preprod مباشرًا؛ وإن حدث خطأ يعيدك Rollback إلى التطبيق السابق فورًا.
- إذا كان المستودع متصلًا مع النشر التلقائي، ففضِّل خط أنابيب النشر: كل دفعة تنشر Staging تلقائيًا ولا يتغيّر الإنتاج إلا عند الترقية (Promote) (راجع دليل "خط أنابيب النشر").
الحالة (قاعدة البيانات والملفات الثابتة) وقابلية التراجع
- shared: يستخدم preprod نفس قاعدة البيانات/Redis المُدارة ونفس buckets التخزين الكائني مثل prod (دون نسخ). مناسب لتغييرات الكود/الواجهة.
- clone: يحصل preprod على MySQL مُدارة خاصة به مع نسخة من بيانات prod، وهو آمن لتغييرات البيانات/المخطط.
- isolated: يبدأ preprod نظيفًا.
- يأخذ Promote أولًا لقطة تلقائية لقاعدة البيانات؛ ويستعيدها Rollback، لذا تغييرات البيانات قابلة للتراجع أيضًا. يمكن مشاركة الملفات الثابتة على وحدة تخزين دائمة (RWX) لإبقاء الرفعات متسقة.
أنشئ بيئة ما قبل الإنتاج واختبرها
- اختر وضع الحالة وانقر على Create preprod (تطبيق واحد، أو "from all apps" للحساب بأكمله). فهو يستنسخ صورة كل تطبيق وبيئته وأسراره وموارده وفحص سلامته في تطبيق preprod جديد.
- انشر تطبيق (تطبيقات) preprod واختبرها على نطاقاتها الفرعية ca-* الخاصة بها للمدة التي تحتاجها — يبقى الإنتاج نشطًا ودون أي تغيير طوال الوقت.
- عندما تصبح جاهزًا، انقر على Promote؛ وإذا بدا أي شيء خاطئًا بعد الانتقال إلى المباشر، انقر على Rollback فتعود حركة المرور إلى التطبيقات السابقة فورًا.
الحالة (قاعدة البيانات والملفات الثابتة) — ما تشاركه preprod مع الإنتاج
- المشترَك (الافتراضي): تستخدم preprod نفس قاعدة بيانات/Redis المُدارة وحاويات تخزين الكائنات مثل الإنتاج، عبر مراجع آمنة بين التطبيقات (دون نسخ). الأنسب لتغييرات الكود/الواجهة.
- الاستنساخ: تحصل preprod على قاعدة MySQL مُدارة خاصة بها مع نسخة من بيانات الإنتاج — آمن لاختبار تغييرات البيانات أو المخطط؛ وبيانات الإنتاج تبقى دون مساس. (نسخ بيانات Postgres غير مدعوم بعد — ستبدأ فارغة.)
- المعزول: تبدأ preprod نظيفة، بإضافاتها الجديدة الخاصة بها.
- يمكن مشاركة الملفات الثابتة على وحدة تخزين دائمة (CephFS RWX) لتبقى الملفات المرفوعة متسقة عبر البيئات.
القابلية للتراجع والقيود
- حركة المرور — مع ربط نطاقك الخاص: يربط Promote النطاق بالتطبيق الجديد أولًا، ثم يحرّر القديم (دون فجوة)؛ وRollback هو التبديل نفسه بالعكس — ثوانٍ، لا إعادة بناء.
- حركة المرور — الإنتاج على نطاقه الفرعي ca-*.cdn.com.tr فقط: يطرح Promote صورة Staging المُختبَرة على تطبيق الإنتاج بتحديث متدرّج دون فجوة (تظل الحاوية القديمة تخدم حتى تصبح الجديدة جاهزة). تبقى الروابط ثابتة؛ والإعدادات (البيئة/الأسرار) لا تنتقل مع الصورة عن قصد.
- البيانات: يأخذ Promote لقطة تلقائية لقاعدة البيانات أولًا، ويستعيدها Rollback، بحيث يمكن التراجع أيضًا عن تغييرات البيانات التي تمت بعد الانتقال إلى المباشر.
- النطاق: كل شيء يحدث داخل حساب واحد، لذا لا تتأثر ملكية DNS ولا شهادة الإنتاج أبدًا.
- غير متاح (بعد): الترقية بين الحسابات، ونسخ بيانات Postgres عند الاستنساخ، والترقية المعاملاتية الكاملة "الكل أو لا شيء" عبر تطبيقات متعددة (فهي بأفضل جهد لكل تطبيق، مع تقرير أخطاء لكل تطبيق).