منبع این مقاله
پادکستمدیریت پروژهمدیریت فرایندهای کسب و کار

تعریف دواپس (DevOps) چیست و چه کاربردهایی دارد؟

این مطلب دارای نسخه صوتی می‌باشد:

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

نویسنده
مارک منتلیون، دارنده مدرک کارشناسی ارشد رشته علوم کامپیوتر از دانشگاه تگزاس، نویسنده کتاب «تحلیلگر کسب و کار ۲۰ دقیقه‌ای» و دارنده مدرک CBAP از موسسه بین‌المللی تحلیل کسب و کار IIBA می‌باشد و شرکت مشاوره‌ای با نام منتلیون نیز دارد.
این مطلب نسخه صوتی دارد

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

تعریف دواپس (Devops)

سال‌هاست که ما از چرخه عمر توسعه راه‌حل آبشاری رویس (Royce) در توسعه نرم‌افزار استفاده کرده‌ایم. این رویکرد آبشاری از ساخت و ساز و تولید سرچشمه گرفته و جواب داده است: فرآیند، شامل استخراج “همه” الزامات از قبل، توسعه، طراحی و آزمایش نرم‌افزار است. و در نهایت، نرم‌افزار “تحویل” داده می‌شود و “آماده” برای استقرار می‌باشد.
بنابراین نرم‌افزار “آماده” است، اما هنوز باید از مجموعه‌ای از گیت‌های ریسک استقرار با موفقیت عبور کند. تمرکز این گیت‌ها محافظت از تولید برای اطمینان از وجود یک محیط امن، پایدار و سطح خدمات بالا است. به طور معمول این گیت‌ها عبارتند از:

  • تضمین کیفیت – عملکردی، غیرعملکردی و یکپارچگی داده‌ها
  • امنیت و کنترل – انطباق با استانداردهای صنعت
  • عملیات – انطباق در دسترس بودن بر اساس قراردادهای سطح خدمات

توجه داشته باشید که هر یک از این گیت‌های ریسک پس از توسعه قرار دارند. هر کدام دارای رویه‌های بازبینی سفت و سختی هستند که ممکن است به دلیل آزمایش‌های ناموفق، بازرسی استانداردها، و احتمالاً حتی برآورده کردن درخواست‌ها برای بهبودها و ویژگی‌های جدید، باعث تأخیر یا تنگنا شود.

رویکرد چابک دواپس، با وجود گیت‌های کنترلی

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

اما چرا گیت‌های ریسک؟ چه چیزی باعث شد که این گیت‌ها وجود داشته باشند؟ تجربیات منفی! در اینجا چند نمونه آورده‌ایم:

  • خطاهای عملکردی: نرم‌افزار باید از تولید خارج شود. مدیریت پاسخ می‌دهد و یک گیت تضمین کیفیت جداگانه برای آزمایش مستقل ایجاد می‌کند.
  • نقض امنیتی: باید فوراً از تولید محافظت شود. نقض باعث از دست رفتن ارزش برند و داده‌های مشتری می‌شود. مدیریت پاسخ می‌دهد و یک گیت امنیتی و کنترل جداگانه برای بررسی مستقل و کنترل استانداردهای بهبود یافته ایجاد می‌کند.
  • قطع خدمات: توافق سطح خدمات رعایت نمی‌شود. مدیریت با محدودیت در مدت زمان انتقال و نظرسنجی سالانه خدمات مشتری پاسخ می‌دهد.

نکته اصلی این است که به دلیل تجربیات منفی، اعتماد از دست رفته است. بنابراین، مدیریت تغییرات سازمانی را دنبال کرد که در فرآیند استقرار، انتقال‌ها (مانند شرکت‌های جداگانه) را اضافه نمود. با این حال، مدیریت ممکن است این تغییرات سازمانی را بدون در نظر گرفتن تأثیر بر زمان پیشروی فرآیند استقرار دنبال کرده باشد، و قطعاً بدون بینش نسبت به اکوسیستم «ورود اول به بازار» آینده و نیاز رقابتی به بازخورد مستمر مشتری.

