من صورة إلى رابط عام، دون تشغيل خوادم
إيصال حاوية واحدة إلى الإنترنت يعني عادةً تجهيز مضيف وتثبيت بيئة تشغيل حاويات وربط وكيل عكسي والحصول على شهادة وفتح منافذ جدار الحماية — عمل كثير غير متمايز من أجل واجهة API واحدة. تختصر تطبيقات الحاويات ذلك: تعطيها صورة ومنفذًا، فتعيد لك رابط name.cdn.com.tr حيًّا ومؤمَّنًا بـ HTTPS. لا مضيف لترقيعه، ولا nginx لإعداده، ولا cron لـ certbot لمراقبته، لأن الحافة وTLS جزء من المنصة.
فحوص السلامة وعمليات الطرح دون توقّف
عملية نشر تبدّل الحاويات لحظة بدء العملية ستُسقط الطلبات بينما لا يزال التطبيق يستعد. تستخدم المنصة مسار فحص السلامة لتقرر الجاهزية: عند نشر جديد تُشغّل الحاوية الجديدة، وتنتظر نجاح فحص السلامة، ثم تحوّل حركة المرور، وعندها فقط تُحيل القديمة للتقاعد. هذا يعني أن صورة معطوبة لا تصبح سليمة أبدًا لن تُسقط الخدمة — يستمر الإصدار السابق في الخدمة حتى يثبت الجديد جدارته.
البيئة والأسرار بالطريقة الصحيحة
تقرأ تطبيقات العوامل الاثني عشر إعداداتها من البيئة، والحاويات ليست استثناءً. تدخل الإعدادات العادية كمتغيرات بيئة؛ وأي شيء حساس — كلمات مرور قواعد البيانات ومفاتيح API لأطراف ثالثة وأسرار التوقيع — يدخل كسر يُخزَّن مشفّرًا ويُعرض باسم المفتاح فقط، لا بقيمته، بعد حفظه. عند ربط Object Storage أو قاعدة بيانات مُدارة، تُحقن بيانات اعتمادها بالطريقة نفسها، فلا ينتهي أي شيء حساس مطبوعًا داخل الصورة أو في سجل بناء.
توسّع وخطط موارد تلائم الحمل الفعلي
تختار خطة موارد (وحدة معالجة وذاكرة) لكل تطبيق وعدد نسخ متماثلة، فلا تُضطر أداة داخلية قليلة الحركة وواجهة API عامة إلى مشاركة البصمة نفسها. كما يمنحك تشغيل عدة نسخ متماثلة مرونة: إن كانت إحدى الحاويات تعيد التشغيل، تستمر الأخرى في الخدمة. ولأن عمليات الطرح محكومة بالسلامة، فإن التوسّع أو نشر إصدار جديد لا يخلق لحظة يتعذر فيها الوصول إلى التطبيق.
مسار الحافة وشهادات SSL التلقائية وWAF أمام واجهة API
يُوصَل إلى كل تطبيق حاوية متاح عبر حافة cdn.com.tr، فتنطبق الحماية نفسها التي تحصل عليها مواقعك على واجهات API لديك. توفّر شهادات SSL التلقائية الشهادة وتجدّدها، ويرشّح WAF حركة المرور الخبيثة والماسحات قبل بلوغها خدمتك، ويمكنك تخزين استجابات GET الآمنة مؤقتًا على الحافة لتخفيف حمل القراءة عن الحاوية. لا يخاطب الجمهور حاوية المصدر مباشرة أبدًا — فهي لا تتلقى إلا ما توجّهه الحافة.
اللوحة أو cdnctl، وتتكامل مع حزمتك
كل ما يمكنك فعله في اللوحة — النشر، وضبط البيئة والأسرار، والتوسّع، وقراءة السجلات، وإعادة التشغيل — متاح أيضًا عبر أداة سطر الأوامر cdnctl، فتلائم عمليات الحاويات النصوص البرمجية وأنظمة CI. تطبيقات الحاويات هي أيضًا الهدف للنشر الفوري عبر Docker Compose: يتحول ملف compose متعدد الخدمات إلى عدة تطبيقات حاويات إضافة إلى الإضافات المُدارة في تطبيق واحد، وهو أسرع طريقة لنقل حزمة قائمة بدلًا من إعادة إنشاء كل خدمة يدويًا.
كيفية النشر خطوة بخطوة
أنشئ تطبيق حاوية
افتح تطبيقات الحاويات (Container Apps) في اللوحة وأنشئ تطبيقًا من صورة جاهزة، مثل myorg/api:1.4 من Docker Hub أو من سجل خاص. اضبط منفذ الحاوية الذي تستمع عليه خدمتك لتعرف المنصة أين توجّه حركة المرور.
أضف بيانات اعتماد سجل خاص (عند الحاجة)
إن كانت الصورة خاصة، أضف اسم مستخدم ورمز وصول للسجل ضمن Container Apps ← بيانات اعتماد السجل مرة واحدة، لتتمكن المنصة من سحبها في كل عملية نشر. تتخطى الصور العامة هذه الخطوة تمامًا.
اضبط البيئة والأسرار وفحص السلامة
أضف الإعدادات العادية كمتغيرات بيئة، والقيم الحساسة — مفاتيح API وكلمات مرور قواعد البيانات والرموز — كأسرار تُخزَّن مشفّرة ولا تُعرض مجددًا أبدًا. عرّف مسار فحص سلامة (healthcheck) لتعرف المنصة متى تصبح الحاوية الجديدة جاهزة فعلًا للخدمة، لا مجرد أنها بدأت.
انشر وأتِح الوصول
انشر التطبيق، ثم أتِح منفذ الويب للحصول على رابط name.cdn.com.tr مجاني مع HTTPS تلقائي، أو اربط نطاقك الخاص. تتدفق حركة المرور الآن عبر حافة cdn.com.tr إلى حاويتك، مع إنهاء SSL على الحافة.
وسّع وراقب السجلات وأطلق التحديثات
اضبط النسخ المتماثلة وخطة الموارد للحمل المتوقع، وابثّ السجلات من اللوحة لتصحيح الأخطاء، وادفع وسم صورة جديدًا لإطلاق عملية طرح دون توقّف. تفضّل الطرفية؟ تنفّذ أداة cdnctl عمليات النشر والتوسّع والسجلات نفسها من سطر الأوامر.
أمثلة على السيناريوهات
تُنشر واجهة API بلغة Node أو Go من صورة، وتُتاح على نطاق مع شهادات SSL تلقائية، ويحميها WAF، مع تخزين استجابات GET الآمنة مؤقتًا على الحافة.
تعمل خدمة واحدة بخطة موارد وأسرار خاصة بها، موسّعة إلى بضع نسخ متماثلة لأجل المرونة، دون مشاركة مضيف مع بقية الحزمة.
يُقيم فريق منتج بيئة مؤقتة من وسم صورة على رابط name.cdn.com.tr، ثم يزيلها عند انتهاء المراجعة.
الأسئلة الشائعة
هل تبني تطبيقات الحاويات صورتي من ملف Dockerfile؟
لا — إنها تنشر صورًا جاهزة. أنت تبني الصورة وتدفعها إلى سجل (Docker Hub أو سجل خاص) وتعطي المنصة مرجع الصورة والمنفذ. إن أردت النشر بالدفع من المصدر، اقرنها بالنشر عبر GitHub الذي يتولى خطوة البناء، أو استخدم النشر الفوري عبر Docker Compose لحزمة متعددة الخدمات من صور جاهزة.
كيف يعمل النشر دون توقّف هنا فعليًا؟
عند نشر جديد تبدأ المنصة الحاوية الجديدة، وتنتظر أن يبلّغ مسار فحص السلامة عن الجاهزية، ثم تحوّل حركة المرور إليها وتُحيل الحاوية القديمة للتقاعد. إن لم تجتز الحاوية الجديدة فحص سلامتها أبدًا، تبقى حركة المرور على الإصدار السابق، فلا يُخرج بناء معطوب الخدمة عن العمل.
هل تظهر أسراري بعد حفظها؟
لا. تُخزَّن الأسرار مشفّرة وتُعرض باسم المفتاح فقط بعد الحفظ — لا تُعاد القيم في اللوحة أو السجلات أو المعاينات. يتيح لك ذلك تدوير سر من اللوحة دون تسربه إلى تسجيل شاشة أو جلسة دعم أو سجل بناء.
هل يمكن لحاويتي الوصول إلى قاعدة بيانات مُدارة أو Object Storage؟
نعم. تربط قاعدة بيانات مُدارة أو Redis أو bucket من Object Storage بالتطبيق، فتُحقن تفاصيل الاتصال ومفاتيح الوصول كمتغيرات بيئة أو أسرار. تقرؤها الحاوية من بيئتها، فلا حاجة أبدًا لتضمين بيانات الاعتماد داخل الصورة.
كيف أشغّل أكثر من نسخة، ولماذا قد أفعل ذلك؟
اضبط عدد النسخ المتماثلة للتطبيق. تمنحك النسخ المتعددة مرونة — إن كانت إحداها تعيد التشغيل أو غير سليمة، تستمر الأخرى في الخدمة — وتتيح للتطبيق التعامل مع حركة مرور متزامنة أكبر. مع عمليات الطرح المحكومة بالسلامة، لا يُدخل التوسّع نافذة يتعذر فيها الوصول إلى الخدمة.
هل يمكنني إدارة تطبيقات الحاويات من سطر الأوامر وCI؟
نعم. تنفّذ أداة cdnctl عمليات النشر والتوسّع والسجلات وإعادة التشغيل والإعداد نفسها التي في اللوحة، فيمكنك كتابة نصوص برمجية لعمليات الحاويات أو تشغيلها من خط أنابيب CI بدلًا من النقر عبر الواجهة. وهي أيضًا الطريقة التي تعاين بها وتطبّق استيراد Docker Compose من الطرفية.