ما هو سجل الحاويات؟

تاريخ النشر 31 يوليو 2024
رسم توضيحي ثلاثي الأبعاد لمصباح ينطلق مثل الصاروخ
By Phill Powell and Ian Smalley

سجلات الحاويات، المعرفة

سجل الحاويات مستودع بيانات (أو مجموعة من المستودعات) يخزن صور الحاويات لإتاحة تخزينها والوصول إليها. صور الحاويات ملفات ثابتة غير قابلة للتغيير، تحتوي على تعليمات برمجية قابلة للتنفيذ، وتعمل بمعزل عن غيرها على البنية التحتية لتقنية المعلومات.

ومن أبرز مزايا سجلات الحاويات أنها تتكامل بسهولة مع أنظمة تنسيق الحاويات أو المنصات مثل Kubernetes وDocker.

وأثناء تطوير التطبيقات المعتمدة على الحاويات، تستطيع الفرق استخدام سجلات الحاويات ضمن ممارسات DevOps، مما يتيح تكاملًا محسنًا مع مسارات التكامل المستمر ومسارات التسليم المستمر يمثل كل من مساري العمل هذين نشاطًا أساسيًا في تطوير البرمجيات. ويعتمد كل من التكامل المستمر (CI) والتسليم المستمر (CD) على الأتمتة، وصُمما لاستيعاب التغييرات المتكررة على التعليمات البرمجية. ويكمن الاختلاف الرئيسي بينهما في أن التكامل المستمر يهيئ التعليمات البرمجية للإصدار، بينما يركز والتسليم المستمر على إصدار التعليمات البرمجية فعليًا. وتدعم سجلات الحاويات كلا مساري العمل.

هناك نوعان من سجلات الحاويات:

  • السجلات العامة: توفّر وسائل لتحسين نقل البيانات وتتميز برقابة وصول مرنة، لكنها تفتقر إلى بروتوكولات الأمان المتقدمة.
  • المستودعات الخاصة: تُستخدم عادة في الحالات التي تتطلب تشغيلًا أكثر أمانًا وحماية أكثر صرامة لأحمال التشغيل.

كيف تعمل سجلات الحاويات؟

سجل الحاويات هو مستودع بيانات يُخزّن صور الحاويات، ويتيح للمستخدمين رفعها إليه (فيما يُعرف بعملية الدفع) أو تنزيلها إلى أنظمة أخرى (فيما يُعرف بعملية السحب).

ويمكن استخدام سجل الحاويات بشكل مستقل أو ضمن منظومة متكاملة مع سجلات أخرى. وعند دمج عدة حاويات في وحدة تشغيلية واحدة لتقديم خدمات سحابية، فإن أدائها يحاكي النظام البنائي الذي يتعاون فيه مختلف المكونات لتحقيق نتيجة موحدة.

تخزين الكائنات

تستخدم سجلات الحاويات تخزين الكائنات لتخزين بيانات التعريف الخاصة بصور الحاويات. ورغم أن ذلك يتيح وسيلة لنقل هذه البيانات الوصفية بنجاح، فإنه يظل محدودًا بطبيعته. فعلى سبيل المثال، عند التعامل مع بيانات قد تتضمن عدة صور، توجد حدود لعدد وسوم الإدراج المتاحة.

حاويات الاعتماديات

تُعد حاويات الاعتماديات طريقة أخرى للتخزين، وتُستخدم لإدارة وتسجيل وحل الاعتماديات في التطبيقات. في سياق البرمجة، تشير "الاعتماديات" إلى الحالات التي يجب فيها تنفيذ كائن أو عملية قبل أن يتمكن كائن آخر من العمل كما هو متوقع.

تُدار هذه الاعتماديات بواسطة حاويات الاعتماديات، وتُسهّل هذه الحاويات إجراء الاختبارات، وتُعزّز قابلية التوسع، وتُقلّل من الترابط المفرط بين الكائنات البرمجية، مما يُسهم في الحد من الأخطاء ومشكلات إدارة الإصدارات.

المصادقة

