"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > GitOps: مغير قواعد اللعبة في تسليم البرامج وإدارة البنية التحتية

GitOps: مغير قواعد اللعبة في تسليم البرامج وإدارة البنية التحتية

تم النشر بتاريخ 2024-08-15
تصفح:925

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

ما هو الشائع حول GitOps؟

تخيل عالمًا يتم فيه تجميع نظامك بالكامل - بدءًا من التعليمات البرمجية وحتى البنية التحتية - بشكل أنيق في مستودع Git. يبدو أنيقًا، أليس كذلك؟ هذا هو GitOps باختصار. ولدت هذه الفكرة في عام 2017، وهي من بنات أفكار Weaveworks التي تعيد تعريف كيفية إدارة المؤسسات للبرامج وتقديمها.

GitOps: The Game-Changer in Software Delivery and Infrastructure Management

GitOps 101: الأساسيات

إذن، كيف يعمل GitOps؟ دعونا نقسمها:

  1. الكود والتكوين جاهزان: كل شيء يبدأ بالرمز وملفات التكوين الخاصة بك. هذه بمثابة مخططات لنظامك بأكمله.
  2. Git Push: التغييرات؟ فقط ادفعهم إلى Git. إنه متجرك الشامل لكل شيء.
  3. سحر التكامل المستمر: بمجرد تنفيذ التغييرات، تبدأ أدوات CI مثل GitHub Actions في العمل. يقومون بإنشاء تطبيقك، وإجراء الاختبارات، وحتى البحث عن مشكلات الأمان.
  4. صور الحاوية: هل تريد اجتياز جميع عمليات التحقق؟ عظيم! يتم تجميع التعليمات البرمجية الخاصة بك في صور حاوية أنيقة.
  5. سجل الصور: تجد هذه الصور مكانًا لها في السجل المركزي، وتكون جاهزة للعمل.
  6. النشر المستمر: أدوات مثل ArgoCD أو Flux تراقب عن كثب مستودع Git الخاص بك، مع التأكد من أن نظامك يتطابق دائمًا مع ما هو موجود في Git.

لماذا ستحب GitOps

  1. تعزيز الإنتاجية: العمل اليدوي الأقل يعني المزيد من الوقت للأشياء الرائعة.
  2. ثبات الصخور الصلبة: عفوًا، لحظات؟ لا شكر على واجب. التراجع هو نسيم.
  3. Fort Knox Security: يتم إجراء فحوصات الأمان مباشرة في العملية.
  4. مسارات التدقيق الواضحة للغاية: من فعل ماذا ومتى؟ كل هذا موجود في Git.
  5. التعافي السريع: هل تقع كارثة؟ الارتداد بشكل أسرع من أي وقت مضى.

GitOps في العالم الحقيقي

سواء كنت في مرحلة التطوير أو الاختبار أو الإنتاج، فإن GitOps تدعمك. فهو يضمن أن تكون البيئات الخاصة بك في وئام تام، مما يؤدي إلى الإصابة بالفواق في وقت مبكر. ولكن لا تأخذ كلامنا على محمل الجد فحسب، فلنلقِ نظرة على بعض قصص النجاح الواقعية:

  1. Weaveworks: رواد GitOps

من الأفضل أن نبدأ به من الشركة التي صاغت هذا المصطلح؟ تستخدم Weaveworks GitOps لإدارة البنية التحتية الخاصة بها:

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

مثال:

   # Sample Flux HelmRelease for a microservice
   apiVersion: helm.fluxcd.io/v1
   kind: HelmRelease
   metadata:
     name: my-app
     namespace: default
   spec:
     releaseName: my-app
     chart:
       repository: https://charts.mycompany.com
       name: my-app
       version: 1.2.3
     values:
       replicaCount: 3
       image:
         repository: myregistry.azurecr.io/my-app
         tag: v1.0.0

يقوم ملف YAML هذا في Git تلقائيًا بنشر وتحديث تطبيق "my-app" باستخدام Helm.

  1. Ticketmaster: التوسع باستخدام GitOps

Ticketmaster، التي تتعامل مع ملايين التذاكر للأحداث في جميع أنحاء العالم، اعتمدت GitOps لإدارة البنية التحتية واسعة النطاق لـ Kubernetes:

  • يستخدمون ArgoCD لإدارة أكثر من 200 مجموعة Kubernetes.
  • يتم تخزين كافة تكوينات التطبيق وتعريفات البنية التحتية في Git.
  • الفوائد: تحسين اتساق النشر وتقليل الوقت اللازم للتعافي من الحوادث.

