Terraform
اسم · Infrastructure as Code
أداة مفتوحة المصدر لـInfrastructure as Code (IaC) طوّرتها HashiCorp، تتيح تعريف وتوفير وإدارة موارد البنية التحتية السحابية عبر ملفات تكوين تصريحية بلغة HCL — مما يضمن قابلية الاستنساخ والتحكم بالإصدارات.
منصة DevOps متعددة السحابات تُجرّد واجهات API لمئات المزودين (AWS, Google Cloud, Azure, Docker, Kubernetes) في سير عمل موحد: كتابة، تخطيط، تطبيق — محوّلةً البنية التحتية إلى شيفرة قابلة للتدقيق والاختبار والتعاون.
معيار صناعي لـأتمتة البنية التحتية يدير رسم تبعيات بين الموارد، ويحسب التغييرات اللازمة عبر `terraform plan` ويطبّقها بشكل متكافئ — مما يُزيل انحراف التكوين والأخطاء اليدوية.
يعمل Terraform في ثلاث مراحل: Write (كتابة التكوين بلغة HCL لوصف الموارد المطلوبة)، وPlan (حساب التعديلات اللازمة للوصول إلى الحالة المرغوبة)، وApply (توفير الموارد تلقائياً). يحتفظ Terraform بملف حالة (state) يرسم خريطة الموارد الفعلية مقارنةً بالتكوين المُعلَن. تستخدم وكالتنا سير العمل هذا لإدارة البنية التحتية السحابية لعملائها بشكل موثوق وقابل للاستنساخ.
يتيح Terraform إصدار البنية التحتية كشيفرة مصدرية، واستنساخ بيئات متطابقة بنقرة واحدة، وإزالة أخطاء التكوين اليدوي. يوفر قابلية نقل استثنائية عبر السحابات المتعددة ويسهّل التعاون بين الفرق بفضل سير عمل GitOps. تفضّل وكالتنا Terraform لأتمتة توفير الخوادم وقواعد بيانات MongoDB ومجموعات Kubernetes لعملائها، مما يُقلل أوقات النشر والمخاطر البشرية.
يتم تثبيت Terraform بتحميل الملف التنفيذي من موقع HashiCorp الرسمي أو عبر مدير حزم (Homebrew على macOS, apt/yum على Linux, Chocolatey على Windows). بعد التثبيت، يُهيّئ الأمر `terraform init` المشروع بتحميل providers اللازمة. تدمج وكالتنا Terraform في صور Docker التطويرية ليتوفر لكل عضو في الفريق بيئة متطابقة وجاهزة للعمل.
Provider Terraform هو إضافة تتيح لـ Terraform التواصل مع واجهة API خدمة سحابية أو بنية تحتية محددة (AWS, GCP, Azure, Docker, Kubernetes, Cloudflare). يكشف كل provider عن مجموعة من الموارد ومصادر البيانات التي يمكن إعلانها في ملفات التكوين. تستخدم وكالتنا بشكل رئيسي providers AWS وDocker وKubernetes لأتمتة سلسلة البنية التحتية الكاملة لمشاريعها على الويب.
لاستخدام Terraform، أنشئ ملف `.tf` يُعلن عن provider والموارد المطلوبة بلغة HCL، ثم نفّذ `terraform init` للتهيئة، و`terraform plan` لمعاينة التغييرات، و`terraform apply` لتطبيقها. تُتتبَّع التعديلات في ملف حالة يمكن مشاركته عبر خلفية بعيدة (S3, Terraform Cloud). نرافق عملاءنا في اعتماد Terraform من خلال هيكلة وحداتهم وإعداد خطوط أنابيب CI/CD مؤتمتة.
Terraform هو أداة Infrastructure as Code (IaC) تتيح تعريف جميع موارد البنية التحتية (خوادم، شبكات، قواعد بيانات، DNS) في ملفات تكوين مُصدَّرة، ثم توفيرها تلقائياً عبر واجهات API المزودين السحابيين. إنه المعادل لمخطط معماري لبنيتك التحتية الرقمية. تعتبر وكالتنا Terraform أداة لا غنى عنها لضمان قابلية الاستنساخ وتتبع البنية التحتية لكل مشروع.
صورة Docker هي قالب غير قابل للتغيير يحتوي على الشيفرة والتبعيات والتكوين اللازمة لتشغيل حاوية. في سياق Terraform، يتيح provider Docker إدارة دورة حياة الصور (build, pull, push) بشكل تصريحي ومؤتمت. تجمع وكالتنا بين Terraform وDocker لإصدار ليس فقط الشيفرة التطبيقية بل أيضاً البنية التحتية الداعمة لها، مما يضمن عمليات نشر متسقة من البداية إلى النهاية.
نعم، يتوفر لدى Terraform مزود Docker رسمي يتيح إدارة الحاويات والصور والشبكات ووحدات التخزين Docker بشكل تصريحي. يعني ذلك أنه يمكنك تعريف بنيتك التحتية Docker بالكامل في ملفات `.tf` وإصدارها كشيفرة. تستخدم وكالتنا هذا التكامل لأتمتة توفير بيئات تطوير وإنتاج Docker كاملة، مع تتبع شامل للتغييرات.
يعمل Terraform وDocker على مستويات مختلفة: Docker يُحاوي التطبيقات (التغليف والتشغيل)، بينما Terraform يوفّر البنية التحتية التي تعمل عليها هذه الحاويات (خوادم، شبكات، مجموعات). يمكن لـ Terraform التحكم بـ Docker بإنشاء وإدارة الحاويات عبر provider المخصص. في Async Code، نستخدم الاثنين بتكامل: Terraform يوفّر البنية التحتية السحابية ومجموعات Kubernetes، وDocker يُغلّف التطبيقات التي ينسّقها Kubernetes.
Terraform هو أداة مفتوحة المصدر ابتكرتها HashiCorp أحدثت ثورة في إدارة البنية التحتية بتحويلها إلى شيفرة. بدلاً من تكوين الخوادم يدوياً عبر لوحات تحكم ويب، تصف بنيتك التحتية في ملفات نصية مُصدَّرة ويتولى Terraform إنشاء كل شيء أو تعديله أو حذفه تلقائياً. تعتمد وكالتنا على Terraform لتقديم بنية تحتية سحابية موثوقة وموثقة وقابلة للتطور لعملائها دون مخاطر الأخطاء البشرية.