دواپس (توسعه عملیات)

دواپس (DevOps) مجموعه‌ای از روش‌ها، فرایندها و ابزارهایی است که با یکپارچگی توسعه نرم‌افزار و عملیات فناوری اطلاعات به ارائه ارزش برای مشتریان می‌پردازد. این مفهوم در بحث مدیریت تولید جایگاه ویژه‌ای دارد و برای تولید نرم‌افزار بکار می‌رود.

دواپس برگرفته از دو واژه توسعه (DEVelopment) و عملیات (OPerationS) می‌باشد. توسعه و عملیات، دو تیم سابقاً مستقل و کاملاً جدای از هم با اهداف متفاوت جای خود را به تیم‌های چندتخصصی با مهارت‌ها و روش‌ها و ابزار یکپارچه داده است. درواقع؛ «دواپس»، ترکیبی از الگوهایی است که برای بهبود همکاری بین  تیم های توسعه و عملیات بکار می‌رود. همچنین به اهداف و مشوق های مشترک و فرآیندها و ابزارهای مشترک می‌پردازد.

به دلیل تضادهای طبیعی بین گروه های مختلف، اهداف و مشوق های مشترک ممکن است همیشه قابل دستیابی نباشد. با این حال، آنها حداقل باید با یکدیگر همسو باشند. از طریق همسویی میان سازوکارهای توسعه و عملیات می‌توان محصولاتی مناسب با کارایی بالا تولید کرد. نظر به اهمیت تولیدات نرم‌افزاری در عصر فناوری اطلاعات و ارتباطات شاید بتوان گفت توسعه عملیات راهکار غالب در آینده مدیریت تولید است.

تعریف دوپاس

بهتر است دواپس یک تحویل و عملیات چابک نرم‌افزاری (Agile Software Delivery and Operations) توصیف شود. رویکردی که در آن افراد از طریق همکاری و مشارکت با یکدیگر روی ایده‌های بزرگ سازمانی کار می‌کنند، بدون آنکه ارزش پیشنهادی اصلی خود را به دست فراموشی بسپارند.

دواپس یک فرآیند تولید نرم‌افزار است که بر ارتباط و همکاری هرچه بیشتر تیم‌های توسعه نرم‌افزار با تیم‌های اجرایی تمرکز و تأکید دارد. این فرآیند به‌دنبال آن است تا عملیاتی همچون یکپارچه‌سازی، آزمایش، استقرار و یک سری تغییرات بنیادین را خودکارسازی کند.

عملیات توسعه (DevOps) یک «چرخه عمر توسعه عملیات قابل اعتماد» است. این فرایند شامل ادغام توسعه و چندین فعالیت پس از توسعه مانند امنیت و کنترل، تضمین کیفیت (آزمایش) و استقرار عملیات است. با همکاری مشترک، می‌توان به یک جریان کار مداوم و در نتیجه استقرار سریع با بازخورد مداوم مشتری تحقق بخشید.

اهداف اصلی دواپس عبارتنداز:

  • ارائه ارزش کسب­وکار قابل اندازه گیری از طریق ارائه خدمات مستمر و با کیفیت.
  • تأکید بر سادگی و چابکی در همه زمینه ها از جمله فناوری، فرآیند و عوامل انسانی
  • حذف موانع بین توسعه و عملیات
  • ایجاد اعتماد و مالکیت مشترک، حمایت از نوآوری و تشویق همکاری
  • مدیریت انطباق پویا (قوانین دسترسی/اشتراک گذاری در حال تغییر هستند)

چرخه عملکرد دواپس

محصولات نرم‌افزاری پس از گذراندن یک چرخه شامل ۵ گام آماده می‌شوند که عبارتند از:

  • برنامه‌ریزی (Planning)
  • توسعه (Development)
  • آزمایش (Testing)
  • انتشار (Deployment)
  • نگهداری و پشتیبانی (Maintenance)
چرخه دواپس

چرخه دواپس

در این میان دو مرحله برنامه‌ریزی و نگهداری بخش عمده‌‌ای از وقت مهندسان دواپس را از آن خود می‌کنند.

مرحله برنامه‌ریزی
اعضای تیم متشکل از توسعه‌دهندگان، مدیران تولید و… چشم‌اندازها و اهداف پروژه را تعریف و قالب کلی نرم‌افزار را مشخص می‌کنند.

