DevOps

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



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


  

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

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


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

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

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

 

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

سالها بعد رویکرد چابک آمد. چابک یک SDLC موفقیت آمیز است که تغییرات را در بر می گیرد. به عنوان روشی بهتر برای مدیریت الزامات ناپایدار و ارائه در زمان کوتاه تر شناخته شده است. و کار می کند؛ این فرایند برای انتخاب “برخی” از الزامات در تکرارهای کوچک و در حین انتخاب “باقی” الزامات تغییر ، و نرم افزار “تحویل داده شده” و “آماده” برای استقرار است. با این حال دروازه های استقرار مانند رویکرد Waterfall همچنان پابرجاست.
چرا دروازه خطر؟ چه چیزی باعث ایجاد این دروازه ها شده است؟ تجارب منفی
در اینجا چند نمونه از آنها بیان شده است:
_ خطاهای عملکردی: نرم افزار باید از تولید خارج شود. مدیریت پاسخگو است و یک دروازه تضمین کیفیت جداگانه برای آزمایش مستقل ایجاد می کند.
_ نقض امنیت: تولید باید بلافاصله محافظت شود. این نقض باعث از بین رفتن ارزش کسب و کار برند و داده های مشتری می شود. مدیریت پاسخ می دهد و یک دروازه امنیتی و کنترل جداگانه برای بررسی مستقل امنیت و کنترل و استانداردهای بهبود یافته ایجاد می کند.
قطع خدمات: توافق نامه سطح خدمات برآورده نمی شود. مدیریت با محدودیت در طول پنجره های مهاجرت و بررسی سالانه خدمات به مشتریان پاسخ می دهد.
نکته اصلی این است که اعتماد به دلیل تجربیات منفی از دست رفته است. بنابراین، مدیریت تغییرات سازمانی را دنبال می کند که باعث تغییر کاربری (مانند شرکت های جداگانه) در فرایند استقرار می شود. با این حال، مدیریت ممکن است این تغییرات سازمانی را بدون در نظر گرفتن تاثیر بر زمان اصلی روند استقرار، و مطمئناً بدون بینش در مورد آینده اکوسیستم “اول در بازار” و نیاز رقابتی به بازخورد مداوم مشتری، انجام داده باشد.

‏DevOps چیست؟

عملیات توسعه (DevOps) یک “چرخه عمر توسعه عملیات قابل اعتماد” است. این فرایند شامل ادغام توسعه و چندین فعالیت پس از توسعه مانند امنیت و کنترل، تضمین کیفیت (آزمایش) و استقرار عملیات است. با همکاری مشترک، می توان یک جریان کار مداوم و در نتیجه استقرار سریع با بازخورد مداوم مشتری تحقق بخشید.
نکته جدید این است که DevOps مشارکت بین فعالیت های توسعه و رابط جهت استقرار عملیات است. دیگر دروازه های خطر پس از توسعه وجود ندارد، اما فعالیت هایی به عنوان بخشی از توسعه وجود دارند. واحد توسعه کسب و کار و سایر آنها اکنون به عنوان یک شرکت واحد با هدف مشترک به مشتریان خود خدمت می کنند. بازار این مشارکت را به منظور پاسخگویی به نیازهای کسب و کار برای پاسخگویی به درخواست های مشتری نسبت به انعطاف پذیری، چابک تر و واکنش سریع تر در دنیای بازار ایجاد می کند.
نمونه هایی از شرکت هایی که با DevOps با این چالش روبرو بوده اند عبارتند از: Facebook، Netflix، Google، Amazon؛ این شرکت های جهانی می توانند به معنای واقعی کلمه روزانه هزاران نسخه نرم افزاری را از طریق راه اندازی دارک مستقر کنند. اندازه گیری های بهبود آنها با اجرای 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.

 



1399/11/28 18:17*آرشیو*

Copyright © I.R.IRAN OMEGA SOFTWARE SHAFAGH

کليه حقوق خبری و تصويری سايت متعلق به شرکت امگا نرم افزار شفق می باشد.