Terraform

menu icon

Terraform

يسلط هذا الدليل الضوء على كل ما تحتاج إلى معرفته حول Terraform - وهي أداة تسمح للمبرمجين ببناء البنية الأساسية وتغييرها وإصدارها بأمان وكفاءة.

ما هي Terraform؟

Terraform هي أداة "بنية أساسية كتعليمات برمجية" مفتوحة المصدر تم إنشاؤها بواسطة HashiCorp.

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

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

لماذا تختار البنية الأساسية كتعليمات برمجية (IaC)؟

لفهم مزايا Terraform بشكل أفضل، يكون من المفيد أولاً فهم فوائد البنية الأساسية كتعليمات برمجية (IaC). تسمح IaC للمطورين بترميز البنية الأساسية بطريقة تجعل التوفير آليًا وأسرع وقابلًا للتكرار. وهي مكون رئيسي من مجموعة ممارسات Agile و DevOps مثل التحكم في الإصدار، والتكامل المستمر، والنشر المستمر.

يمكن أن تساعد البنية الأساسية كتعليمات برمجية فيما يلي:

  • تحسين السرعة: يكون التشغيل الآلي أسرع من التنقل اليدوي في أي واجهة عندما تحتاج إلى نشر و/أو توصيل المصادر.
  • تحسين الموثوقية: إذا كانت بنيتك الأساسية كبيرة، فسيصبح من السهل توصيف مصدر أو خدمات توفير بشكل خاطئ وبترتيب خاطئ. من خلال IaC، يتم توفير المصادر وتوصيفها دائمًا كما هو معلن تمامًا.
  • تجنب انحراف التوصيف: يحدث انحراف التوصيف عندما لا يعد التوصيف الذي يوفر بيئتك يتطابق مع البيئة الفعلية. (راجع "البنية الأساسية الثابتة" أدناه.)
  • دعم التجريب والاختبار والاستخدام الأمثل: نظرًا لأن البنية الأساسية كتعليمات برمجية تجعل توفير البنية الأساسية الجديدة أسرع وأسهل بكثير، يمكنك إجراء واختبار التغييرات التجريبية دون استثمار الكثير من الوقت والمصادر؛ وإذا أعجبتك النتائج، يمكنك توسيع نطاق البنية الأساسية الجديدة للإنتاج بسرعة.

راجع "ما هي البنية الأساسية كتعليمات برمجية؟" لإلقاء نظرة فاحصة:

لماذا تختار Terraform؟

هناك عدة أسباب رئيسية لاختيار المطورين استخدام Terraform عن غيرها من أدوات البنية الأساسية كتعليمات برمجية:

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

وحدات Terraform

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

مقدمو خدمات Terraform

مقدمو خدمات Terraform عبارة عن مكونات إضافية تنفذ أنواع المصادر. يحصل مقدمو الخدمات على جميع التعليمات البرمجية اللازمة للمصادقة والاتصال بخدمة ما - ويكون ذلك عادةً من مقدم خدمة سحابية عامة - نيابة عن المستخدم. يمكنك العثور على مقدمي خدمات المنصات والخدمات السحابية التي تستخدمها، وإضافتهم إلى التوصيف الخاص بك، ثم استخدام مصادرهم لتوفير البنية الأساسية. يتوفر مقدمو الخدمات تقريبًا لكل مقدم خدمات سحابية رئيسي، ويقدمون البرمجيات كخدمة (SaaS)، وأكثر من ذلك، والتي تم تطويرها و/أو دعمها من قِبل مجتمع Terraform أو المنظمات الفردية. راجع وثائق Terraform (الرابط موجود خارج IBM) للحصول على قائمة مفصلة.

Terraform مقابل Kubernetes

يوجد، في بعض الأحيان، خلط بين Terraform وKubernetes وما يقدمونه بالفعل. والحقيقة هي أنهما ليسا بديلين ويعملان معًا بفعالية.

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

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

تستطيع أداة Terraform إجراء التشغيل الآلي وإدارة الإمكانيات لمستوى تقديم البنية الأساسية كخدمة (IaaS) أو تقديم نظام التشغيل كخدمة (PaaS) أو حتى البرنامج كخدمة (SaaS) وبناء كل هذه المصادر لدى كل مقدمي هذه الخدمات بالتوازي. يمكنك استخدام Terraform لإجراء التشغيل الآلي لتوفير Kubernetes - وخاصة مجموعات Kubernetes المُدارة على المنصات السحابية - ولإتمام نشر التطبيقات في مجموعة.

Terraform مقابل Ansible

تعد كل من Terraform وAnsible أداة بنية أساسية كتعليمات برمجية، ولكن هناك اختلافان مهمان بينهما:

  • في حين أن Terraform هي أداة تعريفية بحتة (انظر أعلاه)، تجمع Ansible بين كل من التوصيف التعريفي والإجرائي. في التوصيف الإجرائي، تحدد أنت الخطوات أو الطريقة الدقيقة التي تريد بها توفير البنية الأساسية للحالة المطلوبة. يمثل التوصيف الإجرائي مزيدًا من العمل  ولكنه يوفر مزيد من التحكم.
  • Terraform هي عبارة عن مصدر مفتوح؛ تم تطوير وبيع Ansible من قِبل Red Hat.

IBM وTerraform

تعد IBM Cloud Schematics هي أداة التشغيل الآلي السحابية المجانية لشركة IBM القائمة على Terraform. تتيح لك IBM Cloud Schematics إدارة التشغيل الآلي للبنية الأساسية القائمة على Terraform بشكل كامل بحيث يمكنك قضاء المزيد من الوقت في إنشاء التطبيقات ووقت أقل في بناء البيئات.

تعرف على المزيد عن كيفية استخدام IBM Cloud Schematics.

للاطلاع على مزيد من المعلومات حول Terraform، قم بالتسجيل في IBMid وأنشئ حساب IBM Cloud.