چرا بیشتر شرکت‌ها با مفهوم “Infrastructure as Code” مشکل دارند؟ آیا IfC می‌تونه جایگزین خوبی برای IaC باشه؟

من به صورت شخصی، خوندن آمار و مطالعات رو دوست دارم، ایده می‌ده در مورد شرایط کاری خودم بهتر فکر کنم یا حتی به چیزهای جدید بپردازم و دقیق‌تر شم که آیا شرایط تیم و محصول خودم هم درگیر موضوعاتی شده که بشه بهبودش داد؟! حالا گزارش خوب Stacked Up 2024 منتشر شده و نکات مهمش رو براتون نوشتم…

IaC یعنی چی و چرا اینقدر مهمه؟

مفهوم “IaC” که مخفف Infrastructure as Code است، یه روش اساسی برای مدیریت زیرساخت‌ها در اپلیکیشن‌های کلود-نیتیو به شمار می‌ره. به جای اینکه به صورت دستی سیستم‌ها رو کانفیگ کنن یا اسکریپت‌های پراکنده بنویسن، زیرساخت‌ها به شکل فایل‌های کدی و قابل فهم برای ماشین، تعریف و اتومات می‌شن. اینجوری دیگه نگران از قلم افتادن یک مرحله یا تنظیم نیستیم. می‌شه در عرض چند ثانیه یا دقیقه ده‌ها ماشین، شبکه یا سرویس رو با تنظیمات و ساختار مشابه ایجاد کرد. این کار عملا مفاهیم مهندسی نرم‌افزار رو به مدیریت زیرساخت‌ها میاره و کمک می‌کنه زیرساخت‌ها سریع‌تر، قابل اطمینان‌تر و با خطای کمتری مستقر بشن.

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


وضعیت فعلی استفاده از IaC چطوره؟

طبق گزارش “Stacked Up: The IaC Maturity Report”:

  • فقط ۱۳% شرکت‌ها به بلوغ کامل در IaC رسیدن.
  • حدود ۵۱% گفتن فقط بخشی از زیرساختشون کدنویسی شده.
  • حدود ۱۰% هم هنوز تو مراحل اولیه هستن و تازه توی پروژه‌های آزمایشی این مفهوم رو تست می‌کنن.

این اعداد نشون می‌ده که چرا بلوغ IaC هنوز یه چالش جدیه. با اینکه مزایای زیادی براش تعریف شده، چرا سازمان‌ها نمی‌تونن به شکل کامل ازش بهره ببرن؟


چرا رسیدن به بلوغ IaC اینقدر سخته؟

خلاصه بگم: پیچیدگی‌هاش بیشتر از چیزیه که تو نگاه اول به نظر میاد.
طبق آمار:

  • تقریبا ۹۷% از افراد توی این حوزه گفتن با چالش‌های بزرگی روبرو هستن، مثل:
    • ۵۶%: مشکل تو حفظ کانفیگ‌های قابل استفاده مجدد و ثابت، با وجود ابزارهای زیاد
    • ۵۴%: سردرگمی در مدیریت چندین ابزار
    • ۴۵%: ابهام در مالکیت IaC (یعنی کی مسئول ایجاد، استقرار و نگهداریشه؟)

جالبه بدونین که ۵۱% از دولوپرها گفتن بیشتر از ۲۰% زمانشون صرف IaC می‌شه؛ در حالی که فقط ۱۷% تونستن این زمان رو به زیر ۱۰% برسونن.

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


چه کارهایی می‌شه برای بهتر شدن انجام داد؟

تحقیقات ۶ حوزه اصلی رو برای پیشرفت در بلوغ IaC شناسایی کرده:

  1. ۴۳% نیاز به مهارت‌های بهتر برای نوشتن IaC دارن.
  2. ۳۲% نگران امنیت و حاکمیت در IaC هستن.
  3. ۳۱% مشکل مستندسازی دارن.
  4. ۲۸% دغدغه‌ی یکپارچگی و ثبات در IaC رو دارن.
  5. ۲۸% مدیریت IaC براشون چالش‌برانگیزه.
  6. ۲۵% نیاز به پشتیبانی بهتر برای نیازهای خاص اپلیکیشن دارن.

فقط ۲% گفتن که نیازی به بهبود فرآیندهای فعلی ندارن، که این خودش نشون‌دهنده‌ی چالش‌های بزرگیه که بقیه باهاش مواجه‌ان.


نقش “Infrastructure from Code” (IfC) چیه؟

حالا IfC به عنوان یه فناوری جدید، می‌تونه بسیاری از مشکلات فعلی رو حل کنه. اینجا، IaC به‌طور خودکار از روی کد اپلیکیشن تولید می‌شه، اونم با یه سری گاردریل که تضمین می‌کنه کدها طبق بهترین استانداردها باشن. ۴۶% افراد گفته‌ان که تولید مستقیم IaC از روی کد اپلیکیشن، یه مزیت بزرگه.

حتی گارتنر هم IfC رو به عنوان یه پارادایم نوظهور در گزارش سالانه‌ی خودش معرفی کرده. ایده اینه که به جای فرآیندهای دستی، روش‌های خودکار و هوشمندتری برای تولید IaC استفاده بشه.

ماهیت IfC چیست؟
  • مستقیماً از کد اپلیکیشن، زیرساخت رو تولید می‌کنه
  • نیاز به نوشتن دستی تمپلیت‌های زیرساختی رو حذف می‌کنه
  • گاردریل‌های امنیتی و بهترین رویه‌ها رو به صورت خودکار اعمال می‌کنه
مزایای اصلی IfC
  1. کاهش زمان توسعه
  2. کاهش احتمال خطای انسانی
  3. یکپارچگی بیشتر بین کد اپلیکیشن و زیرساخت
  4. مدیریت راحت‌تر پیچیدگی‌های زیرساختی
  5. حذف مشکلات ارتباطات بین تیمی

علی‌رغم مزایا، IfC هنوز توی مراحل اولیه است و نیاز به بلوغ بیشتری داره.

جمع‌بندی

مدیریت سیستم‌های کلود دائماً در حال تغییره. تیم‌های توسعه، زیرساخت و مدیریتی باید مدام فناوری‌ها و مهارت‌های جدید یاد بگیرن. در حالی که IaC تونسته فرآیندها رو نسبت به روش‌های سنتی بهبود بده، فناوری‌های جدید مثل IfC لازمه تا بلوغ IaC رو به سطح بعدی برسونن.

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

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