14 من أدوات تنظيم الحاويات لـ DevOps

دعنا نتحدث عن بعض أدوات تنسيق الحاويات الشائعة المتوفرة في السوق.

ما هو تنظيم الحاويات؟

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

يصبح من الصعب للغاية إدارة دورة حياة الحاوية وإدارتها عندما تزداد الأرقام ديناميكيًا مع الطلب.

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

إنها عملية إدارة وتنظيم عدة حاويات وبنية خدمات مصغرة على نطاق واسع.

لحسن الحظ ، هناك العديد من أدوات تنظيم الحاويات المتوفرة في السوق.

دعنا نستكشفهم!

كوبرنيتيس

لقد خمنت ذلك ، أليس كذلك؟

كوبرنيتيس هو نظام أساسي مفتوح المصدر تم تصميمه في الأصل بواسطة Google ويتم صيانته الآن بواسطة Cloud Native Computing Foundation. يدعم Kubernetes كلاً من التكوين التعريفي والأتمتة. يمكن أن يساعد في أتمتة النشر والتوسع وإدارة عبء العمل والخدمات المعبأة في حاويات.

مصدر الصورة Kubernetes.io

تساعد Kubernetes API في إنشاء اتصال بين المستخدمين ومكونات المجموعة ومكونات الجهات الخارجية الخارجية. يعمل مستوى التحكم والعقد Kubernetes على مجموعة من العقد التي تشكل معًا المجموعة. يتكون عبء عمل التطبيق من حجرة واحدة أو أكثر تعمل على عقدة (عقدة) العامل. يدير مستوى التحكم البودات وعقد العمال.

تستخدم شركات مثل Babylon و Booking.com و AppDirect على نطاق واسع Kubernetes.

سمات

  • اكتشاف الخدمة وموازنة الحمل
  • تنسيق التخزين
  • عمليات الطرح والتراجع الآلي
  • التحجيم الأفقي
  • سرية وإدارة التكوين
  • الشفاء الذاتي
  • تنفيذ دفعة
  • مكدس مزدوج IPv4 / IPv6
  • التعبئة التلقائية بن

تريد أن تتعلم Kubernetes؟ تحقق من هذه الموارد التعليمية.

OpenShift

عروض Redhat OpenShift منصة الحاويات كخدمة (PaaS). يساعد في أتمتة التطبيقات على موارد آمنة وقابلة للتطوير في بيئات السحابة المختلطة. يوفر منصات على مستوى المؤسسات لإنشاء التطبيقات المعبأة في حاويات ونشرها وإدارتها.

مصدر الصورة: Openshift

إنه مبني على محرك Redhat Enterprise Linux و Kubernetes. يحتوي Openshift على وظائف مختلفة لإدارة المجموعات عبر UI و CLI. يوفر Redhat Openshift في نوعين مختلفين آخرين ،

  • Openshift Online – يتم تقديمه كبرنامج كخدمة (SaaS)
  • OpenShift Dedicated – يتم تقديمه كخدمات مُدارة

OpenShift Origin (Origin Community Distribution) هو مشروع مجتمعي مفتوح المصدر يستخدم في OpenShift Container Platform و OpenShift Online و OpenShift Dedicated.

البدوي

البدوي هو منظم عبء عمل بسيط ومرن وسهل الاستخدام لنشر وإدارة الحاويات والتطبيقات غير المعبأة في حاويات عبر موقع العمل والسحابة على نطاق واسع. يعمل Nomad كثنائي فردي مع بصمة موارد صغيرة (35 ميجابايت) وهو مدعوم على أنظمة macOS و Windows و Linux.

يستخدم المطورون البنية التحتية التعريفية كرمز (IaC) لنشر تطبيقاتهم وتحديد كيفية نشر التطبيق. Nomad يستعيد التطبيقات تلقائيًا من الفشل.

صورة Nomad

Nomad Orchestrate التطبيقات من أي نوع (وليس فقط الحاويات). يوفر دعمًا من الدرجة الأولى لـ Docker و Windows و Java و VMs والمزيد.

  25 من أفضل البدائل المجانية لبرنامج Adobe Premiere Pro

سمات

  • بسيط وموثوق
  • تحديث التطبيقات القديمة بدون إعادة كتابتها
  • الاتحاد السهل على نطاق واسع
  • قابلية التوسع المثبتة
  • متعدد السحابة بسهولة
  • عمليات التكامل الأصلية مع Terraform و Consul و Vault

عامل ميناء سرب

