iac

infrastructure as code یا IaC چیست؟

زیرساخت به عنوان کد (IaC) مدیریت و ساخت زیرساخت از طریق کد به جای فرآیندهای دستی است.

 

IaC یکی از ابزار های دواپس است. IaC یعنی نوشتن یک کد جهت ساختن و مدیریت زیرساخت. با IaC، فایل‌های پیکربندی ایجاد می‌شوند که حاوی مشخصات زیرساخت شما هستند، که ویرایش و توزیع پیکربندی‌ها را آسان‌تر می‌کند. همچنین تضمین می کند که با اجرای کد هر بار همان محیط را فراهم می کنید. 

کنترل ورژن (Version Control) بخش مهمی از IaC است و فایل های پیکربندی شما باید مانند هر کد نرم افزار دیگری تحت کنترل منبع باشند. استقرار زیرساخت خود به عنوان کد همچنین به این معنی است که می توانید زیرساخت خود را به اجزای مدولار تقسیم کنید که سپس می توانند به روش های مختلف از طریق ابزارهای CI/CD ترکیب شوند.

تامین خودکار زیرساخت با IaC به این معنی است که توسعه‌دهندگان نیازی به تهیه و مدیریت دستی سرورها، سیستم‌عامل‌ها، ذخیره‌سازی و سایر اجزای زیرساختی در هر بار توسعه یا استقرار یک برنامه ندارند. کدگذاری زیرساخت‌های خود به شما الگویی می‌دهد تا برای تهیه آن دنبال کنید.

رویکرد ها در iaC

در مباحث مربوط به اتوماتیک کردن فرایند ها در دواپس  ۲ راهکار وجود. imperative و declarative. 
راه حل imperative مانند نوشتن اسکریپت است که خط به خط دستور های شما اجرا میشود. اما در روش declarative وضعیت مورد نظر شما به سیستم داده میشود تا آن را برای شما پیاده سازی کند. مثلا در ترافورم مشخصات ابرک مورد نیاز که شامل نام،‌ منابع و … نوشته سپس سیستم ان را برای ما پیاده سازی میکند. بیشتر ابزار های IaC از این روش استفاده میکنند.

مزایای IaC

راه اندازی زیرساخت از زمان های قدیم زمان بر و چالش بر انگیز بوده است. مثلا نصب دیوایس ها، نصب سیستم عامل و …. با پیشرفت کلاد و مهاجرت به آن این فرایند ساده تر شده و زمان کمتری میبرد. با این حال تغییرات در کنسول سرویس دهنده ها گاها سبب بروز مشکل شده و امکان عیب یابی را دشوار و زمان بر میکند. 
در حالی که اگر از IaC بهره بگیریم شاید در دفعه اول نیاز به سپری کردن زمان زیاد برای پیاده سازی کد داشته باشیم ولی به دلیل آن که بر روی یک سرویس مثل گیت تغییرات پوش میشوند. پیدا کردن مشکلات سریع تر شده و امکان بازگشت به ورژن قبل را اسان تر میکند. 
علاوه بر آن در زمان بروز مشکلات به راحتی میتوان زیر ساخت را از بیس ساخت. در صورتی که نیاز به داشتن همان زیرساخت در منطقه (Region) دیگر یا برای مشتری دیگر باشد با تغییر دادن چند متغیر همان کد قابل استفاده است. 
مزیت دیگر آن که میتوان از کد به عنوان یک داکیومنت نیز بهره گرفت
به صورت خلاصه مزایای IaC به شرح زیر میباشد:

  • کاهش هزینه
  • افزایش سرعت استقرار
  • کاهش خطای انسانی
  • بهبود ثبات زیرساخت 
  • حذف رانش پیکربندی (configuration drift)

ابزارهای IaC

برای دستیابی به IaC می توان از  ابزارهای مدیریت پیکربندی استفاده کرد. همچنین راه حل هایی به طور خاص برای IaC وجود دارد. از جمله آنها میتوان به 

  • Chef
  • Puppet
  • Red Hat Ansible
  • Automation
  • Platform
  • Saltstack
  • Terraform
  • AWS CloudFormation
اشاره نمود.
اشتراک گذاری

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *