Terraform – انجمن DEV
HashiCorp Terraform با استفاده از فایلهای پیکربندی قابل استفاده مجدد، قابل اشتراکگذاری و قابل خواندن توسط انسان، یک راهحل نرمافزاری زیرساختی بهعنوان کد (IaC) است که تیمهای DevOps را قادر میسازد تا تهیه زیرساخت را خودکار کنند. تأمین زیرساخت ممکن است با استفاده از این فناوری در سناریوهای داخلی و ابری خودکار شود.
زیرساخت به عنوان کد
فرآیند تامین و کنترل زیرساختهای فناوری اطلاعات با استفاده از کدگذاری به عنوان «زیرساخت به عنوان کد» شناخته میشود. IaC به تیمهای DevOps این امکان را میدهد تا زمانی که هر منبع ضروری به صورت دستی است، منابع مورد نیاز خود را بر خلاف مدیریت زیرساخت دستی، به صورت برنامهنویسی و خودکار مدیریت، نظارت و ارائه کنند. توسط یک انسان تنظیم شده است
تیم ها ممکن است از Terraform برای توصیف و ارائه تمام بخش های زیرساخت با استفاده از کد استفاده کنند. فایل های پیکربندی که به راحتی به اشتراک گذاشته می شوند، استفاده مجدد می شوند و نسخه می شوند، حاوی کد هستند. به منظور مدیریت کل زیرساخت ابر یا مرکز داده و منابع آن در طول عمر آنها، فایل ها به ایجاد یک گردش کار استاندارد کمک می کنند.
فایل های پیکربندی اعلامی برای Terraform وضعیت نهایی زیرساخت را تعریف می کنند. این ابزار به جای ارائه دستورالعمل های دقیق، که رویه ای پر زحمت و وقت گیر است، برای ساختن منابع زیرساختی لازم، موارد زیربنایی را مدیریت می کند.
خود منطق
برای تیم های DevOps ساده است که کارهای زیر را انجام دهند زیرا فایل ها رابط های برنامه نویسی برنامه (API) را برای پلتفرم های ابری و سایر خدمات کدگذاری می کنند:
از هر ارائه دهنده ابری ممکن است برای تهیه منابع استفاده شود.
موانع انطباق و امنیتی برای هماهنگ کردن زیرساخت ها ایجاد کنید.
از رویه های تعریف شده و قابل اعتماد برای اطمینان از ثبات در تهیه، اشتراک گذاری و استفاده مجدد از زیرساخت استفاده کنید.
VCS، ITSM و CI/CD را با زیرساخت سلف سرویس ادغام کنید. Terraform قادر به مدیریت اجزای سطح پایین مانند رکوردهای DNS و همچنین عناصر زیرساخت سطح بالا مانند محاسبات، ذخیره سازی و منابع شبکه است.
علاوه بر این، ممکن است برای راه اندازی خودکار سرورها، پایگاه داده ها و تنظیمات فایروال استفاده شود. تیم ها ممکن است زیرساخت ها را با استفاده از زبان برنامه نویسی مورد علاقه خود، از جمله TypeScript، Python، Go، C# و Java، با استفاده از یک کیت توسعه ابری برای Terraform (CDKTF) مدیریت کنند.
چگونه Terraform کار می کند
توانایی ساخت فایلهای پیکربندی اعلامی با استفاده از Terraform توسط APIهای پرکاربردی که از همه ارائهدهندگان خدمات ابری اصلی قابل دسترسی هستند امکانپذیر است. رجیستری Terraform فهرستی از این تامین کنندگان را دارد.
تیم ها ممکن است از ماژول ها، کتابخانه های خط مشی و وظایف موجود در رجیستری برای نصب آسان تنظیمات زیرساخت استاندارد و نگهداری خودکار آنها با کد استفاده کنند. فرآیند Terraform شامل سه مرحله است:
نوشتن
کاربر در این مرحله منابع لازم را در فایل های پیکربندی تعریف می کند. این منابع ممکن است در چندین محیط داخلی یا تنظیمات ابری و همچنین بین تامین کنندگان و خدمات مختلف پخش شوند.طرح
این مرحله زمانی شروع می شود که کاربر مراحل لازم را بررسی و تایید کند. اقداماتی که برای توسعه یا ارتقاء زیرساخت انجام خواهد شد در طرح اجرایی که Terraform در این مورد تولید می کند شرح داده شده است.درخواست دادن
قبل از اینکه Terraform تغییراتی در زیرساخت ایجاد کند، برنامه باید توسط کاربر تأیید شود. پس از دریافت مجوز، Terraform رویه های پیشنهادی را در دنباله مشخص شده اجرا می کند. قبل از ایجاد تغییرات، همیشه وابستگی های منابع را در نظر می گیرد.
برای مثال، در صورتی که کاربر تصمیم بگیرد تعداد ماشینهای مجازی را در یک VPC (ابر خصوصی مجازی) افزایش دهد، Terraform ابتدا VPC را قبل از افزایش مقیاس ماشینهای مجازی بازسازی میکند.
موارد استفاده
IaC محبوب ترین مورد استفاده Terraform است. استقرار زیرساخت Terraform برای ادغام با رویه های فعلی CI/CD ساده است.
برای مثال، تیمها ممکن است از Terraform برای بهروزرسانی خودکار استخرهای اعضا برای تعادل بار و سایر فعالیتهای شبکهای حیاتی استفاده کنند.
برای تدارک در بسیاری از ابرها، Terraform نیز مفید است. تیم های توسعه ممکن است از Terraform برای ارائه متعادل کننده بار در Google Cloud، مدیریت منابع Active Directory (AD) در Microsoft Azure و استقرار عملیات بدون سرور در AWS استفاده کنند.
خوشه های Kubernetes را در هر ابر عمومی (AWS، Azure، Google) مدیریت کنید.
قبل از توسعه و استقرار مؤلفههای زیرساخت، سیاستها را بهعنوان کد اجرا کنید.
از اسرار و اعتبارنامه ها در تنظیمات Terraform به طور خودکار استفاده کنید.
زیرساخت فعلی را به یک فضای کاری Terraform خالی وارد کنید تا آن را کدگذاری کنید.
حالت را به Terraform منتقل کنید تا از آن محافظت کنید و دسترسی به آن را برای همکاران مجاز ساده کنید.