نظرًا للحاجة المستمرة والملحّة إلى الأمان الإلكتروني، فإن مصادقة الأفراد المسموح لهم بالوصول إلى السجلات أمر بالغ الأهمية. وتعتمد هذه المصادقة على مجموعة من الأذونات الخاصة بكل سجل حاويات، حيث تُحدد الأذونات من هم المخوّلون باستخدام موارد الحوسبة المرتبطة بهذا السجل.

بيئة تشغيل الحاويات

تشكل بيئات تشغيل الحاويات عنصرًا أساسيًا، وهي البرمجيات التي تتيح تشغيل الحاويات داخل النظام المضيف. تستخدم بيئات التشغيل سلسلة من الخطوات لإنشاء الحاويات. تمر عملية إنشاء الحاويات بسلسلة من الخطوات تشمل بناء البيئة وتنشيطها استنادًا إلى صورة الحاوية التي تحتوي على التطبيق والاعتماديات.

بعد إنشاء الحاويات، تواصل بيئة التشغيل إدارة دورات حياة الحاويات، ومراقبة حالتها التشغيلية، وتحرير مواردها عند انتفاء الحاجة إليها.

توزيع الأحمال

تدعم سجلات الحاويات أيضًا موازنة التحميل. في موازنة التحميل الأصلية للحاويات، يُوجَّه حمل موازن التحميل مباشرةً إلى الوجهات المخصصة لاستقبال هذه الحركة المرورية. بهذه الطريقة، تعمل سجلات الحاويات جنبًا إلى جنب مع موازنات التحميل، مما يلغي الحاجة إلى توجيه الحركة المرورية عبر مسار إضافي في الشبكة.

IBM DevOps

ما المقصود بعمليات التطوير؟

تشرح Andrea Crawford مفهوم عمليات التطوير، وقيمتها، وكيفية مساهمة الممارسات والأدوات الخاصة بها في المساعدة على نقل التطبيقات عبر مسار تسليم البرمجيات بأكمله؛ بدءًا من الفكرة ووصولًا إلى الإنتاج. يتولى أبرز قادة الفكر في IBM هذا المنهج، ويهدف إلى مساعدة قادة الأعمال على اكتساب المعرفة اللازمة لتحديد أولويات الاستثمارات في الذكاء الاصطناعي التي يمكنها تعزيز النمو.

فوائد سجلات الحاويات

توفر سجلات الحاويات العديد من الفوائد، منها:

الوضوح التشغيلي

تُسهم سجلات الحاويات في تعزيز الوضوح التشغيلي من خلال توفير موقع مخصص لتخزين الصور على المدى الطويل. غالبًا ما يواجه مطورو البرمجيات والمتخصصون في الإنتاج صعوبة في التعامل مع الكم الكبير من الأصول البرمجية، وهنا يأتي دور سجلات الحاويات في تنظيم هذه الأصول ضمن موقع واحد.

تحسين الأداء

تساعد سجلات الحاويات في الحد من تأخيرات الأداء الناتجة عن عدم وضوح مكان تخزين الصور، خاصة في الحالات الحرجة. وتوفر السجلات فهرسًا يُمكن الرجوع إليه في أي لحظة للتحقق من الصور ومواقعها.

مصدر واحد للحقيقة

وتوفّر السجلات مصدرًا موحّدًا للحقيقة لأي عنصر أو تطبيق، ما يضمن الشفافية في تكوين هذا العنصر أو التطبيق. يُسهم استخدام سجلات الحاويات في ضمان توفر أحدث الإصدارات الجاهزة للاستخدام أو النسخ، مما يعزز التحكم في الإصدارات.

الأمن المحسّن

كما تتسم سجلات الحاويات بميزات أمان مُعزَّزة لحماية الصور. وتعمل بروتوكولات الوصول على حماية هذه الصور من منظور أمني. كذلك، تتيح إمكانات فحص الثغرات الأمنية للمستخدمين إمكانية التعمّق داخل الصور لاكتشاف المشكلات المخفية.

حالة استخدام سجل الحاويات

