إدارة الدولة Terraform

Adart Aldwlt Terraform



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

دولة Terraform

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

لفهم المفهوم بوضوح ، دعنا نأخذ مثالاً:







الموارد 'ملف محلي' 'جون' {

اسم الملف = '/home/John.txt'

المحتوى = 'أنا أحب الحيوانات الأليفة'

}

هنا ، نقوم بإنشاء ملف Terraform يسمى “main.tf”. يوجد بداخله مورد من نوع local_file يسمى 'John' مع سمتين: اسم الملف والمحتوى.



يتم استخدام نوع المورد local_file لإنشاء ملف على نظام الملفات المحلي للجهاز حيث يتم تشغيل Terraform. في هذه الحالة ، يتم إنشاء الملف باسم 'John.txt' في دليل '/ home' ، ومحتوى الملف هو 'أحب الحيوانات الأليفة'.



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





هنا ملف الحالة للمورد الذي أنشأناه:



الآن ، لنفترض أننا نريد إزالة المورد الحالي وإنشاء مورد آخر من نوع random_pet باسم 'my-pet' مع السمات - البادئة والطول والفاصل.

الموارد 'عشوائي_بيت' 'حيواني الأليف' {

البادئة = 'السيد'

الطول = '1'

فاصل = '.'

}

هنا ، نقوم بإزالة مورد local_file وإضافة مورد random_pet. حالتنا المطلوبة هي أن يكون لدينا مورد random_pet فقط. لننفذ أوامر Terraform ، والتخطيط ، والتطبيق.

كما هو موضح في الرسم التوضيحي السابق ، عندما ننفذ أمر Terraform 'plan' ، فإنه يُظهر الإجراءات التي يتخذها Terraform للوصول إلى الحالة المطلوبة. عندما نقوم بتشغيل أمر Terraform 'تطبيق' ، يتم إنشاء مورد 'my-pet' وإزالة مورد 'John'. أيضًا ، يتم تحديث ملف الحالة عن طريق إتلاف البيانات الوصفية لمورد local_file وإضافة البيانات الوصفية لمصدر random_pet.

هذا هو محتوى ملف الحالة المحدث:

كيف يتم تعديل عمل إدارة الدولة؟

باستخدام الواجهة الخلفية ، يدير Terraform الحالة. الواجهة الخلفية هي خدمة عن بُعد أو نظام ملفات محلي يستخدمه Terraform لتخزين بيانات الحالة واستردادها. اعتمادًا على متطلباتنا ، يمكننا اختيار خلفية مناسبة.

يدعم Terraform العديد من الخلفيات المضمنة بما في ذلك Local و Amazon S3 و HashiCorp Consul و Vault و Azure Storage. يمكننا أيضًا إنشاء خلفية خلفية مخصصة إذا لم يلبي أي من الخيارات المضمنة الاحتياجات.

في الأمثلة السابقة ، تم تخزين ملفات الحالة في الخلفية المحلية. لكن تخزينه في خلفية بعيدة هو أفضل ممارسة لأنه يستدعي التعاون ويزيد من الأمان.

أهمية إدارة الدولة

تعتبر إدارة الدولة في أدوات مثل Terraform ضرورية بسبب النقاط الرئيسية التالية:

حدد الوضع الحالي للبنية التحتية الخاصة بك

يوفر ملف الحالة لقطة دقيقة للموارد الموجودة وخصائصها الحالية. هذه البيانات ضرورية لفهم بنيتنا التحتية والتأكد من أنها في الحالة المرغوبة.

تتبع التغييرات على البنية التحتية بمرور الوقت

في كل مرة نطبق التغييرات باستخدام Terraform ، يتم تحديث ملف الحالة ليعكس الحالة الجديدة لبنيتنا التحتية. يتيح لنا ذلك تتبع كيفية تطور بنيتنا التحتية ويوفر مسار تدقيق لجميع التغييرات.

أتمتة

يتيح لنا تحديد حالة البنية التحتية المرغوبة في التعليمات البرمجية أتمتة إنشاء البنية التحتية وإدارتها. تضمن إدارة الدولة أن البنية التحتية لدينا لا تزال مرغوبة ، حتى لو تم إجراء التغييرات بمرور الوقت.

إدارة التبعيات

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

التعافي من الكوارث

في حالة حدوث عطل أو انقطاع ، يمكننا استخدام ملف الحالة لإعادة إنشاء البنية التحتية في حالة معروفة. يمكن أن يساعد ذلك في تقليل وقت التوقف عن العمل وضمان استعادة بنيتنا التحتية بسرعة وكفاءة.

أفضل الممارسات للإدارة الفعالة للدولة

فيما يلي بعض النصائح التي يمكننا اتباعها لإدارة الولايات بفعالية:

استخدم واجهة خلفية عن بعد

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

تمكين تعيين الإصدار

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

استخدم آلية القفل

يمكننا استخدام آلية قفل تساعد في منع التعارضات عندما يعمل عدة مستخدمين على نفس البنية التحتية. يدعم Terraform العديد من أدوات القفل بما في ذلك DynamoDB و Consul و S3.

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

يمكننا التعافي من تلف البيانات إذا قمنا بعمل نسخة احتياطية من ملف الحالة بانتظام. يجب علينا تخزين النسخ الاحتياطية في مكان آمن واتباع أي متطلبات امتثال ذات صلة.

خاتمة

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