مرحله توسعه
ترکیب کلی کار مشخص شده و اکنون زمان آن رسیده است تا توسعه‌دهندگان کار کدنویسی را آغاز و ویژگی‌های از پیش تعیین شده‌ای که قرار است به محصول وارد شوند را ایجاد کنند.

مرحله آزمایش
طراحان و افرادی که مسئول کنترل کیفیت هستند کدهای نوشته شده را مورد آزمایش قرار می‌دهند و این کدها را به‌منظور ادغام با سورس‌ کد اصلی آماده می‌کنند.

مرحله انتشار
کدهای نوشته شده چگونه و با چه نظمی باید در محصول نهایی وارد شوند و کدام کدها باید در سمت کاربر نهایی به مرحله اجرا درآیند.

مرحله نگهداری
محصول طراحی و منتشر شده به‌طور مداوم پایش، کنترل و بازبینی می‌شود تا هرگونه باگ و مشکلات احتمالی رفع و به‌صورت پیوسته بهبود یابد.

مزایا و معایب دواپس

مزایای متعددی برای دواپس گزارش­ شد ه­است. ارتباطات تنگاتنگ بین تیم ها، افزایش دفعات انتشار نرم‌افزار، پاسخگویی بالا به نیازهای کسب و کار و بهبود کیفیت و قابلیت اطمینان از این دسته هستند. طبق آخرین مطالعات انجام شده در سال ۲۰۱۶، عملکرد دواپس، درآمد و سودآوری سازمان را بهبود بخشیده است. عملکرد تیم‌های دواپس از ۱۶ درصد در سال ۲۰۱۴ به ۱۹ درصد در سال ۲۰۱۵ به ۲۲ درصد در سال ۲۰۱۶ افزایش یافته‌اند.

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

چارچوب‌­های سازگاری دواپس

پس از معرفی فرآیند دواپس، کارشناسان متعددی چارچوب‌ها و استراتژی‌هایی را در مورد نحوه انطباق دواپس در سازمان‌های توسعه نرم‌افزار و نحوه مقابله با چالش‌های مرتبط ارائه کردند. در بین موارد معرفی شده دو چارچوب ذیل محبوب‌­ترین آنها هستند:

چارچوب SNAC

به منظور پرداختن به برخی از مشکلات پیچیده سطح سازمانی در مراحل اولیه انطباق با دواپس در یک سازمان، چارچوب SNAC در سال ۲۰۱۴ منتشر شد. SNAC  مخفف «ذینفعان، نیازها، قابل تغییر و محدودیت ها» است. این دستورالعمل برای سازمان‌ها در مورد چگونگی تعیین اهداف مشترک در میان تیم های توسعه و عملیات و  شناسایی چالش‌های اصلی در تطبیق دواپس، انجام تجزیه و تحلیل سهامداران و درک، مشارکت و توسعه چارچوب از ابتدا ارائه کرده است.

چارچوب CAMS

مدل CAMS چهار عنصر را نشان می‌دهد: فرهنگ، اتوماسیون، اندازه‌گیری و اشتراک‌گذاری که به عنوان ستون‌های دواپس مطرح­شده­اند. اصول چهارگانه چارچوب اجرایی CAMS عبارتنداز:

  • با احترام به یکدیگر به فرهنگ مشترک احترام بگذارید
  • برای از بین بردن خطا تا جایی که ممکن است از اتوماسیون استفاده کنید
  • میزان  پیشرفت را اندازه­گیری کنید
  • بازخورد را آزادانه و بدون سرزنش به اشتراک بگذارید.

خلاصه و جمع‌بندی

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

نکته جدید این است که DevOps یک مشارکت بین توسعه و فعالیت‌های رابط برای استقرار عملیات می‌باشد. یعنی دیگر پس از توسعه تراکنشی نیست. دیگر گیت ریسک پس از توسعه وجود ندارد، بلکه فعالیت‌هایی به عنوان بخشی از توسعه در نظر گرفته می‌شوند. توسعه و سایر واحدهای کسب و کار اکنون به عنوان یک شرکت واحد با هدفی مشترک در خدمت به مشتریان خود عمل می‌کنند. بازار به این مشارکت انگیزه می‌دهد تا نیازهای کسب‌وکارها را برای پاسخگویی به درخواست‌های مشتریان در مورد انعطاف‌پذیری، چابکی و واکنش سریع‌تر نسبت به دنیای «ورود اول به بازار» برآورده کند.