تشمل أبرز الأنشطة التي تعتمد بشكل كبير على سجلات الحاويات ما يلي:

تطوير البرمجيات

يمثل تطوير البرمجيات: حالة الاستخدام الأساسية لسجلات الحاويات، وهو السبب الذي أدى إلى إنشائها في المقام الأول، إذ توفر لمطوري البرمجيات مساحة عمل لتخزين الصور والوصول إليها ومشاركتها.

تسليم برامج المؤسسات

تُستخدم سجلات الحاويات الخاصة عادةً بوصفها بنية تحتية أساسية للمؤسسات التي تطور تطبيقات البرمجيات وتوفرها داخليًا. توفر السجلات الخاصة للمستخدمين مستوى أعلى من التحكم في سلاسل توريد البرمجيات.

الخدمات المصغرة

الخدمات المُصغَّرة: تدعم العديد من سجلات الحاويات مستخدمي الخدمات المصغرة عبر تسهيل تحديد مواقع الخدمات والاتصال بها ضمن عنقود الحاويات. وتوفّر هذه السجلات خدمات نظام أسماء النطاقات (DNS) التي تمنح الصور أسماء وعناوين IP افتراضية.

نشر التطبيقات

تُسهِم الطبيعة المعيارية وخفيفة الوزن لسجلات الحاويات في تسريع وتيرة إصدار التطبيقات. كما توفر قابلية النقل والاتساق، مما يعزز سهولة النشر عبر بيئات متعددة.

البحث العلمي

يجري تخصيص سجلات الحاويات لتلائم الأغراض العلمية المتقدمة، مثل دعم بيانات الجينوم وتمكين البحوث الوراثية. إذ يُسهل إعادة إنتاج نتائج البحوث في صيغ مختلفة، مما يتيح مشاركة التعليمات البرمجية والمكونات الأساسية بسهولة.

Docker وKubernetes

هناك مزوّدان رئيسيان يهيمنان على سوق تنظيم الحاويات ويقودان استخدام سجلات الحاويات:

Docker

Docker هو نظام لتنظيم الحاويات طُوِّر وطُرح عام 2013 للمساعدة على تقليل تعقيد إنشاء التطبيقات ونشرها وتشغيلها. اكتسب Docker شعبية واسعة في الآونة الأخيرة لكونه وسيلة سهلة لإنشاء حاويات خفيفة الوزن، وقابلة للنقل، ومستقلة، يمكن تشغيلها على أي منصة بغض النظر عن البنية التحتية. وساعدت هذه السمعة المرتبطة بسهولة الاستخدام Docker على أن يصبح خيارًا مفضلًا لدى الجهات التي تنشر التطبيقات المخصصة للذكاء الاصطناعي (AI) والتعلم الآلي (ML).

وبالمثل، توفر حاويات Docker مستوى عاليًا من قابلية النقل، مما يتيح نقلها من جهاز إلى آخر بغض النظر عن بنيته التحتية. وتبرز هنا فائدة أخرى، إذ يسهّل Docker نشر تطبيقات الذكاء الاصطناعي (AI) والتعلم الآلي (ML) في بيئات مختلفة، مثل الأجهزة المحلية أو الأجهزة الطرفية أو الخوادم السحابية.

Kubernetes

Kubernetes هو منصة مفتوحة المصدر لتنظيم الحاويات. تم إطلاقه أيضًا في عام 2013، وسُمي بهذا الاسم المشتق من كلمة يونانية تعني "الربّان"، ويُستخدم لأتمتة مجموعة من العمليات البرمجية مثل الإدارة والنشر والتوسيع.

ضمن خدمة Kubernetes، يتم ربط جهاز كمبيوتر أو أكثر — سواء كانت أجهزة افتراضية أو خوادم بدون نظام تشغيل — ضمن عنقود Kubernetes يمكن تشغيل أحمال الحاويات عليه بمختلف الأحجام والأنواع. وغالبًا ما يُستخدم Kubernetes بالتكامل مع Helm charts، وهي مجموعات من الملفات تُستخدم لوصف موارد عنقود Kubernetes، ثم يتم تجميع هذه الموارد كحل متكامل في صورة تطبيق.

