ما هي GitOps

تاريخ النشر 2 نوفمبر 2021
تاريخ التحديث 22 يونيو 2026
عرض ثلاثي الأبعاد لكرة ذات نمط تجريدي على خلفية زرقاء.
By Ashok Iyengar

تعريف GitOps

GitOps عبارة عن إحدى ممارسات DevOps والتي تستخدم Git كمصدر واحد للحقيقة حيث يتم تخزين حالة التكوين المطلوبة. 

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

الشكل 1. نظرة عامة على GitOps.
الشكل 1. نظرة عامة على GitOps.

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

سنكون مقصرين إذا لم نذكر Argo CD، وهي إحدى أدوات GitOps والتي تساعد في عمليات سير عمل GitOps. تعد Argo CD أداة تعريفية ذات مصدر مفتوح من أجل التكامل المستمر والنشر المستمر (CI/CD) للتطبيقات. تعمل Argo CD كوحدة تحكم في Kubernetes، حيث تراقب باستمرار تعريفات وتكوينات التطبيقات قيد التشغيل، وتقارن الحالة الحالية على المجموعة بالحالة المطلوبة المحددة في مستودع Git.

لكن GitOps ليس منتجًا واحدًا أو مكونًا إضافيًا أو منصة. تساعد مهام سير عمل GitOps الفِرَق على إدارة البنية التحتية لتكنولوجيا المعلومات من خلال العمليات التي يستخدمونها بالفعل في تطوير التطبيقات. للاقتباس من مدونة GitLab، يتطلب GitOps ثلاثة عناصر أساسية: GitOps = البنية التحتية ككود (IaC) + طلبات السحب أو الدمج (PRs أو MRs) + التكامل/النشر المستمر (CI/CD).

  • البنية التحتية كبرمجية (IaC): البنية التحتية كبرنامج (IaC) هي ممارسة الاحتفاظ بجميع تكوينات البنية التحتية مخزنة كأكواد برمجية. تستخدم GitOps مستودع Git كمصدر وحيد للحقيقة في تعريفات البنية التحتية. تتتبع Git جميع تغييرات إدارة الأكواد البرمجية.

  • PRs أو MRs: تستخدم GitOps طلبات السحب (PRs) أو طلبات الدمج (MRs) كآلية تغيير لجميع تحديثات البنية التحتية. ومن هنا، يتمكن الفرق من التعاون عبر التقييمات والتعليقات، وحيث تتم الموافقات الرسمية.

  • CI/CD: يعمل GitOps على أتمتة تحديثات البنية التحتية باستخدام سير عمل Git مع التكامل المستمر (CI) والنشر المستمر (CD). عند دمج التعليمات البرمجية الجديدة، يفعِّل مسار CI/CD التغيير في البيئة. أي انحراف في التكوين، مثل التغييرات اليدوية أو الأخطاء، يتم تجاوزه بواسطة أتمتة GitOps لتصبح البيئة متوافقة مع الحالة المطلوبة المحددة في Git، ما يوفر عمليات مستمرة (CO).

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

