بیش از 10 سال از زمانی که یک تحلیلگر Forrester تصور می کرد دنیایی را تصور می کرد که در آن توسعه و استقرار برنامه های کاربردی چنان خودکار شد که دیگر نیازی به نظارت انسانی نداشت. اصطلاح NoOps را ابداع کرد.
امروزه هیچ کس برای اطلاع از عدم تحقق NoOps به هشدار اسپویلر نیاز ندارد. تیمهای فناوری اطلاعات هنوز وظایف زیادی را انجام میدهند و NoOps یک رویا باقی مانده است.
اما مسلماً این یک رویا است که به آرامی به واقعیت نزدیکتر میشود. در حالی که فکر نمیکنم به این زودیها سن NoOps را اعلام کنیم، اما فکر میکنم از سال 2011 تا کنون راه زیادی را در جبهه NoOps پیمودهایم.
NoOps چیست؟ تعریف و تاریخچه مختصر
NoOps حذف کامل عملیات دستی IT از نحوه مدیریت دارایی های IT یک کسب و کار است. البته برای “بدون عملیات” کوتاه است.
زمانی که مایک گوالتیری، تحلیلگر Forrester این اصطلاح را در سال 2011 ابداع کرد، انتقادات گسترده ای از DevOps داشت که در آن زمان یک مفهوم کاملاً جدید بود. به جای تمرکز بر همکاری بین توسعه دهندگان و مهندسان فناوری اطلاعات، همانطور که DevOps تشویق می کند، گوالتیری پیشنهاد کرد که تیم های فناوری اطلاعات در اتوماسیون های عملیات IT سرمایه گذاری کنند.
او نوشت: “من فکر می کنم DevOps یک گام به عقب است.” “NoOps به این معنی است که توسعه دهندگان برنامه هرگز مجبور نخواهند شد دوباره با یک متخصص عملیات صحبت کنند.”
پیشرفت به سمت NoOps
از زمان ظهور این مفهوم، تحلیلگران و تیمهای IT تمایل داشتند به NoOps به همان شیوهای فکر کنند که مثلاً به سفر در زمان فکر میکنند: چیزی که اگر واقعی بود شگفتانگیز بود اما احتمالاً هرگز به طور کامل تحقق نخواهد یافت.
این دیدگاه قطعا منصفانه است. با این حال، به طور متوازن باید به میزان خودکارسازی بسیاری از گردشهای کاری اصلی فناوری اطلاعات در دهه گذشته توجه داشت، به روشی که تقریباً در سال 2011 نبوده است. روشهای زیر را در نظر بگیرید که در آن عملیات فناوری اطلاعات در دهه گذشته ساده شده است:
- تامین زیرساخت: تیمهای فناوری اطلاعات اکنون میتوانند از زیرساخت بهعنوان کد (IaC) برای خودکار کردن تهیه محیطهای در مقیاس بزرگ استفاده کنند. IaC در سال 2011 وجود داشته است، اما به شکلی بسیار ابتدایی تر. فقط شرکت های بزرگ تمایل به استفاده از آن داشتند. امروزه، هر کسی می تواند به راحتی IaC را مستقر کند.
- استقرار برنامه: به یاد دارید زمانی که استقرار برنامهها نیاز به انتقال دستی باینریها از محیط توسعه/تست به محیط تولید داشت؟ اگر حرفه IT شما بیش از یک دهه طول نکشید، احتمالاً اینطور نیست. تقریباً در سال 2011، بهجز برای شرکتهای بزرگ با تیمهای مهندسی نخبه، استقرار دستی برنامهها معمول باقی ماند. امروزه، به لطف پذیرش گسترده اصول DevOps، تقریباً هر کسب و کاری می تواند به طور مداوم نرم افزار را در هر محیطی منتشر کند.
- مدیریت برنامه نرم افزاری: افزودن نمونه های کاربردی و مدیریت تخصیص منابع نیز زمانی وظایفی بود که مهندسان عملیات فناوری اطلاعات عمدتاً با دست انجام می دادند. دیگر نه. امروزه این وظایف توسط پلتفرم هایی مانند Kubernetes به صورت خودکار انجام می شود.
- نظارت و مشاهده: پیگیری آنچه در محیطهای برنامه اتفاق میافتد، سپس استفاده از آن دادهها برای بهبود عملکرد، زمانی مستلزم بررسی پروندههای گزارش و غرق شدن در جریانهای هشدار بود. ممکن است گاهی اوقات امروز نیز چنین باشد، اما نسل مدرن ابزارهای مشاهدهپذیری نه تنها مجموعهای از دادههای نظارتی، بلکه همچنین ارتباط متقابل آن را به روشهایی که بینشهای معنیداری را ایجاد میکند، بسیار خودکار کرده است. این اتوماسیون در قلمرو مشاهده پذیری به این معنی است که برخی از مهندسان فناوری اطلاعات امروزی هرگز به فایل لاگ خام نگاه نمی کنند. آنها فقط به ابزارهای مشاهده پذیری خود نگاه می کنند.
- پاسخ حادثه: وقتی همه چیز خراب می شود، تیم های فناوری اطلاعات دیگر لزوماً نیازی به پاسخ دستی ندارند. بسته به ابزاری که تیم در اختیار دارد، گاهی اوقات می توان حوادث ساده را به طور خودکار اصلاح کرد. حوادث پیچیده ممکن است همیشه نیاز به مداخله انسانی داشته باشند، اما این روزها هر حادثه ای نیاز به پاسخ دستی ندارد.
مجانب NoOps
البته روی دیگر سکه این است که در حالی که بسیاری از جنبههای عملیات فناوری اطلاعات خودکار شدهاند، چالشهای جدیدی پدیدار شدهاند.
به عنوان مثال، مهندسان فناوری اطلاعات امروزی باید در مقابله با یک حجم عظیمی از حملات امنیتی که تعداد کمی از افراد در سال 2011 پیش بینی کردند ابر هیبریدی و چند ابری محیط ها در مقابل، 10 سال پیش، بیشتر موارد هنوز در محل کار میکردند و ماشینهای مجازی که در بالای یک هایپروایزر کار میکردند، بهعنوان یک پشته فناوری پیچیده به حساب میآمدند. این ایده که ماشینهای مجازی میتوانند پیچیدهترین چیز برای مدیریت تیمهای فناوری اطلاعات باشند، امروزه عجیب به نظر میرسد.
جریان بی پایان چالش های جدید فناوری اطلاعات به همین دلیل است که من گمان می کنم NoOps همیشه چیزی شبیه به مجانبی باشد. همانطور که تیمهای IT اتوماسیونهایی میسازند که به آنها کمک میکند برخی از بخشهای کارشان را بهتر انجام دهند، با چالشهای جدیدی روبرو خواهند شد که نمیتوانند آنها را خودکار کنند.
چرا NoOps همیشه نزدیک است اما هرگز نمی رسد
این لزوماً به این معنا نیست که تیمهای فناوری اطلاعات به رویای NoOps نزدیکتر و نزدیکتر نمیشوند. مقدار کاری که مهندسان فناوری اطلاعات باید به صورت دستی انجام دهند، به نظر من، به طور پیوسته در طول زمان کاهش می یابد – و این ارزش قدردانی دارد. NoOps چیزی است که نزدیکتر و نزدیکتر میشود.
اما من فکر می کنم این نیز چیزی است که هرگز به طور کامل به دست نخواهد آمد. صرف نظر از اینکه صنعت فناوری اطلاعات چند ابزار اتوماسیون اختراع کرده است، عملیات دستی همیشه یک ضرورت خواهد بود.