مثال على بيان تطبيق ArgoCD:

   apiVersion: argoproj.io/v1alpha1
   kind: Application
   metadata:
     name: ticketing-service
     namespace: argocd
   spec:
     project: default
     source:
       repoURL: https://github.com/ticketmaster/ticketing-service.git
       targetRevision: HEAD
       path: k8s
     destination:
       server: https://kubernetes.default.svc
       namespace: production
     syncPolicy:
       automated:
         prune: true
         selfHeal: true
  1. فاينانشيال تايمز: GitOps للسحابة المتعددة

تستخدم صحيفة فاينانشيال تايمز GitOps لإدارة بنيتها التحتية عبر العديد من موفري الخدمات السحابية:

  • إنهم يستخدمون Flux لإدارة المجموعات على AWS، وGoogle Cloud، والمحليين.
  • تمر جميع تغييرات البنية التحتية عبر طلبات سحب Git، مما يضمن المراجعة الصحيحة ومسارات التدقيق.
  • النتيجة: عمليات نشر أسرع وأكثر موثوقية وإدارة أسهل للسحابة المتعددة.

GitOps المتقدمة: للعقول الفضولية

عندما تشعر بالراحة مع GitOps، قد ترغب في استكشاف:

  • نماذج السحب مقابل نماذج الدفع: اختر نكهتك بناءً على احتياجاتك.
  • كشف الانجراف: حافظ على نظامك تحت المراقبة دائمًا.
  • إدارة المجموعات المتعددة: التعامل مع مجموعات Kubernetes المتعددة مثل المحترفين.
  • إدارة الأسرار: احتفظ بمفاتيح API وبيانات الاعتماد هذه طي الكتمان.

الطريق أقل سلاسة

لنكن واقعيين، GitOps ليس مجرد ضوء الشمس وقوس قزح. قد تواجه:

  • المقاومة الثقافية: يمكن أن يكون التغيير صعبًا، خاصة بالنسبة لجمهور "لقد فعلنا ذلك دائمًا بهذه الطريقة".
  • مشاكل التكامل: هل تريد دمج GitOps مع الإعداد الحالي لديك؟ يستعد لبعض الألم الأولي.
  • تحديات التوسع: مع تقدمك في النمو، قد يصبح الحفاظ على مزامنة كل شيء أمرًا صعبًا.
  • مخاوف أمنية: هل تريد تخزين كل شيء في Git؟ تأكد من أنها آمنة على مستوى فورت نوكس.

مثال عملي: تنفيذ GitOps لتطبيق ويب

هل أنت مستعد لتجربة GitOps؟ فيما يلي مثال بسيط لكيفية تنفيذه لتطبيق ويب:

  1. قم بتخزين رمز التطبيق الخاص بك في مستودع Git (على سبيل المثال، GitHub).
  2. قم بإنشاء مستودع منفصل لبيانات Kubernetes الخاصة بك:
   k8s-manifests/
   ├── deployment.yaml
   ├── service.yaml
   └── ingress.yaml
  1. قم بإعداد مسار CI (على سبيل المثال، إجراءات GitHub) لإنشاء التطبيق الخاص بك، وإجراء الاختبارات، ودفع صور Docker إلى السجل.
  2. قم بتثبيت أداة GitOps مثل Flux أو ArgoCD في مجموعة Kubernetes الخاصة بك.
  3. قم بتكوين أداة GitOps الخاصة بك لمشاهدة مستودع بيانات k8s الخاص بك.
  4. عندما تريد تحديث التطبيق الخاص بك:
    • قم بإجراء تغييرات على رمز التطبيق الخاص بك.
    • قم بتحديث علامة الصورة في Deployment.yaml الخاص بك.
    • تنفيذ التغييرات ودفعها إلى كلا المستودعين.
  5. ستقوم أداة GitOps الخاصة بك باكتشاف التغييرات تلقائيًا وتحديث مجموعتك.

يضمن سير العمل هذا أن تعكس مستودعات Git دائمًا الحالة المطلوبة لنظامك، وأن تظل البنية التحتية الفعلية متزامنة.

التغليف

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

دورك!

هل غمست أصابع قدميك في مياه GitOps؟ ما العقبات التي واجهتك؟ كيف تغلبت عليهم؟ شارك قصص حرب GitOps الخاصة بك في التعليقات - دعنا نتعلم من بعضنا البعض ونجعل حياة DevOps أسهل!

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/vyan/gitops-the-game-changer-in-software-delivery-and-infrastructure-management-3ibd?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ Study_golang@163 .com لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3