دانیلو میکولا از Medidata Solutions تغییری از فرآیندهای دستی به گردشهای کاری اعلانی را هدایت کرد – که زمان راهاندازی کلاستر را 97٪ کاهش داد
برای بسیاری از تیمهای مهندسی سازمانی، Kubernetes مدتها است که مرحله نوآوری را پشت سر گذاشته و در دسته زیرساختهای حیاتی روزمره جای گرفته است. با این حال، حفظ کارآمد این زیرساخت – به ویژه در چندین کلاستر و محیط – چالشی است که تحویل ویژگیها را کند میکند و ریسک عملیاتی را افزایش میدهد.

در Medidata Solutions، ارائهدهنده پیشرو راهحلهای SaaS و تحلیل دادهها که از تحقیقات بالینی پشتیبانی میکند، این چالش بهطور خاص حاد بود. مدیریت زیرساخت ترکیبی در محیطهای محلی و رایانش ابری – شامل تقریباً یک دوجین کلاستر Kubernetes و هزاران ماشین مجازی – راهاندازی یک کلاستر آماده تولید فرآیندی طولانی بود که میتوانست هفتهها تلاش هماهنگ طول بکشد، شامل پیکربندی دستی که در چندین تیم پراکنده بود. بهروزرسانیهای برنامههای زیرساختی اغلب به تعویق میافتاد زیرا سوابق پیکربندی متمرکز نبودند، که تاخیرها و گاهی اوقات شکافهای امنیتی ایجاد میکرد.
این وضعیت زمانی تغییر کرد که دانیلو میکولا، معمار DevOps و زیرساخت با بیش از یک دهه تجربه در صنایع تنظیمشده، در اواخر سال 2023 به تیم مهندسی پلتفرم پیوست و شروع به بازسازی روش مدیریت زیرساخت کرد. دستور کار، همانطور که دانیلو توضیح میدهد، فریبنده ساده بود.
"هدف معرفی ابزارهای جدید برای مدرنسازی نبود. هدف این بود که زیرساخت موجود را آسانتر برای عملیات، نگهداری و مقیاسپذیری کنیم – بدون افزایش کارکنان یا پیچیدگی."
– دانیلو میکولا، معمار DevOps و زیرساخت، Medidata Solutions
از مراحل دستی به گردشهای کاری اعلانی
هسته تحول بر یکپارچهسازی فرآیندهای پراکنده به یک مدل مبتنی بر GitOps متمرکز بود. به جای اینکه مهندسین پیکربندیها را به صورت دستی به هر کلاستر اعمال کنند، استقرارها به مخزنهای کنترل نسخه منتقل شدند، با Argo CD که همگامسازی را مدیریت میکند.
گلوگاههایی که او با آنها مواجه شد در هر مرحله وجود داشت. شبکه کانتینر نیاز به هماهنگی بین تیمهای مهندسی پلتفرم و شبکه داشت، با پیکربندی پراکنده در ایستگاههای کاری مهندسین فردی. برنامههای زیرساختی به صورت دستی مستقر میشدند، با فایلهای مقادیر موجود در ماشینهای محلی. مدیریت اسرار از رویکردهای سنتی دستی پیروی میکرد، و فرآیندهای استقرار به صورت ارگانیک در طول زمان و بدون هماهنگی متمرکز تکامل یافته بودند. با یکپارچهسازی هر مرحله به نمودارهای Helm با کنترل نسخه با تغییرات خاص محیط، دانیلو زمان هر مرحله را از روزها به دقایق کاهش داد.
معماری که دانیلو ساخت از فلسفه "یکبار تعریف کن، همهجا مستقر کن" پیروی میکرد. یک مخزن مرکزی تعاریف سرویس مشترک را نگه میداشت که به صورت خودکار استقرارهای خاص کلاستر را تولید میکرد، در حالی که هر محیط فقط تغییرات منحصر به فرد خود را حفظ میکرد. "به جای کپی کردن فایلهای پیکربندی در دوجین کلاستر،" دانیلو توضیح میدهد، "ما سیستمی ایجاد کردیم که در آن اضافه کردن یک سرویس جدید به معنای نوشتن یک تعریف و اجازه دادن به اتوماسیون برای انجام بقیه بود." این رویکرد دهها مؤلفه زیرساختی را پوشش میداد – از ذخیرهسازهای داده و سیستمهای پیامرسانی تا ابزارهای امنیتی و نظارتی – در حالی که به طور چشمگیری خطر انحراف پیکربندی را کاهش میداد.
توزیع اسرار از همان اصل پیروی میکرد: به جای تزریق دستی به ازای هر کلاستر، یکپارچگی Vault از طریق Vault Secrets Operator همگامسازی را خودکار کرد، و اطمینان حاصل کرد که تغییرات از طریق یک فرآیند کنترلشده با مسیرهای حسابرسی مناسب جریان مییابند.
نتیجه تغییری اساسی در نحوه مدیریت زیرساخت بود. زمان راهاندازی به تقریباً 30 دقیقه کاهش یافت – یک بهبود کارایی 97.6 درصدی. بهروزرسانیها سازگار و قابل تکرار شدند، و ورود مهندسین جدید به دانش قبیلهای کمتری نیاز داشت.
"ما چندین تیم داشتیم که به محیطهای یکسان کمک میکردند، و سازگاری همیشه یک نگرانی بود. این کار به ما کمک کرد تا به یک فرآیند قابل پیشبینی با منبع مشترک حقیقت حرکت کنیم. بهبودها فقط فنی نبودند – همکاری را آسانتر کردند."
– مونیک گاندی، مدیر، مهندسی ابر
عامل انسانی در تغییر فنی
همکاران اشاره میکنند که موفقیت این تغییر صرفاً فنی نبود. GitOps در ابتدا برای همه آشنا نبود، و بخشی از تلاش شامل قابل فهم و قابل استفاده کردن رویکرد برای مهندسینی بود که سالها را در گردشهای کاری دستوری سپری کرده بودند.
"معماری قوی بود، اما آنچه برجسته بود نحوه فعالسازی پذیرش بود. اختصاص زمان برای راهنمایی مهندسین از طریق مدل به این معنی بود که اکنون هر کسی در تیم میتواند بدون نیاز به سالها زمینه انباشته شده، زیرساخت را مستقر یا تغییر دهد. مردم نه فقط 'چگونه' بلکه 'چرا' را درک کردند."
– لابش پوتدار، مدیر، مهندسی ابر
در نتیجه، بهروزرسانیهای زیرساختی – که قبلاً به عنوان پرخطر تلقی میشدند – معمول شدند. تیمها اعتماد به نفس در اجرای ارتقاهای برنامهریزیشده به دست آوردند زیرا سوابق استقرار قابل مشاهده و قابل تکرار بودند.
امنیت به عنوان یک اثر جانبی
بهبودهای امنیتی به همان اندازه قابل توجه بودند. قبلاً، حفظ برنامههای وصله سازگار چالشبرانگیز بود زیرا پیکربندیهای استقرار در سراسر سازمان توزیع شده بودند نه متمرکز. انتقال تیم به طور طبیعی تداوم پیکربندی را دشوارتر میکرد.
با همه پیکربندیها که اکنون کنترل نسخه دارند، تیم سرانجام میتوانست برنامههای بهروزرسانی سازگار را حفظ کند و دقیقاً دنبال کند که چه چیزی در کجا اجرا میشود. یکپارچگی با HashiCorp Vault تضمین کرد که اسرار به طور سازگار در سراسر زیرساخت با چرخش مناسب و کنترلهای دسترسی مدیریت میشوند – برای یک شرکت SaaS مراقبتهای بهداشتی که در محیطهای تنظیمشده فعالیت میکند حیاتی است.
درسهای کلیدی برای رهبران مهندسی
الگوهای فنی مورد استفاده در تحول به خودی خود جدید نیستند – Helm، Argo CD و Vault ابزارهای شناخته شده هستند. به گفته دانیلو، تأثیر از نحوه ساختار و معرفی آنها حاصل شد: به تدریج، با توجه به تجربه توسعهدهنده و عادتهای سازمانی.
برای سایر رهبران مهندسی که تغییر مشابهی را در نظر میگیرند، دانیلو سه درس را برجسته میکند:
با طراحی مخزن شروع کنید. ساختار پوشه و قراردادهای نامگذاری بر نگهداری بلندمدت تأثیر میگذارند. درست کردن این موضوع در اوایل، بازسازی قابل توجه را بعداً ذخیره میکند.
فقط آنچه را که تیمها میتوانند درک و پشتیبانی کنند خودکار کنید. پذیرش بیشتر از پیچیدگی اهمیت دارد. یک سیستم سادهتر که مهندسین واقعاً از آن استفاده میکنند ارزشمندتر از یک سیستم ظریف است که از آن اجتناب میکنند.
فضا برای انتقال تدریجی باقی بگذارید. انتقال همه چیز به یکباره به ندرت پایدار است. پذیرش تدریجی به تیمها اجازه میدهد اعتماد به نفس ایجاد کنند و مسائل را قبل از ترکیب شدن شناسایی کنند.
نگاهی به آینده
این کار تیم پلتفرم Medidata را برای مقیاسپذیری زیرساخت بدون افزایش متناسب در تلاش دستی قرار داد. با افزایش تعداد کلاسترها و برنامهها، مدل اعلانی ارزشمندتر میشود – نه فقط برای سرعت، بلکه برای قابلیت حسابرسی، ورود و سازگاری بلندمدت.
تمرکز اکنون، دانیلو میگوید، بر گسترش همان رویکرد اعلانی به قابلیت مشاهده است – ساخت SLIهای قابل اندازهگیری و هشدار خودکار که قابلیت اطمینان را یک عمل عینی میکند نه موضوع شهود.
"GitOps همه مشکلات را حل نکرد – اما بخشهای معمول زیرساخت را کمتر شکننده و قابل پیشبینیتر کرد. در سازمانهای مهندسی بزرگ، این به تنهایی میتواند کارایی معناداری را باز کند."
– دانیلو میکولا
دانیلو میکولا معمار DevOps و زیرساخت در Medidata Solutions با بیش از ده سال تجربه در ارائه راهحلهای مهندسی رایانش ابری و پلتفرم در صنایع تنظیمشده است. کار او بر ترجمه اصول DevOps به شیوههای قابلیت اطمینان قابل اندازهگیری و قابل تکرار متمرکز است، با تأکید بر گردشهای کاری اعلانی، زیرساخت به عنوان کد، و حاکمیت مبتنی بر قابلیت مشاهده. او تحقیقاتی درباره الگوهای پذیرش GitOps در کنفرانسهای علمی بینالمللی ارائه کرده است. اطلاعات بیشتر در مورد پروژهها و کار فنی او را میتوان در وبسایت شخصی او یافت، که تجربه عملی و رویکرد توسعه محصول او را به نمایش میگذارد.