يتيح Kubernetes استخدام تطبيقات تعلُّم آلي مبنية على الحاويات وتوسعتها بسهولة، ويدعم أدوات وأُطر عمل التعلم الآلي. كما يمكن استخدامه كمنصة لمعالجة أحمال تدريب الذكاء الاصطناعي.

Docker و Kubernetes متشابهان في كثير من النواحي. رغم وجود أوجه تشابه كثيرة بين Docker وKubernetes، إلا أن الفارق الجوهري يكمن في النطاق: حيث إن Docker هو بيئة تشغيل حاويات في جوهره، في حين Kubernetes هو منصة متكاملة لإدارة وتشغيل الحاويات المستمدة من عدة بيئات تشغيل. ولتوضيح الفرق، يكفي أن نعلم أن Kubernetes واسع النطاق لدرجة أن Docker يُعتبر واحدًا فقط من بين العديد من بيئات وقت التشغيل التي يدعمها.

مزودون آخرون لسجلات الحاويات

سوق مزوّدي سجلات الحاويات يشهد تطورًا مستمرًا، حيث تظهر جهات جديدة وتختفي أخرى مع مرور الوقت. ومع ذلك، فإن المزوّدين المذكورين أدناه يتمتعون بسمعة راسخة في هذا السوق:

  • Alibaba: تتبنى مجموعة Alibaba شعار "تسهيل ممارسة الأعمال في أي مكان". تتيح خدمة سجل الحاويات في Alibaba Cloud نسخ الصور بين الكيانات التشغيلية التي تنتمي إلى الحساب ذاته. كما تم تصميم Alibaba Cloud Container Registry لإدارة الصور طوال دورة حياتها.
  • Amazon: تُدير Amazon Web Services (AWS) خدمة Amazon Elastic Container Registry (ECR)، والتي تدمج استخدام Amazon Inspector لإدارة فحص الثغرات في الصور. كما تتيح ECR نسخ الصور بين الحسابات والمناطق، ما يُسهّل الوصول إليها.
  • DockerHub: تدير Docker خدمة DockerHub، وهي مصدر واسع للصور الحاوية، وتوفر وصولًا مجانيًا إلى أكثر من 100,000 صورة يشاركها المستخدمون والمشاريع مفتوحة المصدر وشركات البرمجيات. يتوفر أيضًا إصدار مدفوع من خدمة سجل حاويات Docker للاستخدام الخاص. يعتمد DockerHub على واجهة سطر أوامر Docker (Docker CLI)، والتي تتيح تنفيذ العمليات الأساسية مثل تسجيل الدخول (login) ورفع الصور (push) وتحميلها (pull).
  • GitHub: أُطلق GitHub، المملوك الآن لشركة Microsoft، في عام 2007. حاز على دعم واسع من المطوّرين، الذين يقدّرون قدرته على تعزيز مشاركة التعليمات البرمجية والتعاون وإدارة التعليمات البرمجية. (ومن الجدير بالذكر أن البعض يعتبر GitHub برنامجًا مفتوح المصدر، لكنه في الحقيقة عبارة مملوك لشركة.)
  • GitLab: غالبًا ما يُخلط بينه وبين GitHub، وقد تأسس GitLab في عام 2014. يوفر سجل الحاويات في GitLab سجلًا خاصًا وآمنًا لصور الحاويات، ويمكن استخدامه لإنتاج الصور ونشرها. يعمل سجل حاويات GitLab بالتكامل مع البرمجيات مفتوحة المصدر. وتتميز النسخة الأحدث (التي لا تزال في المرحلة التجريبية Beta) بقدرات محسّنة على الفرز والتصفية.
  • Google: سجل الحاويات في Google Cloud، المعروف باسم Artifact Registry، مدمج مع أدوات بيئة التشغيل الخاصة بمنصة Google Cloud، ويدعم استخدام خطوط الأنابيب المؤتمتة (automated pipelines). وكانت Google هي المطوّر الأصلي لمشروع Kubernetes، الذي يتم الآن إدارته من قبل مساهمين ويخضع لإشراف مؤسسة الحوسبة السحابية الأصلية (Cloud Native Computing Foundation)، المالكة للعلامة التجارية. وقد أصبح مزودو الخدمات السحابية العامة اليوم يقدّمون نسخهم الخاصة من Kubernetes كخدمة مُدارة.
  • IBM: يتيح IBM Cloud Container Registry للمستخدمين بدء تشغيل سجل خاص بهم بسهولة ورفع الصور الخاصة لاستخدامها مع خدمة IBM Cloud Kubernetes. ويستفيد المستخدمون من خصوصية امتلاك سجل مُدار بالكامل. تُوفّر الخدمة تجربة مجانية أولية، مع نموذج تسعير قائم على "الدفع حسب الاستخدام"، بحيث يدفع المستخدمون فقط مقابل ما يستهلكونه.
  • Microsoft: تتضمن منصة Azure من Microsoft خدمة Azure Container Registry (ACR)، والتي تحتوي على صور Docker وصور مبادرة الحاويات المفتوحة (OCI)، وتدعم عناصر OCI ومخططات Helm. وتوفر خاصية "السجل المتصل" من ACR (ضمن فئة الخدمة المميزة) إمكانية إنشاء نسخة محلية أو عن بُعد من السجل تتم مزامنتها مع ACR القائم على السحابة. تدعم سجلات ACR الصور الخاصة بكل من أنظمة Windows وLinux. يُعد التفاعل مع البرامج من خلال كتابة أسطر نصية، تُعرف باسم سطر الأوامر — أحد طرق التفاعل مع الحاسوب. وعندما يستخدم نظام التشغيل هذه الطريقة، يُقال إنه يتضمن واجهة سطر أوامر (CLI). ورغم اعتماد معظم المستخدمين اليوم على واجهات المستخدم الرسومية (GUI)، فإن بعض المستخدمين ، وخاصةً من يفضّلون أتمتة البرامج من خلال كتابة برامج نصية، لا يزالون يفضلون استخدام واجهة سطر الأوامر (CLI).. يوفر Azure للمستخدمين المرونة في استخدام واجهة Docker CLI الشهيرة لتشغيل عمليات صور الحاويات الرئيسية مثل تسجيل الدخول والرفع والتنزيل.
  • Red Hat: تدعم Red Hat تطوير البرمجيات المعتمدة على نظام Linux منذ تأسيسها عام 1993. ويتيح سجل الحاويات OpenShift Container Platform (OCP) للمستخدمين الوصول تلقائيًا إلى مستودعات الصور عند الطلب، كما يوفر موقعًا موحدًا لدفع الصور الناتجة عن عمليات إنشاء التطبيقات.

المؤلفون

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

حلول ذات صلة
IBM® Instana® Observability

استفِد من إمكانات الذكاء الاصطناعي والأتمتة لحل المشكلات بشكل استباقي عبر مجموعة التطبيقات.

استكشف IBM Instana Observability
حلول عمليات التطوير

استخدم أدوات وبرمجيات عمليات التطوير لإنشاء تطبيقات السحابة الأصلية ونشرها وإدارتها عبر أجهزة وبيئات متعددة.

استكشف حلول عمليات التطوير
الخدمات الاستشارية ذات الصلة بالتقنيات السحابية

عزّز مرونة أعمالك ونموها من خلال التحديث المستمر لتطبيقاتك على أي منصة، وذلك باستخدام خدمات الاستشارات السحابية التي نقدمها. 

استكشِف الخدمات الاستشارية ذات الصلة بتقنيات السحابة
اتخِذ الخطوة التالية

من اكتشاف المشكلات بشكل استباقي مع IBM Instana إلى الحصول على رؤى في الوقت الفعلي عبر مجموعتك بأكملها، يمكنك الحفاظ على تشغيل التطبيقات السحابية الأصلية بشكل موثوق به.

  1. اكتشِف IBM Instana
  2. استكشف حلول عمليات التطوير