ما هي Terraform؟

تاريخ النشر 15 أبريل 2025
تاريخ التحديث 13 يوليو 2026
مطور برمجيات يعالج البيانات على جهاز كمبيوتر محمول داخل غرفة خوادم
By Derek Robertson, Matthew Kosinski and Gregg Lindemulder

تعريف Terraform

Terraform هو منتج بنية تحتية كتعليمات برمجية (IaC) من فئة المؤسسات أنشأته شركة HashiCorp. يوفر Terraform واجهة موحدة لإدارة دورة حياة البنية التحتية وسير عمل واحدًا لتوفير عناصر البنية التحتية عبر عدة سحابات (AWS، وAzure وGoogle Cloud)، والشبكات، و مراكز البيانات الخاصة، وبيئات البرمجيات كخدمة. 

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

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

في المقابل، باستخدام اللغة الإجرائية، يجب على المطورين كتابة إرشادات خطوة بخطوة لتوفير البنية التحتية.

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

في فبراير 2025، استحوذت شركة IBM على HashiCorp وعروضها، بما في ذلك Terraform. 

كيف تعمل Terraform؟

تعمل Terraform مع أي منصة أو خدمة تقريبًا تحتوي على واجهة برمجة تطبيقاتيمكن الوصول إليها، بما في ذلك Amazon Web Services (AWS) وMicrosoft Azure وGoogle Cloud وGitHub وIBM Cloud وDocker.

يتكون سير عمل Terraform الأساسي من ثلاث مراحل:

  1. الكتابة
  2. الخطة 
  3. التطبيق

1. الكتابة

يكتب المطور ملف تكوين قابل للقراءة من قِبل البشر لتحديد تكوينات الموارد للبنية التحتية المطلوبة. هذا الملف تعريفي. يصف المطور البنية التحتية التي يريدها ولكنه لا يوضح كيفية توفيرها. 

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

يمكن لملف تكوين واحد إدارة الموارد الموجودة عبر العديد من خدمات ومزودي السحابة.

2. الخطة

يحلل Terraform كلاً من التكوين المكتوب الذي قدمه المطور والحالة الحالية للبنية التحتية للمؤسسة. ثم يُنشئ خطة تنفيذ تصف كيف ستصل إلى الحالة المطلوبة من الحالة الحالية.

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

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

  • توفير أجهزة افتراضية جديدة لاستضافة التطبيق. 

  • تعديل مجموعة أمان موجودة للسماح بنقل البيانات إلى الأجهزة الافتراضية الجديدة. 

  • توفير أداة موازنة أحمال لتوزيع حركة المرور بين الأجهزة الافتراضية.

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

3. التطبيق

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

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

عناصر Terraform

تتضمن العناصر الأساسية لأداة Terraform ما يلي:

  • ملفات التكوين
  • الوحدات
  • ملفات الحالة
  • مقدمو الخدمات
  • السجلات
  • Terraform CLI
ملفات التكوين

ملفات التكوين هي الطريقة التي يحدد بها المطورون الموارد المطلوبة للبيئات المحلية والسحابية. تخبر هذه الملفات Terraform عن المزودين الذين يجب استخدامهم والبنية التحتية التي يجب إنشاؤها و البيانات التي يجب جلبها. يمكن للمطورين تعديل ملفات التكوين وإعادة استخدامها ومشاركتها.

يمكن للمطورين كتابة ملفات التكوين بلغة JSON أو بلغة HashiCorp Configuration Language (HCL). تستخدم لغة HCL تركيبات جملة تعريفية: يصف المطورون البنية التحتية المطلوبة بدلاً من تحديد كيفية توفيرها. تشبه لغة HCL صيغة مفتاح-قيمة المستخدمة في JSON، لكنها مُحسّنة من أجل سهولة القراءة من قِبل البشر.

الوحدات

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

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

ملفات الحالة

ملف حالة Terraform هو تمثيل للحالة الحالية للبنية التحتية، بما في ذلك العناصر والتكوينات والعلاقات بين الموارد.  

عندما ينشئ Terraform خطة، فإنه يبدأ بمقارنة ملف التكوين بملف الحالة. تُمكِّن هذه المقارنة Terraform من تحديد التغييرات التي يحتاج إلى إجرائها لجعل البنية التحتية الحالية متوافقة مع التكوين المطلوب.

مقدمو الخدمات

موفرو Terraform هم عناصر إضافية تسمح لأداة Terraform بالتفاعل مع واجهات برمجة التطبيقات الخاصة بالخدمات والمنصات الخارجية. يُمكِّن الموفرون Terraform من إدارة الموارد في بيئات البنية التحتية كخدمة (IaaS) و المنصة كخدمة (PaaS) والبرمجيات كخدمة (SaaS). يحتوي كل موفر على جميع التعليمات البرمجية التي يحتاجها Terraform للاتصال بخدمة وإجراء المصادقة وتوفير الموارد. 

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