عامل ميناء سرب يستخدم نموذجًا تصريحيًا. يمكنك تحديد الحالة المطلوبة للخدمة ، وسيحافظ Docker على هذه الحالة. قام Docker Enterprise Edition بدمج Kubernetes مع Swarm. يوفر Docker الآن المرونة في اختيار محرك التزامن. يستخدم محرك Docker CLI لإنشاء سرب من محركات الرصيف حيث يمكن نشر خدمات التطبيقات.

صورة Docker

تُستخدم أوامر Docker للتفاعل مع المجموعة. تُعرف الأجهزة التي تنضم إلى الكتلة بالعقد ، ويتولى مدير Swarm أنشطة المجموعة.

يتكون Docker Swarm من مكونين رئيسيين:

  • تقوم عُقد المدير – المدير بتعيين المهام للعقد العاملة في السرب. يتم انتخاب القائد بناءً على خوارزمية إجماع الطوافة. يتولى القائد جميع قرارات إدارة السرب وتنسيق المهام للسرب.
  • عقدة العامل – تستقبل العقدة العاملة المهام من عقدة المدير وتنفذها.

سمات

  • تتكامل إدارة الكتلة مع Docker Engine
  • تصميم لامركزي
  • نموذج الخدمة التصريحي
  • تحجيم
  • مصالحة الدولة المنشودة
  • شبكات متعددة المضيف
  • اكتشاف الخدمة
  • توزيع الحمل
  • آمن بشكل افتراضي
  • المتداول التحديثات

Docker Compose

Docker Compose هو لتعريف وتشغيل التطبيقات متعددة الحاويات التي تعمل معًا. يصف Docker-compose مجموعات الخدمات المترابطة التي تشترك في تبعيات البرامج ويتم تنسيقها وتوسيع نطاقها معًا.

يمكنك استخدام ملف YAML (ملف عامل الإرساء) لتهيئة خدمات التطبيق الخاص بك. بعد ذلك ، باستخدام أمر docker-compose ، يمكنك إنشاء وبدء جميع الخدمات من التكوين الخاص بك.

يبدو docker-compose.yml كما يلي:

version: '3'
volumes:
  app_data:
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.8.0
    ports:
      - 9200:9200
      - 9300:9300
    volumes:
      - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12
      - ./docker-data-volumes/elasticsearch:/usr/share/elasticsearch/data

  kibana:
    depends_on:
      - elasticsearch
    image: docker.elastic.co/kibana/kibana:6.8.0
    ports:
      - 5601:5601
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml
  app:
    depends_on:
      - elasticsearch
    image: asadali08527/app:latest
    ports:
      - 8080:8080
    volumes:
      - app_data:/var/lib/app/

يمكنك استخدام Docker Compose لتضمين رمز التطبيق إلى عدة خدمات تعمل بشكل مستقل وتتواصل باستخدام شبكة داخلية. توفر الأداة CLI لإدارة دورة الحياة الكاملة لتطبيقاتك. ركز Docker Compose بشكل تقليدي على تطوير واختبار سير العمل ، لكنهم الآن يركزون على المزيد من الميزات الموجهة نحو الإنتاج.

قد يكون محرك Docker عبارة عن مثيل مستقل مزود بـ Docker Machine أو مجموعة Docker Swarm بأكملها.

سمات

  • بيئات معزولة متعددة على مضيف واحد
  • الاحتفاظ ببيانات الحجم عند إنشاء الحاويات
  • أعد إنشاء الحاويات التي تغيرت فقط
  • المتغيرات وتحريك التركيبة بين البيئات

ميني كيوب

Minikube يسمح للمستخدمين بتشغيل Kubernetes محليًا. باستخدام Minikube ، يمكنك اختبار التطبيقات محليًا داخل مجموعة Kubernetes أحادية العقدة على جهاز الكمبيوتر الشخصي الخاص بك. لقد دمجت Minikube دعمًا للوحة تحكم Kubernetes.

يقوم Minikube بتشغيل أحدث إصدار ثابت من Kubernetes ويدعم الميزات التالية.

  • توزيع الحمل
  • متعدد المجموعات
  • مجلدات ثابتة
  • NodePorts
  • ConfigMaps والأسرار
  • وقت تشغيل الحاوية: Docker و CRI-O والمحاوية
  • تمكين CNI (واجهة شبكة الحاويات)

ماراثون

ماراثون مخصص لـ Apache Mesos الذي لديه القدرة على تنظيم التطبيقات وكذلك الأطر.

