سجل الحاويات هو مستودع بيانات (أو مجموعات من المستودعات) يُخزِّن صور الحاويات بعرض التخزين والوصول إليها. صور الحاويات هي ملفات ثابتة غير متغيرة تحتوي على تعليمات برمجية قابلة للتنفيذ وتعمل بمعزل عن البنية التحتية لتكنولوجيا المعلومات.
ومن أبرز مزايا سجلات الحاويات أنها تتكامل بسهولة مع أنظمة تنسيق الحاويات أو المنصات مثل Kubernetes وDocker.
أثناء تطوير التطبيقات المستندة إلى الحاويات، يمكن للفرق أيضًا استخدام سجلات الحاويات في قدرة عمليات التطوير، مما يسهِّل التكامل مع مهام سير عمل التكامل المستمر (CI) وسير عمل التسليم المستمر (CD) . كلا مهام سير العمل يُعدّ من الأنشطة الجوهرية في تطوير البرمجيات. تُبنى كلٌّ من التكامل المستمر (CI) والتسليم المستمر (CD) على الأتمتة وتُصمَّم لاستيعاب التغييرات المتكررة في التعليمات البرمجية. ويكمن الاختلاف الأساسي بينهما في أن التكامل المستمر يُعدّ التعليمات البرمجية للإصدار المستقبلي، في حين يركّز التسليم المستمر على عملية الإصدار الفعلي للتعليمات البرمجية. تدعم سجلات الحاويات كلتا المهام.
هناك نوعان من سجلات الحاويات:
سجل الحاويات هو مستودع بيانات يُخزّن صور الحاويات، ويتيح للمستخدمين رفعها إليه (فيما يُعرف بعملية الدفع) أو تنزيلها إلى أنظمة أخرى (فيما يُعرف بعملية السحب).
ويمكن استخدام سجل الحاويات بشكل مستقل أو ضمن منظومة متكاملة مع سجلات أخرى. وعند دمج عدة حاويات في وحدة تشغيلية واحدة لتقديم خدمات سحابية، فإن أدائها يحاكي النظام البنائي الذي يتعاون فيه مختلف المكونات لتحقيق نتيجة موحدة.
تستخدم سجلات الحاويات التخزين القائم على الكائنات object storage لتخزين البيانات الوصفية المتعلقة بصور الحاويات. ورغم أن هذه الطريقة تتيح نقل هذه البيانات بفعالية، إلا أن لها حدودًا بطبيعتها. على سبيل المثال، قد تُفرض قيود على عدد علامات الإدراج المتاحة عند التعامل مع بيانات تشمل عدة صور.
تُعد حاويات الاعتماديات طريقة أخرى للتخزين، وتُستخدم لإدارة وتسجيل وحل الاعتماديات في التطبيقات. في سياق البرمجة، تشير "الاعتماديات" إلى الحالات التي يجب فيها تنفيذ كائن أو عملية قبل أن يتمكن كائن آخر من العمل كما هو متوقع.
تُدار هذه الاعتماديات بواسطة حاويات الاعتماديات، وتُسهّل هذه الحاويات إجراء الاختبارات، وتُعزّز قابلية التوسع، وتُقلّل من الترابط المفرط بين الكائنات البرمجية، مما يُسهم في الحد من الأخطاء ومشكلات إدارة الإصدارات.
نظرًا للحاجة المستمرة والملحّة إلى الأمان الإلكتروني، فإن مصادقة الأفراد المسموح لهم بالوصول إلى السجلات أمر بالغ الأهمية. وتعتمد هذه المصادقة على مجموعة من الأذونات الخاصة بكل سجل حاويات، حيث تُحدد الأذونات من هم المخوّلون باستخدام موارد الحوسبة المرتبطة بهذا السجل.
تشكل بيئات تشغيل الحاويات عنصرًا أساسيًا، وهي البرمجيات التي تتيح تشغيل الحاويات داخل النظام المضيف. تستخدم بيئات التشغيل سلسلة من الخطوات لإنشاء الحاويات. تمر عملية إنشاء الحاويات بسلسلة من الخطوات تشمل بناء البيئة وتنشيطها استنادًا إلى صورة الحاوية التي تحتوي على التطبيق والاعتماديات.
وبعد إنشاء الحاويات، تواصل بيئة التشغيل دورها في إدارة دورة حياة الحاوية، ومراقبة جاهزيتها التشغيلية، وتحرير مواردها عند الانتهاء من استخدامها.
تدعم سجلات الحاويات أيضًا موازنة الأحمال. وفي موازنة الأحمال الأصلية للحاويات، يتم توجيه حركة البيانات مباشرة إلى الوجهات المستهدفة. وبالتالي، تعمل سجلات الحاويات جنبًا إلى جنب مع موزّعات الأحمال، ما يُلغي الحاجة إلى المرور عبر طبقة شبكة إضافية.
توفر سجلات الحاويات العديد من الفوائد، منها:
تُسهم سجلات الحاويات في تعزيز الوضوح التشغيلي من خلال توفير موقع مخصص لتخزين الصور على المدى الطويل. غالبًا ما يواجه مطورو البرمجيات والمتخصصون في الإنتاج صعوبة في التعامل مع الكم الكبير من الأصول البرمجية، وهنا يأتي دور سجلات الحاويات في تنظيم هذه الأصول ضمن موقع واحد.
تساعد سجلات الحاويات في الحد من تأخيرات الأداء الناتجة عن عدم وضوح مكان تخزين الصور، خاصة في الحالات الحرجة. وتوفر السجلات فهرسًا يُمكن الرجوع إليه في أي لحظة للتحقق من الصور ومواقعها.
وتوفّر السجلات مصدرًا موحّدًا للحقيقة لأي عنصر أو تطبيق، ما يضمن الشفافية في تكوين هذا العنصر أو التطبيق. يُسهم استخدام سجلات الحاويات في ضمان توفر أحدث الإصدارات الجاهزة للاستخدام أو النسخ، مما يعزز التحكم في الإصدارات.
كما تتسم سجلات الحاويات بميزات أمان مُعزَّزة لحماية الصور. وتعمل بروتوكولات الوصول على حماية هذه الصور من منظور أمني. كذلك، تتيح إمكانات فحص الثغرات الأمنية للمستخدمين إمكانية التعمّق داخل الصور لاكتشاف المشكلات المخفية.
تشمل أبرز الأنشطة التي تعتمد بشكل كبير على سجلات الحاويات ما يلي:
تطوير البرمجيات: يُعد هذا هو الاستخدام الأساسي الذي أُنشئت من أجله سجلات الحاويات—لتوفير مساحة عمل للمطورين من أجل تخزين الصور والوصول إليها ومشاركتها.
تُعد السجلات الخاصة للبُنى التحتية عنصرًا أساسيًا للمنظمات التي تطور التطبيقات داخليًا. فهي تمنح المستخدمين مستوى أعلى من التحكم في سلسلة توريد البرامج.
الخدمات المُصغَّرة: تدعم العديد من سجلات الحاويات مستخدمي الخدمات المصغرة عبر تسهيل تحديد مواقع الخدمات والاتصال بها ضمن عنقود الحاويات. وتوفّر هذه السجلات خدمات نظام أسماء النطاقات (DNS) التي تمنح الصور أسماء وعناوين IP افتراضية.
تُسهِم الطبيعة المعيارية وخفيفة الوزن لسجلات الحاويات في تسريع وتيرة إصدار التطبيقات. كما توفر قابلية النقل والاتساق، مما يعزز سهولة النشر عبر بيئات متعددة.
يجري تخصيص سجلات الحاويات لتلائم الأغراض العلمية المتقدمة، مثل دعم بيانات الجينوم وتمكين البحوث الوراثية. إذ يُسهل إعادة إنتاج نتائج البحوث في صيغ مختلفة، مما يتيح مشاركة التعليمات البرمجية والمكونات الأساسية بسهولة.
هناك مزوّدان رئيسيان يهيمنان على سوق تنظيم الحاويات ويقودان استخدام سجلات الحاويات:
Docker هو نظام لتنظيم الحاويات تم تطويره وتقديمه في عام 2013 لتبسيط عمليات إنشاء التطبيقات ونشرها وتشغيلها. حاز Docker مؤخرًا على شعبية واسعة بفضل اعتباره وسيلة سهلة لبناء حاويات خفيفة الوزن، قابلة للنقل، ومكتفية ذاتيًا، ويمكن تشغيلها على أي منصة، بغض النظر عن البنية التحتية. وقد ساعده هذا التصوّر كحل سهل الاستخدام على أن يصبح خيارًا مفضلًا لنشر التطبيقات المعتمدة على الذكاء الاصطناعي (AI) والتعلم الآلي (ML).
وبنفس القدر من الأهمية، توفر حاويات Docker قابلية نقل فائقة، حيث يمكن نقلها من جهاز إلى آخر، بغض النظر عن البنية التحتية. مرة أخرى، نرى فائدة بارزة هنا: فمع Docker، يمكن نشر تطبيقات الذكاء الاصطناعي والتعلم الآلي بسهولة نسبية في بيئات بديلة، مثل الأجهزة المحلية أو الأجهزة الطرفية أو الخوادم السحابية.
Kubernetes هو منصة مفتوحة المصدر لتنظيم الحاويات. تم إطلاقه أيضًا في عام 2013، وسُمي بهذا الاسم المشتق من كلمة يونانية تعني "الربّان"، ويُستخدم لأتمتة مجموعة من العمليات البرمجية مثل الإدارة والنشر والتوسيع.
ضمن خدمة Kubernetes، يتم ربط جهاز كمبيوتر أو أكثر — سواء كانت أجهزة افتراضية أو خوادم بدون نظام تشغيل — ضمن عنقود Kubernetes يمكن تشغيل أحمال الحاويات عليه بمختلف الأحجام والأنواع. وغالبًا ما يُستخدم Kubernetes بالتكامل مع Helm charts، وهي مجموعات من الملفات تُستخدم لوصف موارد عنقود Kubernetes، ثم يتم تجميع هذه الموارد كحل متكامل في صورة تطبيق.
يتيح Kubernetes استخدام تطبيقات تعلُّم آلي مبنية على الحاويات وتوسعتها بسهولة، ويدعم أدوات وأُطر عمل التعلم الآلي. كما يمكن استخدامه كمنصة لمعالجة أحمال تدريب الذكاء الاصطناعي.
Docker و Kubernetes متشابهان في كثير من النواحي. رغم وجود أوجه تشابه كثيرة بين Docker وKubernetes، إلا أن الفارق الجوهري يكمن في النطاق: حيث إن Docker هو بيئة تشغيل حاويات في جوهره، في حين Kubernetes هو منصة متكاملة لإدارة وتشغيل الحاويات المستمدة من عدة بيئات تشغيل. ولتوضيح الفرق، يكفي أن نعلم أن Kubernetes واسع النطاق لدرجة أن Docker يُعتبر واحدًا فقط من بين العديد من بيئات وقت التشغيل التي يدعمها.
سوق مزوّدي سجلات الحاويات يشهد تطورًا مستمرًا، حيث تظهر جهات جديدة وتختفي أخرى مع مرور الوقت. ومع ذلك، فإن المزوّدين المذكورين أدناه يتمتعون بسمعة راسخة في هذا السوق: