چرا DevOps؟ آیا برای استفاده از DevOps ضرورتی وجود دارد؟
پس از برگزاری چندین کارگاه آموزشی مرتبط با DevOps، هنوز هم کم و بیش با این سئوال که DevOps چیست و چه کاربردی برای ما خواهد داشت مواجه میشوم و برای پاسخ به این سئوال ترجیح دادم تا نوشته کوتاهی را در اینجا برای شما به اشتراک بگذارم.
برای اینکه بتوانم به سئوالاتی که در بالا مطرح شد به خوبی پاسخ بدهم لازم است تا با شما، شرایط امروز سازمانها را مرور کنیم. توقعی که تمامی سازمانها از مجموعه فناوری اطلاعات خود دارند این است که به عنوان یک پیشران تاثیر گذار در خدمت سازمان بوده و با تسهیل فرآیندها و فعالیتهای سازمانی بتواند به افزایش بهرهوری در سازمانها کمک کنند. این تسهیل میتواند با ارائه یک ابزار فناورانه، یک سیستم اطلاعاتی و یا هر مکانیزم دیگری صورت پذیرد. اما با یک نگاه منصفانه در اغلب شرکتها و سازمانها میتوان نتیجهگیری کرد که شرایط چندان هم باب میل سازمانها و مدیران ارشد آنها نیست. اگر به عنوان مثال تمرکز را روی ارائه سیستمهای اطلاعاتی از سوی واحدهای فناوری اطلاعات قرار دهیم، خواهید دید که در اغلب موارد این سامانهها بسیار با تاخیر، با کیفیت پایین و با قابلیتهای محدود به سازمان ارائه میشوند! بروزرسانیها و ایجاد قابلیتهای جدید در سامانه نیز، پس از درخواست مشتری همواره به کندی و همراه با مجموعهای از مشکلات جانبی به انجام خواهند رسید.
حالا با در کنار هم قرار دادن وابستگی شدید سازمانها به فناوری اطلاعات و وضعیت مورد اشاره میتون نتیجهگیری کرده که نه تنها تسهیلی در روال فعالیتهای سازمان ایجاد نشده بلکه بروز وقفهها و تاخیرهای مکرر، باعث کندی و کاهش بهرهوری نیز گردیده است.
پس اگر بخواهیم بطور کلی برخی از مشکلات موجود در فضای فناوری اطلاعات سنتی را بصورت لیست جمع آوری کنیم میتوانیم به مواردی مانند اینها اشاره کنیم:
- خروجی با کیفیت پایین
- تاخیر در ارائه بازخورد به نیازها و تغییرات بوجود آمده
- بروزرسانیهای به ندرت و با فواصل زمانی طولانی
- عدم هماهنگی مناسب بین تیمها و مجموعههای درگیر در ارائه خدمات فاوا
- تغییرات شکست خورده مکرر
حال چه باید کرد؟
راهکارها و بهروشهای متعددی برای بهبود این شرایط معرفی شده اند که DevOps یکی از آنهاست! اگر بخواهم در یک جمله خلاصه کنم که DevOps چیست، میتوانم بگویم DevOps روش عملکرد فناوری اطلاعات در شرکتها و سازمانهایی است که شرایط بالا را ندارند! محصولات با کیفیت را در زمانهای کوتاه به مشتری ارائه میکنند؛ نسبت به تغییرات و خواستههای مشتری به سرعت واکنش نشان داده و محصول بروز شده خود را در اختیار متقاضی قرار میدهند و …
طبیعتا وقتی که از عنوان روش عملکرد در یک سازمان استفاده میکنم این روش را شامل فرهنگ سازمانی، ساختار سازمانی، فرآیندهای سازمانی، ابزارهای مورد استفاده، اصول تعریف شده و مجموعه متنوعی از اقلام دیگر در نظر گرفته ام. تمامی اینها یک شبه به دست نیامده و سازمانهای پیشرو، با محوریت قرار دادن اصل بهبود مستمر توانستهاند تا با ریشه یابی مشکلات و انجام بهینهسازیهای مکرر به شرایط ایدهال امروزی خود دست پیدا کنند.
بطور مثال یکی از موارد کلیدی که همواره در کنار تعریف DevOps شنیده میشود این است که عبارت DevOps از ترکیب دو کلمه Development و Operation به وجود آمده است. واحدهای توسعه و عملیات همواره به عنوان دو واحدی که در فعالیتهای روزمره با هم مشکل دارند شناخته میشوند. دو واحدی که با توجه به اهداف و اولویتهای داخلی خود چندان دل خوشی از یکدیگر نداشته و نتیجه این شرایط، در وضعیتی که بالا به آن اشاره شد نمایان میشود. حال DevOps با ارائه راهکارهایی سعی کرده تا این واحدها و دیگر واحدهای درگیر در حوزه فناوری اطلاعات را به یکدیگر نزدیکتر کرده و نتیجه نهایی را برای ذینفعان بهبود بخشد. این راهکارها در قالب مجموعه از اصول و فرآیندها به سازمانها پیشنهاد شده و آنها میتوانند با بهرهگیری از این اصول و تجدید نظر در ساختار سازمانی، فرآیندهای کاری، مهارتهای فردی پرسنل، اصلاح و بهبود فرهنگ سازمانی و … شرایط عملکردی خود را به سازمانهای پیشرو در حوزه فناوری اطلاعات نزدیک کنند.
در یک کلام، چنانچه میخواهید مسیر سازمانهای پیشرو در حوزه فناوری اطلاعات را دنبال کنید، میبایست اصول DevOps را فرا گرفته و آنها را بکار ببندید.
سازمانهای پیشرو در چه وضعیتی هستند؟
در یکی از همایشهای برگزار شده در سال 2009، John Allspaw از تیم Flickr تجربیات خود و همکارانش را تحت عنوان 10 Deploys Per Dayبرای مخاطبین ارائه کرد! حال شما شرایط تیم و سازمان خود را با وضعیت 10 سال پیش مجموعه Flickr مقایسه کنید (10 بار در روز؟؟). این ارائه که اسلایدهای آنرا را میتوانید در پایین مشاهده کنید به اصولی اشاره دارد که این تیم سعی کرده تا آنها را دنبال کند.
در آخر میتوان به این نکته اشاره کرد که سازمانهای پیشرو با رعایت مجموعهای از اصول و بهروشها که از آنها تحت عنوان DevOps یاد میشود شرایطی کاملا برعکس واحدهای فناوری اطلاعات سنتی با وضعیتی که در ابتدای نوشته اشاره کردم دارند. مثلا:
- خروجی با کیفیت بالا ارائه میکنند
- نسبت به تغییر نیازها و خواسته مشتریان به سرعت واکنش نشان میدهند
- به کرات نسخههای جدیدی از محصولات و خدمات خود را ارائه میکنند
- به ندرت در انجام تغییرات با شکست مواجه میشوند
و بسیاری موارد دیگر که میتوان برای آنها نام برد.
دوره آموزشی مرتبط با DevOps
در حوزه DevOps چندین دوره آموزشی در سطوح مختلف معرفی شده که اولین دوره از این مجموعه DevOps Fundamental است. در دوره DevOps Fundamental ما تلاش میکنیم تا شما را با اصول اولیهای که سازمانهای پیشرو دنبال کردهاند و نتایجی شبیه به مثال بالا برایشان حاصل شده است آشنا کنیم. این دوره برای مخاطبین مقدمهای برای افزایش بهرهوری، کاهش تنش و اصلاح فرهنگ سازمانی خواهد بود. دانشپژوهان میتوانند به کمک نکات اشاره شده در این دوره، گامهای اولیه در راستای بهبود شرایط حاکم بر فناوری اطلاعات در سازمان خود را بردارند.