يمكن أن يدير Terraform أيضًا البنية التحتية الحالية. باستخدام كتلة الاستيراد، يمكن للمطورين إدخال الموارد المُنشأة خارج Terraform تحت إدارتها، ما يسمح لهم بترميز بيئتهم بالكامل والتحكم فيها، وليس فقط الموارد الجديدة. 

السجلات

يُعد Terraform Registry مستودعًا للموفرين والوحدات النمطية وقواعد السياسات والحلول.

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

يمكن للمؤسسات أيضًا إنشاء سجلات خاصة لمشاركة وحداتها النمطية ومواردها داخليًا.

Terraform CLI

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

كيف تستخدم المؤسسات Terraform؟

تستخدم المؤسسات Terraform لتوفير البنية التحتية وإدارتها طوال دورة حياتها. وتشمل حالات الاستخدام الشائعة ما يلي:

  • إدارة بيئات السحابة الهجينة والمتعددة
  • إدارة البنية التحتية للتطبيقات
  • الخدمة الذاتية للمطورين 
  • إدارة السياسات والامتثال
  • التعاون بين الفِرق

إدارة البيئات السحابية الهجينة والمتعددة

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

يمكن للمؤسسات استخدام Terraform لتبسيط إدارة وتنسيق البُنى التحتية السحابية المعقدة واسعة النطاق. وعلى وجه التحديد، يُمكِّن Terraform المؤسسات من استخدام لغة التكوين نفسها لتوفير الموارد وإدارتها عبر السحابات العامة و السحابات الخاصة والبيئات المحلية في سير عمل موحد.

للمساعدة على إدارة البنية التحتية على نطاق واسع، تساعد Terraform Stacks المستخدمين على أتمتة وتحسين التنسيق والنشر وإدارة دورة حياة تكوينات Terraform المترابطة، ما يقلل من الوقت والعبء التشغيلي لإدارة البنية التحتية. 

تستبدل Stacks هيكل الوحدة الجذرية التقليدية في Terraform ببنية جديدة قائمة على العناصر ومبنية فوق وحدات Terraform. باستخدام Stacks، يمكن للمستخدمين توفير وتنسيق دورة حياة البنية التحتية على نطاق واسع، ما يوفر نهجًا منظمًا وقابلاً لإعادة الاستخدام يتجاوز مفهوم البنية التحتية كتعليمات برمجية.

إدارة البنية التحتية للتطبيقات

يمكن لأداة Terraform نشر وإدارة البنية التحتية للتطبيقات متعددة المستويات، مما يمكّن المؤسسات من إدارة الموارد لكل مستوى في سير عمل موحد مع احترام التبعيات.

على سبيل المثال، قد يتكون تطبيق متعدد الطبقات من مجموعة من خوادم الويب وطبقة لقواعد البيانات وطبقة لواجهة برمجة التطبيقات وخوادم للتخزين المؤقت وطبقة للتوجيه. سيوفر Terraform طبقة قاعدة البيانات قبل توفير خوادم الويب التي يعتمد عليها.

الخدمة الذاتية للمطورين

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

يوفر Terraform الأساس لنموذج الخدمة الذاتية الحديث هذا. فهو يتكامل مع بوابات المطورين مثل Backstage وPort وCortex؛ وأنظمة ITSM مثل ServiceNow وJira؛ ومنصات مسارات التكامل المستمر/التسليم المستمر مثل GitHub Actions وJenkins.

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

عبر AWS وAzure وGCP، يعمل Terraform كطبقة تكامل وتحكم توحد نقاط الدخول هذه، ما يُمكِّن المطورين من العمل بسرعة أكبر مع الحفاظ على الحوكمة والاتساق التشغيلي.

إدارة السياسات والامتثال

يمكن أن تساعد Terraform المؤسسات في فرض سياسات الأمان والامتثال على أنواع الموارد التي يمكن لفرق العمل توفيرها واستخدامها.

يوفر Sentinel، وهو إطار عمل السياسات كتعليمات برمجية من HashiCorp لفرض حوكمة دقيقة قائمة على المنطق عبر البنية التحتية، مكتبة من السياسات الجاهزة التي توفر ضوابط جاهزة (على سبيل المثال، المواءمة مع معايير NIST SP-80053). تساعد هذه السياسات الفرق على فرض قيود الامتثال الشائعة من دون الحاجة إلى كتابة جميع السياسات من البداية.

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

التعاون بين الفِرق

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

مقارنة بين HashiCorp Terraform وRed Hat Ansible 

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

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

تعالج الأداتان مراحل مختلفة ولكن مترابطة من دورة حياة البنية التحتية، ما يجعلها خيارًا طبيعيًا للمؤسسات التي تسعى إلى الاتساق عبر البيئات المختلفة.

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

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

IBM DevOps

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

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

Terraform مقابل Kubernetes

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

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

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

المؤلفين

Derek Robertson

Staff Writer

IBM Think

Matthew Kosinski

Staff Editor

IBM Think

Gregg Lindemulder

Staff Writer

IBM Think