terraform چیست؟ می توان گفت Terraform یک فرم زیرساختی به عنوان ابزار کد بوده که به شما امکان می دهد منابع ابری و on-prem را با خیال راحت و کارآمد بسازید و تغییر دهید. همچنین HashiCorp Terraform یک زیرساخت به عنوان ابزار کد است که به شما امکان میدهد هم منابع ابری و هم منابع اولیه را در فایلهای پیکربندی قابل خواندن را برای انسان تعریف کنید که میتوانید آنها را نسخهسازی، استفاده مجدد و اشتراکگذاری نمایید، سپس می توانید از یک گردش کار ثابت برای تهیه و مدیریت تمام زیرساخت های خود در طول چرخه عمر آن استفاده کنید. Terraform می تواند مؤلفه های سطح پایین مانند منابع محاسباتی، ذخیرهسازی و شبکه و همچنین مؤلفه های سطح بالا مانند ورودی های DNS و ویژگی های SaaS را مدیریت می نماید.
Terraform چگونه کار می کند؟
Terraform منابع را روی پلتفرم های ابری و سایر سرویس ها از طریق رابط های برنامه نویسی کاربردی یا API ایجاد و مدیریت کرده و ارائه دهندگان Terraform را قادر می سازند تا تقریباً با هر پلتفرم یا سرویسی با یک API در دسترس کار کنند و پلتفرم ها و سرویس های ابری را از طریق APIهای خود ایجاد و مدیریت می نماید.
HashiCorp و جامعه Terraform قبلاً هزاران ارائه دهنده را برای مدیریت انواع مختلف منابع و خدمات نوشته اند. میتوانید همه ارائهدهندگان عمومی در دسترس از جمله خدمات وب آمازون AWS ،Azure ،Google Cloud Platform GCP ،Kubernetes ،Helm ،GitHub ،Splunk ،DataDog و بسیاری دیگر را در Terraform Registry پیدا نمایید.
گردش کار Terraform چیست
گردش کار Terraform دارای سه مرحله است: نوشتار، برنامه ریزی و اعمال
نوشتار: شما منابعی را تعریف می کنید که ممکن است در چندین ارائه دهنده و سرویس ابری باشند. به عنوان مثال، ممکن است پیکربندی برای استقرار یک برنامه در ماشین های مجازی در یک شبکه ابر خصوصی مجازی یا VPC با گروه های امنیتی و یک load balancer ایجاد کنید.
بیشتر بخوانید: احراز هویت API چیست و دو نوع اصلی از پروتکلهای احراز هویت
برنامه ریزی: Terraform توضیحی از یک طرح اجرایی ایجاد می کند که زیرساختی را که بر اساس زیرساخت موجود و پیکربندی شما ایجاد، به روز رسانی کرده و یا آن را از بین می برد.
اعمال: پس از تایید، Terraform عملیات پیشنهادی را با رعایت هر گونه وابستگی به منابع به ترتیب صحیح انجام می دهد. به عنوان مثال، اگر ویژگی های یک VPC را به روز کنید و تعداد ماشین های مجازی را در آن VPC تغییر دهید، Terraform قبل از مقیاس گذاری ماشین های مجازی، VPC را دوباره ایجاد می کند.
چرا Terraform؟
یک رویکرد تغییرناپذیر برای زیرساخت ها اتخاذ می کند و پیچیدگی ارتقا یا اصلاح خدمات و زیرساخت شما را کاهش می دهد. Terraform یک طرح ایجاد میکند و قبل از اصلاح زیرساختها، از شما میخواهد که تأیید کنید. همچنین زیرساخت واقعی شما را در یک فایل وضعیت نگه می دارد که به عنوان منبع حقیقت برای محیط شما عمل می کند. Terraform از فایل حالت برای تعیین تغییراتی که باید در زیرساخت شما ایجاد کند استفاده می کند تا با پیکربندی شما مطابقت داشته باشد.
برای مشاوره رایگان و یا طراحی و اجرای زیرساخت شبکه و SDWAN با کارشناسان شرکت APK تماس بگیرید. |
تغییرات را به صورت خودکار انجام دهید
فایلهای پیکربندی Terraform بیانی هستند، به این معنی که وضعیت نهایی زیرساخت شما را توصیف میکنند. برای ایجاد منابع نیازی به نوشتن دستورالعمل های گام به گام ندارید زیرا Terraform منطق زیربنایی را مدیریت می نماید. Terraform یک نمودار منبع برای تعیین وابستگی منابع می سازد و منابع غیر وابسته را به صورت موازی ایجاد یا اصلاح می کند. این به Terraform اجازه می دهد تا منابع را به طور مؤثر تأمین کند.
استاندارد کردن تنظیمات
terraform چیست؟ Terraform از اجزای پیکربندی قابل استفاده مجدد به نام ماژول ها پشتیبانی می کند که مجموعه های قابل تنظیم زیرساخت را تعریف می کند، در زمان صرفه جویی می کند و بهترین شیوه ها را تشویق می کند. میتوانید از ماژولهای در دسترس عموم از Terraform Registry استفاده کنید یا خودتان بنویسید.
از آنجایی که پیکربندی شما در یک فایل نوشته شده است، میتوانید آن را به یک سیستم کنترل نسخه یا VCS متعهد کنید و از Terraform Cloud برای مدیریت کارآمد گردشهای کاری Terraform در بین تیمها استفاده کنید. Terraform Cloud Terraform را در یک محیط سازگار و قابل اعتماد اجرا میکند و دسترسی ایمن به دادههای دولتی و مخفی مشترک، کنترلهای دسترسی مبتنی بر نقش، یک رجیستری خصوصی برای اشتراکگذاری ماژولها و ارائهدهندگان و موارد دیگر را فراهم میکند.
موارد استفاده HashiCorp Terraform
HashiCorp Terraform یک زیرساخت به عنوان ابزار کد است که به شما امکان میدهد منابع زیرساختی را در فایلهای پیکربندی قابل خواندن برای انسان تعریف کنید که میتوانید آنها را نسخهسازی و دوباره استفاده نمایید و در نهایت به اشتراک بگذارید. سپس می توانید از یک گردش کار ثابت برای تهیه و مدیریت ایمن و کارآمد زیرساخت خود در طول چرخه عمر آن استفاده کنید.
استقرار چند ابری
فراهم کردن زیرساخت در میان ابرهای چندگانه، تحمل خطا را افزایش میدهد و امکان بازیابی دلپذیرتر از قطع شدن ارائهدهنده ابر را فراهم می نماید. با این حال، استقرار چند ابری به پیچیدگی آن میافزاید زیرا هر ارائهدهنده رابطها، ابزارها و گردشهای کاری خاص خود را دارد. Terraform به شما امکان می دهد از گردش کار یکسانی برای مدیریت چندین ارائه دهنده و مدیریت وابستگی های بین ابری استفاده کنید. این امر مدیریت و هماهنگی را برای زیرساختهای چند ابری در مقیاس بزرگ ساده میکند.
ابزارهای استقرار زیرساخت برنامه، مقیاس بندی و نظارت
میتوانید از Terraform برای استقرار، انتشار، مقیاسبندی و نظارت بر زیرساختها برای برنامههای چند لایه استفاده نمایید. معماری برنامه N-tier به شما امکان می دهد اجزای برنامه را به طور مستقل مقیاس بندی نمایید. یک برنامه کاربردی میتواند شامل مجموعهای از وب سرورها باشد که از یک ردیف پایگاه داده استفاده میکنند. Terraform به شما امکان می دهد منابع هر لایه را با هم مدیریت کنید و به طور خودکار وابستگی های بین لایه ها را مدیریت نمایید. به عنوان مثال، Terraform یک ردیف پایگاه داده را قبل از تهیه وب سرورهای وابسته به آن مستقر می کند.
Self-Service Clusters
در یک سازمان بزرگ، تیم عملیات متمرکز شما ممکن است درخواستهای زیرساختی تکراری زیادی دریافت کند. شما میتوانید از Terraform برای ساخت یک مدل زیرساختی «self-serve» استفاده کنید که به تیمهای محصول اجازه میدهد زیرساختهای خود را به طور مستقل مدیریت نمایند. شما میتوانید ماژولهای Terraform را ایجاد و استفاده کنید که استانداردهای استقرار و مدیریت خدمات را در سازمان شما تدوین میکند و به تیمها اجازه میدهد تا خدمات را مطابق با رویههای سازمان شما بهطور مؤثر مستقر کنند. Terraform Cloud همچنین میتواند با سیستمهای فروش بلیط مانند ServiceNow ادغام شود تا بهطور خودکار درخواستهای زیرساخت جدید ایجاد کند.
Terraform میتواند به شما در اجرای سیاستها در مورد انواع منابعی که تیمها میتوانند تهیه و استفاده کنند، کمک کند. فرآیندهای بررسی مبتنی بر بلیط یک گلوگاه است که می تواند توسعه را کند نماید. در عوض، میتوانید از Sentinel، یک چارچوب سیاست بهعنوان کد، برای اجرای خودکار سیاستهای انطباق و حاکمیت قبل از اینکه Terraform تغییرات زیرساختی را انجام دهد، استفاده نمایید.
راهاندازی برنامه PaaS
فروشندگان پلتفرم به عنوان سرویس PaaS مانند Heroku به شما امکان می دهند برنامه های کاربردی وب را ایجاد کنید و افزونه هایی مانند پایگاه های داده یا ارائه دهندگان ایمیل را ضمیمه نمایید. Heroku میتواند تعداد داینوها یا کارگران را بهطور الاستیکی مقیاسبندی کند، اما اکثر برنامههای غیر ضروری به افزونهها و سرویسهای خارجی زیادی نیاز دارند. می توانید از Terraform برای کدگذاری تنظیمات مورد نیاز برای یک برنامه Heroku، پیکربندی یک DNSimple برای تنظیم یک CNAME و راهاندازی Cloudflare به عنوان یک شبکه تحویل محتوا یا CDN برای برنامه استفاده کنید. Terraform می تواند به سرعت و به طور مداوم همه این کارها را بدون رابط وب انجام دهد.
منظور از شبکه های تعریف شده نرم افزاری در terraform چیست
Terraform میتواند با شبکههای تعریفشده نرمافزار یا SDN تعامل داشته باشد تا به طور خودکار شبکه را بر اساس نیازهای برنامههای در حال اجرا در آن پیکربندی کند. این به شما امکان می دهد از یک گردش کار مبتنی بر بلیط به یک جریان خودکار حرکت کنید و زمان استقرار را کاهش دهید.
برای مثال، هنگامی که یک سرویس در HashiCorp Consul ثبت میشود، Consul-Terraform-Sync میتواند به طور خودکار پیکربندی Terraform را ایجاد کند تا پورتهای مناسب را نشان دهد و تنظیمات شبکه را برای هر SDN که ارائهدهنده Terraform مرتبط دارد، تنظیم کند. اتوماسیون زیرساخت شبکه یا NIA به شما این امکان را میدهد تا بدون نیاز به ترجمه دستی بلیطهای توسعهدهندگان به تغییراتی که فکر میکنید برنامههایشان به آنها نیاز دارند، تغییراتی را که برنامههای شما نیاز دارند، تأیید کنید.
محیط های موازی
ممکن است محیط های مرحله بندی یا QA داشته باشید که از آنها برای آزمایش برنامه های جدید قبل از انتشار آنها در مرحله تولید استفاده می کنید. همانطور که محیط تولید بزرگتر و پیچیده ترمی شود، حفظ یک محیط به روز برای هر مرحله از فرآیند توسعه می تواند به طور فزاینده ای دشوار باشد. Terraform به شما امکان میدهد زیرساختهای توسعه، آزمایش، QA و تولید را به سرعت بچرخانید و از رده خارج کنید. استفاده از Terraform برای ایجاد محیط های یکبار مصرف در صورت نیاز مقرون به صرفه تر از نگهداری نامحدود هر یک است.