Apache Mesos هو مدير مجموعة مفتوح المصدر. Mesos هو مشروع من Apache يتمتع بالقدرة على تشغيل أحمال العمل المعبأة في حاويات وغير المعبأة في حاويات. المكونات الرئيسية في مجموعة Mesos هي Mesos Agent Nodes و Mesos Master و ZooKeeper و Frameworks – تنسق الأطر مع الرئيس لجدولة المهام على عقد الوكيل. يتفاعل المستخدمون مع إطار عمل Marathon لجدولة الوظائف.

  كيف يعمل مسح بصمات الأصابع في الشاشة؟

يستخدم برنامج جدولة Marathon ZooKeeper لتحديد موقع المعلم الحالي لإرسال المهام. جدولة الماراثون وسيد Mesos لديهما تشغيل رئيسي ثانوي لضمان التوافر العالي. يتفاعل العملاء مع Marathon باستخدام REST API.

سمات

  • توافر عالية
  • تطبيقات الدولة
  • واجهة مستخدم جميلة وقوية
  • القيود
  • اكتشاف الخدمة وموازنة الحمل
  • فحوصات طبية
  • اشتراك الحدث
  • المقاييس
  • واجهة برمجة تطبيقات REST

سحابة

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

يمكن دمجها بسهولة مع مديري الحاويات المستندة إلى Docker و Docker ، بما في ذلك ما يلي.

  • عامل ميناء
  • عامل ميناء سرب
  • Docker Compose
  • كوبرنيتيس
  • أباتشي ميسوس

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

صاحب المزرعه

صاحب المزرعه هي عبارة عن منصة مفتوحة المصدر تستخدم تنسيق الحاويات المعروف باسم الماشية. يتيح لك الاستفادة من خدمات التنسيق مثل Kubernetes و Swarm و Mesos. يوفر Rancher البرنامج المطلوب لإدارة الحاويات بحيث لا تحتاج المؤسسات إلى إنشاء منصات خدمات الحاويات من البداية باستخدام مجموعة متميزة من التقنيات مفتوحة المصدر.

يسمح Rancher 2.x بإدارة مجموعات Kubernetes التي تعمل على موفري الخدمة المحددين من قِبل العميل.

الشروع في العمل مع Rancher عبارة عن عملية من خطوتين.

قم بإعداد مضيف Linux

