عملیات توسعه (DevOps) یک “چرخه عمر توسعه عملیات قابل اعتماد” است. این فرایند شامل ادغام توسعه و چندین فعالیت پس از توسعه مانند امنیت و کنترل، تضمین کیفیت (آزمایش) و استقرار عملیات است. با همکاری مشترک، میتوان به یک جریان کار مداوم و در نتیجه استقرار سریع با بازخورد مداوم مشتری تحقق بخشید.
نکته جدید این است که DevOps یک مشارکت بین توسعه و فعالیتهای رابط برای استقرار عملیات میباشد (یعنی دیگر پس از توسعه تراکنشی نیست). در زبان عامیانه، می توان گفت دیگر گیت ریسک پس از توسعه وجود ندارد، بلکه فعالیتهایی به عنوان بخشی از توسعه در نظر گرفته میشوند. توسعه و سایر واحدهای کسب و کار اکنون به عنوان یک شرکت واحد با هدفی مشترک در خدمت به مشتریان خود عمل میکنند. بازار به این مشارکت انگیزه میدهد تا نیازهای کسبوکارها را برای پاسخگویی به درخواستهای مشتریان در مورد انعطافپذیری، چابکی و واکنش سریعتر نسبت به دنیای «ورود اول به بازار» برآورده کند. نمونههایی از شرکتهایی که با DevOps با این چالش مواجه شدهاند عبارتند از: فیسبوک، نتفلیکس، گوگل، آمازون. این شرکتهای جهانی میتوانند به معنای واقعی کلمه هزاران به روز رسانی نرمافزار را به صورت روزانه از طریق Dark Launching پیادهسازی کنند. اندازهگیریهای بهبود آنها با پیادهسازی DevOps عبارتند از:
بالاترین سمت در فرآیند دواپس متعلق به مهندس DevOps است که برخی آن را Platform Engineer نیز می نامند. این شخص بر روی سیستم عامل مورد استفاده در عملیات دوآپس نظارت داشته و آن را پشتیبانی می کند. شخصی که برای این سمت انتخاب می شود باید از تجربه کافی برخوردار بوده و به خوبی با سیستم های عامل و چگونگی ادغام آن ها در فرآیندهای کسب و کار آشنایی داشته باشد.
درواقع مهندس دواپس شخصی است که زیرساخت IT را طبق نیاز کد نرم افزار پشتیبانی شده، مدیریت کند.
زمانی که شما شروع به کار کنید، تعریف و برنامهریزی اهداف، نیازها و داشتهها از اهمیت زیادی برخوردار است. تعریف اهداف و برنامههای کاری به صورت بخش بندی شده، این امکان را برای توسعه دهندهها فراهم خواهد کرد تا نیازهای توسعه نرم افزاری و روشهای رسیدن به آن را تحلیل کرده و به راه حلهای عملی دست پیدا کنند.
کدنویسی بخش جذاب ماجرا و قسمت جدایی ناپذیر کار ما در دواپس است و در آن باید کدهای بهینه شده به کار توسعه نرم افزاری کمک کنند. استفاده از ابزارهای مدیریت نسخه مانند گیتهاب و گیتلب در این مرحله اهمیت زیادی خواهد داشت.
کدهای توسعه داده شده باید به فایلهای اجرایی و قابل استفاده تبدیل شوند و این فرآیند شامل کامپایل کدها است که پس از آن عملیات تست و پیادهسازی دنبال خواهد شد. استفاده از ابزارهای ورژن کنترل و یکپارچه سازی در این مرحله به کیفیت کار کمک عالی خواهد کرد.
مرحله تست نرم افزاری بخش مهم اما چالش برانگیزی است که برای کاهش ریسک نرم افزار خروجی و عملیات باید دنبال شود. تستهای خودکارسازی شده این اطمینان را خواهد داد که هیچ گونه خطا و باگ نرم افزاری وجود ندارد و کیفیت کاری مطابق برنامه خواهد بود.
مرحله انتشار پس از کدنویسی و اطمینان از نبود خطاهای نرم افزاری دنبال خواهد شد و رسیدن به این مرحله به معنای پیادهسازی نرم افزار خواهد بود.
پیادهسازی و پیکربندی پس از انتشار نرم افزار و کدهای نوشته شده، بخش اساسی ماجرا است که دارایی دیجیتال باید به صورت بهینه روی زیر ساخت مورد نظر پیاده شود. توجه به مشکلات بهینهسازی و رفع آنها اهمیت زیادی در این مرحله دارد.
مانیتور کردن امکان نظارت روی مسائل و باگهای نرم افزاری را فراهم خواهد کرد و مسئولان نظارت میتوانند به سرعت و در کمترین زمان ممکن خطاها را تشخیص داده و آن را رفع کنند.
CALMS در واقع راهنمایی برای کشف و شناخت فرآیند DevOps می باشد. این راهنما به طور کلی شامل 5 قسمت است که در ادامه هر یک از آن ها معرفی می کنیم:
دوآپس در حالت کلی مفهومی از یک فرهنگ سازمانی است. از این رو برای راه اندازی آن باید مرز میان افراد و تیم ها در سازمان از بین برود. افراد باید تعامل کارسازی با یک دیگر داشته و در پی رسیدن به هدفی مشترک باشند. قسمت Culture به بیان این می پردازند که با وجود مرزبندی میان اعضای شرکت نمی توان فرآیند دواپس را پیاده سازی نمود.
برای اجرای کامل و بدون کاستی سیستم دواپس در سازمان باید از ابزارها کمک گرفت. Automation در رابطه با ابزارهای CI مانند Contious Deployment و Ontinuous Integration صحبت می کند. این راهنما به شما آموزش می دهد که انجام دادن کارها به صورت دستی موجب کاهش سرعت در اجرای مراحل تولید خواهد شد. ضمن این که ممکن است خطاهای بالایی هم در روش دستی وجود داشته باشد.
در بخش Lean می آموزیم که فرآیندهای اضافی جایی در سیستم DevOps ندارند. در واقع این بخش می گوید هر فرآیندی لزوما برای سازمان ارزش آفرین نیست. بنابراین باید فرآیندهای غیرضروری و بدون فایده را از سیستم کاری حذف نمود.
بخش Measurement بر شفاف سازی تمام فرآیندها و اقدامات جهت تولید نرم افزار یا محصول تاکید می کند. در واقع برای اجرای صحیح باید تمام کارهای سیستم کاملا شفاف انجام شود. به این ترتیب یک فرآیند کارآمد، دقیق و منظم خواهید داشت. ابزارهایی مانند Infrastructure Monitoring یا Log Management جهت بهبود شرایط موثر هستند.
Sharing از اشتراک گذاری داده ها و اطلاعات میان گروه ها و تیم های سازمان صحبت می کند. زیرا پیش از روی کار آمدن دواپس ، شکاف موجود میان تیم ها مانع از اشتراک مطالب آموخته شده بین اعضا می گردید. در نتیجه یک اشتباه بارها و بارها توسط افراد مختلف تکرار می شد.
اما در DevOps، مشارکت بر اساس اعتماد یک شرط اساسی است، اما تنها شرط لازم نیست. DevOps شامل شیوههای زیر است:
1ـ ناب:
از بین بردن اتلاف در یک جریان با ارزش مداوم؛ جریان ارزش در این حالت دنبالهای از فعالیتهای توسعه از طریق استقرار عملیات است.
2ـ چابک:
3ـ تفکر سیستمی:
مشاهده کل فرایند (به صورت جامع)، نحوه تاثیر هر فعالیت بر کل جریان ارزش
4ـ یک زنجیره ابزار از محصولات حمایتی با هدف خودکار کردن زیرساختهای افزایشی برای توسعه و نصب نرمافزار از قبیل
حرف آخر:
دواپس نوعی فرآیند تولید نرم افزار است که مبتنی بر همکاری میان اعضای تیم توسعه و عملیات پایه ریزی می شود. هدف از این روش ایجاد هماهنگی و ارتباطات موثر میان توسعه دهندگان و مهندسان اجرایی می باشد. در این روش به روز رسانی نرم افزار کاملا سازگار با زیرساخت های آن صورت خواهد گرفت.