‏DevOps چیست؟

عملیات توسعه (DevOps) یک “چرخه عمر توسعه عملیات قابل اعتماد” است. این فرایند شامل ادغام توسعه و چندین فعالیت پس از توسعه مانند امنیت و کنترل، تضمین کیفیت (آزمایش) و استقرار عملیات است. با همکاری مشترک، می‌توان به یک جریان کار مداوم و در نتیجه استقرار سریع با بازخورد مداوم مشتری تحقق بخشید.
نکته جدید این است که DevOps یک مشارکت بین توسعه و فعالیت‌های رابط برای استقرار عملیات می‌باشد (یعنی دیگر پس از توسعه تراکنشی نیست). در زبان عامیانه، می توان گفت دیگر گیت ریسک پس از توسعه وجود ندارد، بلکه فعالیت‌هایی به عنوان بخشی از توسعه در نظر گرفته می‌شوند. توسعه و سایر واحدهای کسب و کار اکنون به عنوان یک شرکت واحد با هدفی مشترک در خدمت به مشتریان خود عمل می‌کنند. بازار به این مشارکت انگیزه می‌دهد تا نیازهای کسب‌وکارها را برای پاسخگویی به درخواست‌های مشتریان در مورد انعطاف‌پذیری، چابکی و واکنش سریع‌تر نسبت به دنیای «ورود اول به بازار» برآورده کند. نمونه‌هایی از شرکت‌هایی که با DevOps با این چالش مواجه شده‌اند عبارتند از: فیسبوک، نتفلیکس، گوگل، آمازون. این شرکت‌های جهانی می‌توانند به معنای واقعی کلمه هزاران به روز رسانی نرم‌افزار را به صورت روزانه از طریق Dark Launching پیاده‌سازی کنند. اندازه‌گیری‌های بهبود آن‌ها با پیاد‌ه‌سازی DevOps عبارتند از:

  • استقرار مکررتر با زمان‌های کوتاه‌تر
  • چند شکست با بازیابی سریع‌تر
  • اتوماسیون بالای استقرار

ما به دواپس اعتماد می کنیم

اما در DevOps، مشارکت بر اساس اعتماد یک شرط اساسی است، اما تنها شرط لازم نیست. DevOps شامل شیوه‌های زیر است:

ـ ناب: از بین بردن اتلاف در یک جریان با ارزش مداوم؛ جریان ارزش در این حالت دنباله‌ای از فعالیت‌های توسعه از طریق استقرار عملیات است. 

ـ چابک

  • توسعه تکراری و افزایشی ویژگی‌های نرم‌افزار
  • قابلیت مشاهده فعالیت‌های کاری در یک جریان با ارزش مداوم از طریق بورد کانبان با محدودیت‌های کار در حال انجام (WIP)

ـ تفکر سیستمی: مشاهده کل فرایند (به صورت جامع)، نحوه تاثیر هر فعالیت بر کل جریان ارزش

ـ یک زنجیره ابزار از محصولات حمایتی با هدف خودکار کردن زیرساخت‌های افزایشی برای توسعه و نصب نرم‌افزار از قبیل

  • Git: کنترل نسخه و عقب‌نشینی
  • Gradle: ایجاد کد و بسته‌بندی
  • JUnit: کد آزمایشی
  • Jenkins: ادغام درجات
  • Puppet: استقرار
  • Nagios: ارزیابی عملکرد

خلاصه دواپس DevOps

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

چند منبع برای مطالعه بیشتر:

  • Kim, Gene, Jez Humble, Patrick Dubois, and John Willis. The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations: IT Revolution Press, LLC, 2016.
  • Kim, Gene, Kevin Behr, and George Spafford. The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win: IT Revolution Press, LLC, 2014.
  • Kotter, John P., Leading Change, Harvard Business Review Press, September 1996.

مجموعه

دواپس (DevOps)


نوشته های مشابه

1 سوال یا دیدگاه درباره “تعریف دواپس (DevOps) چیست و چه کاربردهایی دارد؟”

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بستن