البنية التحتية كشف الكود (IAC) في خطوط الأنابيب في DevOps

هذه المقالة هي فصل من كتاب إلكتروني من المسؤول إلى DevOps: الطريقة الصادقة لـ DevOps في Azure. تأكد من التحقق منه إذا كنت ترغب في الغوص في ما يلزم لتحقيق النجاح في DevOps في Microsoft Azure من خلال تعلم البنية التحتية كـ كود.

إذا كنت قمت بإنشاء أي نوع من البنية التحتية السحابية أو الافتراضية يدويًا على الموقع ، فستعرف أن هناك إما الكثير من النقر أو الكثير من الكتابة. يتولى البنية التحتية كـ كود (Iac) هذا الأمر.

لتوفير أي شيء يتطلب تذكر الشاشة المطلوب الانتقال إليها أو الأمر الذي يجب تشغيله. إذا كنت تلعب فقط لتعلم Azure فهذا أمر جيد ولكن عندما يتحول هذا اللعب إلى عملية حرجة للأعمال حيث الوقت هو المال ، يجب أن يحدث تغيير.

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

ستواجه تكرارًا غير ضروري للعمل ، وحالات متكررة من متلازمة الأصابع السميكة ، ومشاكل إدارة التغيير ، وانحراف التكوين ، وأكثر من ذلك. كل هذه المشكلات يمكن القضاء عليها أو على الأقل تخفيفها باستخدام مفهوم يسمى “البنية التحتية كـ كود” (IaC).

البنية التحتية كـ كود (IaC): كمثال

IaC هو مصطلح صناعي يشير إلى تخزين كل ما يلزم لبناء مكونات البنية التحتية في شكل رمز. يتم تعريف هذا الشيفرة عادة في ملفات JSON أو YAML تمثل ما يجب أن تبدو عليه بنيتك التحتية يجب أن.

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

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

القالب

في مقتطف الشفرة التالي، يمكنك رؤية مثالًا على كيفية تفكيك كل مكون بواسطة تسلسل هرمي مع تحديد السمات المحددة حول كل مكون. تم إنشاء هذا المثال الخيالي في ملف JSON الذي يطلق عليه معظم الخدمات اسم قالب.

{
	"VM": {
        "Name": "MYVM",
        "Disk": {
            "Size": "100GB"
        },
        "Networking": {
            "IPAddress" : "10.0.0.1"
        }
    }
}

يعرف هذا القالب الآلة الافتراضية وجميع السمات المرتبطة بها. لديه مخطط محدد يلتزم مؤلفو القوالب بتعريف ما تبدو عليه تلك الآلة الافتراضية. لنفترض أن هذا القالب يتم حفظه ثم في ملف يسمى myvm.json.

التحكم في المصدر

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

الأداة

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

> [some command line tool] -File myvm.json

صفقة جيدة، أليس كذلك؟ هذا ليس كل شيء.

مكافحة تناقض التكوين.

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

  1. إنك تقوم بتغييره يدويًا مما يهدر الوقت وقد يحدث خطأ إنساني.
  2. لا يوجد سجل تدقيق لمن قام بتغيير عنوان IP ومتى.
  3. لا يوجد وسيلة آلية لاستعادة التغيير في حالة إدخال عنوان IP بشكل خاطئ.

يمكن لبنية الأكواد الأساسية (IaC) التخفيف من جميع التحديات المذكورة أعلاه. ببضع ضغطات على لوحة المفاتيح حرفياً ، يمكنك إجراء تلك التغييرات بطريقة ستجعل مديرك ومدققك يحبونك على الفور.

افتح myvm.json، غير السمة IPAddress ، قم بتأكيد التغيير في نظام التحكم بالمصدر وقم بتشغيل الأداة مرة أخرى. تم.

{
	"VM": {
        "Name": "MYVM",
        "Disk": {
            "Size": "100GB"
        },
        "Networking": {
            "IPAddress" : "10.0.0.2"
        }
    }
}
> [some command line tool] -File myvm.json

سيكون للأداة الذكاء الكافي لمعرفة ما يجب تغييره. لن تقوم بفصل بطاقة الشبكة أو إعادة بناء الآلة الظاهرية بأكملها. جميع أدوات وخدمات الأكواد الأساسية ذكية بما يكفي لمعرفة كيفية إجراء التغيير. سحر!

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

ولكن انتظر ، هناك المزيد.

بدايات التسليم المستمر.

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

تذكر أنه كان عليك تشغيل تلك الأداة في كل مرة تقوم فيها بتغيير القالب. في أنبوب عمل/تدفق عمل متكامل ، تعمل تلك الأداة تلقائيًا. بمجرد أن يتم توجيه عملية إنشاء أو تغيير البيئة بشكل تلقائي ، فإن البنية التحتية تتطابق.

قم بإنشاء قوالب كافية وفي نهاية المطاف يمكن تمثيل البنية التحتية بأكملها في شكل برمجي أو كشف البرمجيات.

الاستنتاج

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

Source:
https://adamtheautomator.com/infrastructure-as-code-iac/