قم بإعداد مضيف Linux مع 64 بت Ubuntu 16.04 أو 18.04 (أو توزيعة Linux أخرى مدعومة ، وذاكرة 4 جيجابايت على الأقل. قم بتثبيت إصدار مدعوم من Docker على المضيف.

ابدأ الخادم

لتثبيت Rancher وتشغيله ، قم بتنفيذ أمر Docker التالي على مضيفك:

$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher

تسمح واجهة المستخدم الخاصة بـ Rancher بإدارة الآلاف من مجموعات وعقد Kubernetes.

سفينة شحن

الحاوية مخصصة لتمكين نشر وإدارة البنية التحتية Kubernetes متعددة السحابة. من المرن العمل في البيئات السحابية العامة والخاصة والمحلية من أداة واحدة. إنه يمكّن من توفير وإدارة ومراقبة مجموعات Kubernetes الخاصة بك عبر جميع موفري السحابة الرئيسيين.

تم إنشاء الحاويات باستخدام أدوات سحابية أصلية ، مثل Terraform للتزويد ، وبروميثيوس للمراقبة ، وكاليكو للشبكات وإدارة السياسات. إنه مبني على قمة الفانيليا Kubernetes. توفر منصة Containership لوحة تحكم سهلة الاستخدام ، بالإضافة إلى واجهة برمجة تطبيقات REST القوية للأتمتة المعقدة.

سمات

  • لوحة القيادة متعددة الأوساط السحابية
  • سجلات التدقيق
  • دعم مثيل GPU
  • ترقيات غير معطلة
  • الماجستير المجدولة
  • المقاييس المتكاملة
  • التسجيل في الوقت الحقيقي
  • عمليات النشر بدون توقف
  • دعم التخزين المستمر
  • دعم التسجيل الخاص
  • قياس حجم العمل التلقائي
  • إدارة مفاتيح SSH

AZK

AZK هي أداة تنسيق مفتوحة المصدر لبيئات التطوير من خلال ملف بيان (Azkfile.js) ، والذي يساعد المطورين على تثبيت وتكوين وتشغيل الأدوات شائعة الاستخدام لتطوير تطبيقات الويب باستخدام تقنيات مختلفة مفتوحة المصدر.

يستخدم AZK الحاويات بدلاً من الأجهزة الافتراضية. تشبه الحاويات الآلات الافتراضية ، مع أداء أفضل واستهلاك أقل للموارد المادية.

  اختبر جلسة الاستماع الخاصة بك مع هاتف iPhone وغرفة هادئة

يمكن إعادة استخدام ملفات Azkfile.js لإضافة مكونات جديدة أو إنشاء مكونات جديدة من البداية. يمكن مشاركتها ، مما يضمن التكافؤ التام بين بيئات التطوير في أجهزة المبرمجين المختلفة ويقلل من فرص حدوث أخطاء أثناء النشر.

حارس مرمى

حارس مرمى يوفر حلاً مُدارًا بالكامل لتنسيق تطبيقات الحاويات على Google Cloud Platform. يتم تشغيل مجموعات GKE بواسطة Kubernetes. يمكنك التفاعل مع المجموعات باستخدام Kubernetes CLI. يمكن استخدام أوامر Kubernetes لنشر التطبيقات وإدارتها ، وأداء مهام الإدارة ، وتعيين السياسات ، ومراقبة سلامة أحمال العمل الموزعة.

صورة بواسطة GCP

تتوفر أيضًا ميزات الإدارة المتقدمة لـ Google Cloud مع مجموعات GKE مثل موازنة حمل Google Cloud ، وتجمعات Node ، والتحكم التلقائي للعقد ، والترقيات التلقائية ، وإصلاح Node التلقائي ، والتسجيل ، والمراقبة باستخدام مجموعة عمليات Google Cloud.

يوفر Google Cloud أدوات CI / CD لمساعدتك في إنشاء حاويات التطبيق وتقديمها. يمكنك استخدام Cloud Build لإنشاء صور حاوية (مثل Docker) من مجموعة متنوعة من مستودعات كود المصدر ، و Container Registry لتخزين صور الحاوية الخاصة بك.

GKE هو حل جاهز للمؤسسات مع قوالب نشر مُنشأة مسبقًا.

هل أنت مهتم بتعلم GKE؟ ألق نظرة على هذا دورة للمبتدئين.

AKS

AKS هي خدمة Kubernetes مُدارة بالكامل تقدمها Azure ، والتي توفر Kubernetes وأمنًا وحوكمة بدون خوادم. تدير AKS مجموعة Kubernetes الخاصة بك وتتيح لك نشر التطبيقات المعبأة في حاويات بسهولة. تقوم AKS تلقائيًا بتهيئة كل Kubernetes الرئيسية والعُقد. ما عليك سوى إدارة وصيانة عقد الوكيل.

صورة Azure

AKS مجاني ؛ أنت تدفع فقط مقابل عقد الوكيل داخل مجموعتك وليس للماجستير. يمكنك إنشاء مجموعة AKS في مدخل Azure أو برمجيًا. يدعم Azure أيضًا ميزات إضافية مثل الشبكات المتقدمة وتكامل Azure Active Directory والمراقبة باستخدام Azure Monitor.

يدعم AKS أيضًا حاويات Windows Server. يمكن مراقبة أداء المجموعة والتطبيق المنشور من خلال Azure Monitor. يتم تخزين السجلات في مساحة عمل Azure Log Analytics.

تم اعتماد AKS كمطابقة Kubernetes.

AWS EKS

AWS EKS هي خدمة Kubernetes مُدارة بالكامل. تتيح لك AWS تشغيل مجموعة EKS الخاصة بك باستخدام AWS Fragrate ، وهي حوسبة بدون خادم للحاويات. يزيل العطر الحاجة إلى توفير وإدارة الخوادم ، مما يسمح بالدفع لكل مورد لكل تطبيق.

تسمح AWS باستخدام ميزات إضافية مع EKS مثل Amazon CloudWatch و Amazon Virtual Private Cloud (VPC) و AWS Identity ومجموعات القياس التلقائي وإدارة الوصول (IAM) والمراقبة والقياس وتطبيقات موازنة التحميل. تتكامل EKS مع شبكة تطبيقات AWS وتوفر تجربة Kubernetes الأصلية. تدير EKS أحدث إصدارات Kubernetes وهي متوافقة مع Kubernetes.

استنتاج

في النهاية ، آمل أن تكون القائمة أعلاه قد أعطت فهمًا عادلًا لأدوات تنظيم الحاويات المختلفة ، والآن اعتمادًا على حالة الاستخدام ، سيكون من الأسهل اختيار الأفضل.

بعد ذلك ، اكتشف برنامج إدارة Kubernetes.