ما المشكلة التي تحاول GitOps حلها؟ حسنًا، إنها تعمل على أتمتة عمليات البرامج حتى تتمكن المؤسسات من تحسين هندسة البرمجيات. كما تتيح لفِرق التطبيقات إمكانية إصدار التطبيقات بشكل أكثر تكرارا وتشغيل تطبيقات السحابة الأصلية بشكل أكثر فعالية.

     
    الشكل 2. التكامل المستمر/التسليم المستمر/التشغيل المستمر
    الشكل 2. التكامل المستمر/التسليم المستمر/التشغيل المستمر

    GitOps في Red Hat OpenShift

    تعمل وحدات تشغيل Red Hat OpenShift على تبسيط التثبيت والتنسيق الآلي لأعباء العمل المعقدة. فهي تساعد على ترميز المنطق التشغيلي البشري لإدارة الخدمات التي تعمل كتطبيقات أصلية في Kubernetes، ما يسهِّل عمليات اليوم الثاني. تُعَد وحدة التشغيل جزءًا من برنامج يعمل في حجيرات على المجموعة، ويتفاعل مع خادم Kubernetes API. وحدة تشغيل OpenShift هي في الأساس وحدة تحكُّم مخصصة ويمكن أن تكون في الواقع وحدة تحكُّم خاصة بالتطبيق.

    IBM DevOps

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

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

    وحدة تشغيل GitOps

    يسهّل Red Hat OpenShift الأمر على المطورين الذين يريدون استخدام GitOps من خلال توفير وحدات التشغيل اللازمة. بمجرد نشرها، يمكن عرضها ضمن قسم Installed Operators في OpenShift Console. وحدة تشغيل Red Hat OpenShift GitOps هي وحدة التشغيل الأساسية لأداة ArgoCD، أما وحدة تشغيل مسارات Red Hat OpenShift، التي يتم نشرها أيضًا، فهي وحدة التشغيل الأساسية لـ Tekton. انظر الشكل 3:

    الشكل 3. وحدات التشغيل المرتبطة بإطار GitOps في Red Hat OpenShift.
    الشكل 3. وحدات التشغيل المرتبطة بإطار GitOps في Red Hat OpenShift.

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

    يتم تصنيف موارد النشر إلى ثلاثة مجالات: البنية التحتية والخدمات والتطبيقات. تسهِّل هذه المجالات فصل وإدارة نشر الموارد ذات الصلة:

    • البنية التحتية هي المكان الذي يتم فيه تحديد مساحات الأسماء ووحدات التخزين المطلوبة.
    • الخدمات هي المكان الذي يتم فيه وصف مختلَف وحدات التشغيل اللازمة لإعداد المثيلات.
    • التطبيقات هي المكان الذي يتم فيه تعداد التطبيقات التي سيتم ينشرها.

    GitOps في حوسبة الحافة

    السحابة/مركز البيانات

    تشهد حوسبة الحافة انتشارًا لمجموعات OpenShift أو Kubernetes في معظم مراكز تكنولوجيا المعلومات. ولديها القدرة على الوصول إلى نطاق هائل من المئات إلى الآلاف من عمليات النشر لكل عميل. والنتيجة هي أن أقسام تكنولوجيا المعلومات في المؤسسات يجب أن تُدير عدة مجموعات تشغيل حاويات مستقلة أو متعاونة تعمل في البيئات المحلية و/أو على السحب العامة.

    يُعَد ضمان أن تكون المجموعات في الحالة المطلوبة نفسها-سواء عند نشر تغيير أم التراجع عنه عبر سحابات متعددة- هو إحدى الفوائد الرئيسية التي يقدمها GitOps للشركات المعتمدة على حوسبة الحافة وإنترنت الأشياء.

    الحافة الشبكية

    يمكن تطبيق نموذج GitOps عند حافة الشبكة، إذ إن أحد التحديات الرئيسية التي تواجه مزودي خدمات الاتصالات (CSPs) هو البحث عن تنسيق شبكاتهم وأتمتتها وإدارتها. بينما تُعَد تقنية الجيل الخامس (5G) ميزة للمستهلكين، فقد أدَّى كلٌّ من الشبكات المعرَّفة بالبرمجيات (SDNs) وتقسيم الشبكة بعرض نطاق مختلف والنشر الأسرع إلى ظهور تحديات لمزوِّدي خدمات الاتصالات.

    يُعَد مسار النشر المؤتمت إحدى الطرق التي يمكن لمزوِّدي خدمات الاتصالات من خلالها تقديم الخدمات للعملاء بشكل أسرع. ووجود مستودع مركزي ونهج إعلاني لتوفير البنية التحتية للحاويات يعني وقتًا أسرع لتسويق الميزات الجديدة وطلبات التغيير. سيساعد مثل هذا النموذج على توفير وظائف الشبكة الافتراضية (VNFs) ووظائف الشبكة السحابية الأصلية (CNFs) على حافة الشبكة. يُتيح النقل بالحاويات لعناصر الشبكة إدارة مثل هذه الوظائف. أخيرًا، نظرًا لأن جميع أنشطة التكوين يتم تسجيلها وتخزينها في Git، فإن القدرة على تتبُّع التغييرات تُعَد أمرًا ضروريًا لأغراض الامتثال والتدقيق. هناك بعض المدونات ذات الصلة من WeaveWorks مذكورة في المراجع:

    الشكل 4. GitOps في حوسبة الحافة.
    الشكل 4. GitOps في حوسبة الحافة.

    الحافة المؤسسية

    يتيح GitOps للمؤسسات النشر إلى أهداف متعددة في وقت واحد. ويسمح بطرح عمليات النشر الدقيقة. سيكون هذا مفيدًا للغاية عند نشر التطبيقات على المئات أو عشرات الآلاف من عقد الحافة، والتي تأتي بأشكال ومواصفات مختلفة وتستخدم بروتوكولات اتصال متنوعة - خاصةً إذا كانت عقد الحافة عبارة عن مجموعات طرفية صغيرة تستخدم Intel NUC أو NVIDIA Jetson.

    يمكن أن يكون إطار عمل GitOps مفيدًا في نشر التطبيقات واستخدام مستودع Git كمصدر واحد للحقيقة. تبحث فرق ITOps عن النشر الإداري الذاتي للتطبيقات، وإدارة وتشغيل العُقد الطرفية، وهو ما يتم تسهيله باستخدام مشغلاتRed Hat OpenShift.

    حافة الجهاز (أو الحافة البعيدة)

    تتجلى فائدة GitOps بوضوح على الحافة الشبكية والحافة المؤسسية. تفرض الأجهزة الطرفية البعيدة تحدياً مختلفاً لأن السعة التخزينية والحوسبية لبعض هذه الأجهزة ليست كبيرة بما يكفي لاستضافة خدمات GitOps وتشغيل التطبيقات.

    تم إصدار توزيعات Kubernetes خفيفة الوزن، مثل K3s وK0s، لتلبية احتياجات حالات استخدام إنترنت الأشياء وحوسبة الحافة. تُتيح لنا القدرة على نشر توزيع Kubernetes خفيف الوزن على جهاز حافة تشغيل أداة GitOps مثل Argo CD. ستكون الأجهزة بعد ذلك قادرة على اعتماد نموذج السحب لاستطلاع مستودع Git للحالة المطلوبة ومزامنته مع الحالة المباشرة للمجموعة.

    مؤلف

    Ashok Iyengar

    Executive Cloud Architect

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

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

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

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

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

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

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

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

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