کلمه دواپس (devops) ترکیبی از اصطلاحات توسعه (Development) و عملیات (Operation) است که به معنای نشان دادن یک رویکرد مشترک به وظایف انجام شده توسط تیم های توسعه نرم افزار و عملیات در یک شرکت است.
دواپس (devops) در گستردهترین معنای آن، فلسفهای است که ارتباط و همکاری بهتر بین این تیمها و سایرین را در یک سازمان ترویج میکند. دواپس (devops) در ساده ترین تفسیر خود، پذیرش توسعه نرم افزار به روش چابک، اتوماسیون و استقرار و نگهداری زیرساخت قابل برنامه ریزی را توصیف می کند. این اصطلاح همچنین تغییرات فرهنگ سازمانی بر اساس رویکرد چابک را نیز شامل میشود، مانند ایجاد اعتماد و انسجام بین توسعهدهندگان و مدیران سیستمها و همسو کردن پروژههای فناوری با الزامات کسب و کاری دواپس (devops). این مدل می تواند زنجیره تحویل نرم افزار، خدمات، نقش های شغلی، ابزارهای فناوری اطلاعات را تغییر دهد.
از آنجایی که دواپس (devops) یک فناوری نیست، محیط های دواپس (devops) به طور کلی از متدولوژی های رایج استفاده می کنند. این موارد شامل موارد زیر است:
- ابزارهای یکپارچه سازی مستمر (continuous integration) و تحویل مستمر (continuous delivery) یا استقرار مداوم (continuous deployment)، با تأکید بر اتوماسیون فعالیت ها؛
- سیستمها و ابزارهایی که از پذیرش دواپس (devops) پشتیبانی میکنند، از جمله نظارت لحظه به لحظه، مدیریت رویداد، مدیریت پیکربندی و پلتفرمهای همکاری؛
- رایانش ابری، میکروسرویس ها و کانتینرها همزمان با متدولوژی های DevOps پیاده سازی شده اند.
رویکرد DevOps یکی از تکنیکهایی است که تیم های فناوری اطلاعاتی برای اجرای پروژههای فناوری اطلاعات که نیازهای کسب و کاری را برآورده میکنند، استفاده می نمایند. DevOps می تواند با توسعه نرم افزار Agile همزیستی داشته باشد. چارچوب های مدیریت خدمات فناوری اطلاعاتی، مانند ITIL، دستورالعمل های مدیریت پروژه، مانند ناب (Lean) و شش سیگما و استراتژی های دیگر.
برخی از متخصصان فناوری اطلاعات معتقدند که ترکیب ساده Dev و Ops کافی نیست و اصطلاح DevOps باید به صراحت شامل تجارت (BizDevOps)، امنیت (DevSecOps) یا سایر زمینه ها باشد.
دواپس (devops) چگونه کار می کند؟
دواپس (devops) یک متدولوژی است که به منظور بهبود کار در طول چرخه عمر توسعه نرم افزار می تواند مفید باشد. میتوانید یک فرآیند دواپس را بهعنوان یک حلقه بینهایت تجسم کنید که شامل این مراحل است:
- برنامهریزی
- کد
- ساخت
- آزمایش
- انتشار، استقرار
- اجرا
- نظارت
- بازخورد
- طرح
که حلقه را از اول تکرار می کند.
در حالت ایدهآل، دواپس به این معنی است که یک تیم فناوری اطلاعات نرمافزاری را بنویسد که کاملاً نیازهای کاربر را برآورده کند، بدون اتلاف زمان مستقر شود و در اولین تلاش بهطور بهینه اجرا شود. سازمان ها از ترکیبی از فرهنگ و فناوری برای تحقق این هدف استفاده می کنند.
برای همراستا کردن نرم افزار با انتظارات، توسعه دهندگان و ذینفعان در مورد پروژه ارتباط برقرار می کنند و توسعه دهندگان روی به روز رسانی های کوچکی کار می کنند که مستقل از یکدیگر منتشر می شوند.
برای جلوگیری از اتلاف زمان انتظار، تیمهای فناوری اطلاعات از مسیر CI/CD و سایر اتوماسیونها برای انتقال کد از یک مرحله توسعه و استقرار به مرحله دیگر استفاده میکنند. تیمها بلافاصله تغییرات را بررسی میکنند و میتوانند خطمشیهایی را برای اطمینان از مطابقت نسخهها با استانداردها اعمال کنند.
نوشتن سریع نرم افزار آسان است. نوشتن نرم افزاری که کار می کند داستان دیگری است. برای استقرار کد خوب در تولید، پیروان دواپس از کانتینرها یا روشهای دیگر استفاده میکنند تا با نرمافزار از زمان توسعه تا آزمایش و تولید، به یک شیوه رفتار کنند. آنها تغییرات را به صورت جداگانه اعمال می کنند تا مشکلات قابل ردیابی باشد. تیمها برای محیطهای میزبانی و استقرار مداوم به مدیریت پیکربندی متکی هستند. مشکلاتی که آنها در عملیات زنده کشف میکنند منجر به بهبود کد میشوند، این مشکلات معمولا از طریق تحقیقات بیعیب و نقص پس از تولید نرم افزار و کانالهای بازخورد مستمر شناسایی می شوند.
توسعه دهندگان ممکن است از نرم افزار در حال اجرا پشتیبانی کنند، که مسئولیت رسیدگی به مشکلات زمان اجرا را بر عهده آنها می گذارد. مدیران عملیات فناوری اطلاعات ممکن است در جلسات طراحی نرم افزار شرکت کنند و راهنمایی هایی در مورد نحوه استفاده کارآمد و ایمن از منابع ارائه دهند. هر چه متخصصان بیشتری در این مسیر همکاری کنند و مهارتهای خود را به اشتراک بگذارند، بیشتر میتوانند فرهنگ دواپس را تقویت کنند.
دواپس (devops) چه مشکلاتی را حل می کند؟
هر شرکتی با چالشهای خاص خود مواجه است، یکی از مشکلات رایج شامل توسعه نرم افزارهایی است که بیش از حد طول میکشد، نرمافزاری که انتظارات را برآورده نمیکند و سرویسهای فناوری اطلاعاتی که مانع رشد کسب و کار می شوند.
یک پروژه دواپس (devops) می تواند بدون تاخیر، انجام فرآیندهای دستی و بررسی های طولانی و فرسایشی، بسیاری از نیازمندی های سازمان را به نرم افزار های در حال اجرا اضافه نماید. زمانهای چرخه کوتاهتر میتواند از تغییر نیازها جلوگیری کند تا آن محصولی که مدنظر مشتریان است، ارائه شود.
دواپس (devops) مشکلات ارتباطات سازمانی و اولویت های تعیین شده بین متخصصین فناوری اطلاعات را حل می کند. برای ساختن نرمافزار قابل اجرا، تیمهای توسعه باید محیط عملیات (Operation) را درک کرده و کد خود را در شرایط واقعی آزمایش کنند.
در یک ساختار سنتی تیم های توسعه و عملیات را در سیلوهای کاری جداگانه ای قرار داده می شوند. این بدان معناست که توسعهدهندگان زمانی که کدشان عملکردی را ارائه میکند، کار را تمام شده می دانند و اگر نسخه تولید شده در محیط عملیاتی شکست بخورد، این وظیفه تیم عملیات است که مشکلات را برطرف کند.
با فرهنگ دواپس (DevOps)، توسعهدهندگان وقتی مشکلی پیش میآید به پاسخ «روی دستگاه من کار کرد» متوسل نمیشوند. تغییرات ایجاد شده در محیط عملیاتی کوچک و قابل برگشت هستند. به علاوه، کل تیم تغییرات را درک می کند، که این ساختار مدیریت رخداد را تا حد زیادی ساده می کند.
با این فرآیند سریعتر که از ایده به نرم افزار عملیاتی است، شرکت ها می توانند بر روی فرصت های بازار سرمایه گذاری کنند. به این ترتیب، دواپس (DevOps) یک مزیت رقابتی برای کسب و کارها فراهم می کند.
تکامل DevOps
Patrick Debois، مشاور توسعه نرم افزار، با نامگذاری یک کنفرانس DevOps Days، در سال 2009 اصطلاح دوآپس (DevOps) را ایجاد کرد. دواپس در واقع یک نقص متدولوژی توسعه نرمافزار چابک (Agile) را برطرف کرد: توسعه نرم افزار به روش تکرارپذیر و سریع لزوماً به استقرار خروجی نرم افزار بصورت سریع و تکرار پذیر منجر نمیشود.
برای درک بهتر این موضوع پیشنهاد می شود دو مقاله چرخه عمر توسعه نرم افزار (Software Development lifecycle) چیست؟ و متدلوژی اجایل چیست؟ نیز مطالعه شود.
همزمان با فشار بیشتر متدولوژی چابک (Agile) به تیم های عملیات، مدیران فناوری اطلاعات در برابر مراحل مدیریت تغییرات در چارچوب ITIL، که گاهی بسیار پر زحمت و بیش از حد پیچیده بود را به چالش کشیدند. ITIL از فناوری اطلاعات پایدار، قابل اعتماد و قابل پیش بینی حمایت می کند، در حالی که Agile از همکاری و تغییر حمایت می کند. رویکرد دواپس (DevOps) با تیم ها در هر دو طرف برخورد کرد. در واقع، سازمانها میتوانند هم ITIL و هم DevOps را داشته باشند، مخصوصاً اگر از فضای ابری استفاده کنند.
مفهوم DevOps سپس با کتاب The Phoenix Project در سال 2013 رایج شد. پروژه Phoenix از یک روایت تخیلی برای نشان دادن مشکلات رایج و کمک به مدیران فناوری اطلاعات در درک مفاهیم و مزایای همکاری و فناوری های مشترک استفاده می کند.
با محبوب شدن دواپس، سازمان ها رویکردهای آن را رسمی کردند. برای مثال، Retailer فروشندگان قابلیتهای فعالسازی DevOps را در ابزارها، از رباتهای گفتگوی مشارکتی گرفته تا مجموعههای CI/CD که در سرویسهای ابری ساخته شدهاند، تبلیغ کردند. مهندس دواپس (DevOps Engineer) به زودی به عنوان یک عنوان شغلی ظاهر شد.
دواپس همچنان به تکامل خود ادامه میدهد، زیرا هوش مصنوعی به همه چیز از ایجاد کد گرفته تا مدیریت رویداد کمک میکند. هوش مصنوعی برای دواپس (AI for DevOps) یا (AIOps) به معنای اتوماسیون هوشمندتر و حتی زمان انتظار کوتاهتر است، بطوری که خروجی های بینظیری از نیاز کسب و کار تا پیشنهادات و راهکارهای فناوری می تواند در این مسیر ارائه شود.
در حالی که DevOps به وضعیت پایداری دست یافته است، همه افراد به مهاجرت کامل به DevOps معتقد نیستند. بسیاری برای پروژههای فناوری اطلاعات درآمدزا به رویکرد دواپس متکی هستند، جایی که آنها بازگشت سرمایه (ROI) را در ابزارها و مهارتهای پیشرو مشاهده میکنند. برای بسیاری از خدمات داخلی IT که نسبتاً پایدار و بالغ هستند، DevOps مزایای قابل توجهی ارائه نمی دهد.
دسترسی کامل به این محتوا برای اعضای حرفه ای و ویژه وبسایت مدیران آینده امکان پذیر می باشد.
اعضای حرفه ای و ویژه می توانند به محتوای اختصاصی تولید شده در وبسایت مدیران آینده دسترسی داشته باشند.
برای آشنایی با خدمات مشترکین وب سایت مدیران آینده می توانید به اینجا کلیک کنید.
نکات کلیدی
DevOps ترکیبی از فلسفهها، شیوهها و ابزارهای فرهنگی است که توانایی سازمان را برای ارائه برنامهها و خدمات با سرعت بالا افزایش میدهد: محصولات در حال تکامل و بهبود با سرعتی سریعتر از سازمانهایی که از فرآیندهای توسعه نرمافزار سنتی و مدیریت زیرساخت استفاده میکنند، به بازار ارائه می شوند.
دواپس (devops) در گستردهترین معنای آن، فلسفهای است که ارتباط و همکاری بهتر بین این تیمهای توسعه نرم افزار (Development) و عملیات (Operation) را در یک سازمان ترویج میکند.