پروژه DevOps: شکستن موانع Development-Operations

  • برچسب ها

    deploy, DevOps, Operation, آزمایش, ابزار, ابزارها, اتوماسیون, ارتباطات, انتشار, اهداف, اولویت بندی, برنامه ریزی, بهره وری, پشتیبانی, تحویل, تیم, ساخت, سرعت, شفافیت, طراحی, عملیات, فرایند, فرهنگ, کیفیت, مزایا, مسئولیت, مشترک, همکاری, همکاری متقابل

  • تاریخ

    27 آذر, 1398

DevOps

DevOps چیست؟

DevOps مجموعه ای از شیوه های اتوماسیون سازی فرایندها بین ساخت نرم افزار و تیم های IT است تا بتوانند سریع تر و با قابلیت اعتماد بیشتر نرم افزار بسازند، تست کنند و انتشار دهند. مفهوم DevOps به خاطر وجود فرهنگ همکاری بین تیم ها که از لحاظ تاریخی در سیلوهای وابسته عمل می کرد، ایجاد شد. مزایای مورد نظر شامل افزایش اعتماد، انتشار سریع تر نرم افزار، توانایی حل سریع مسائل حیاتی و مدیریت بهتر کارهای برنامه ریزی نشده، است.

در اصل، DevOps یک فرهنگ، جنبش و فلسفه است.

در حقیقت نوعی همکاری بین ساخت (Development) و عملیات (Operation) است که روی تغییر در شیوه فکر، همکاری بهتر و ادغام قوی تر تأکید می کند. این اصل باعث انسجام چابکی، تحویل مداوم، اتوماسیون و موارد بیشتر می شود تا به تیم ساخت و عملیات کمک کند تا کاراتر باشند و سریع تر نوآوری داشته باشند در ضمن تحویل ارزش بیشتر به شرکت و مشتریان.

تاریخچه DevOps

جنبش DevOps بین سال های 2007 و 2008، هنگامی که عملیات IT و انجمن های ساخت نرم افزار درباره حس شان در خصوص میزان اخلال در صنعت صحبت کردند، شروع به شکل گیری کرد.

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

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

آن ها بر این باور بودند که قطعاً راه بهتری وجود دارد. بنابراین دو انجمن به هم ملحق شد و شروع به بحث کردند.

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

زیرساخت ها به عنوان کد به ما این امکان را می دهند که فرایند ساخت را بدون افزودن شخص جدید به تیم، ده برابر سریع انجام دهیم.

مزایای DevOps

همکاری و اعتماد

فرهنگ اولین عامل موفقیت در DevOps است. ساخت فرهنگی از مسئولیت های مشترک، شفافیت و بازخورد سریع پایه و اساس هر تیم DevOps با عملکرد بالاست.

تیم هایی که به طور مستقل کار می کنند اغلب به سیستم فکری DevOps پایبند نیستند. سیستم فکری آگاه بودن از این حقیقت است که چگونه عملکرد شما نه تنها روی تیم خودتان بلکه بر روی تمامی تیم های درگیر در فرایند ساخت اثر می گذارد. فقدان میدان دید و اهداف مشترک مانع از برنامه ریزی بهم وابسته، اولویت های نامتعارف، انگشت اتهام و ذهنیت “مشکل ما نیست” که باعث کاهش سرعت و کیفیت عمومی می شود. DevOps تغییر در شیوه نگریستن به کل فرایند ساخت و شکست موانع بین Dev (ساخت) و Ops (عملیات) می شود.

انتشار سریع تر و هوشمندانه تر کار کردن

سرعت همه چیز است. تیم هایی که از شیوه DevOps استفاده می کنند سریع تر و با کیفیت و ثبات بیشتر منتشر می کنند.

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

سرعت بخشیدن به زمان حل

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

اگر مسائل اساسی سریعتر حل نشوند، رضایت مشتری با شکست مواجه می شود. مسائل اساسی در نبود ارتباطات، درز پیدا می کند که منجر به افزایش تنش و ناامیدی میان تیم ها می شود. ارتباطات آزاد به تیم های Dev و Ops کمک می کند تا بتوانند مشکلات را حل کنند، رویدادها برگزار کنند و باعث انتشار سریع تر تبلیغات دهان به دهان می شود.

مدیریت بهتر کارهای برنامه ریزی نشده

کارهای برنامه ریزی نشده حقیقتی است که هر تیمی با آن مواجه می شود – واقعیتی که اغلب بر روی بهره وری تیم اثر می گذارد. با فرایندهای موجود و اولویت بندی شفاف، تیم های Dev و Ops بهتر می توانند در حال ادامه تمرکز بر کارهای برنامه ریزی شده، کارهای برنامه ریزی نشده را مدیریت کنند.

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

فرهنگ

خلاصه ای از فرهنگ DevOps را می توان در واژه “همکاری” خلاصه کرد. و اگر بخواهیم مفهوم آن را در دو کلمه بگنجانیم از “همکاری متقابل” استفاده می کنیم.

تمامی ابزارها و اتوماسیون دنیا بدون تمایل بخش های توسعه و متخصصان IT/Ops برای همکاری با یکدیگر، بی فایده خواهند بود. به این خاطر که DevOps مشکلات تجهیز را حل نمی کند، بلکه مشکلات افراد را حل می کنند.

اتوماسیون سازی

سرمایه گذاری در اتوماسیون سازی موجب حذف کارهای دستی تکراری، باعث ایجاد فرایندهای قابل تکرار و ایجاد سیستم های قابل اعتماد می شود.

ساخت، آزمایش، deploy و تهیه اتوماسیون اولین گام های شروع متداول برای تیم هایی است که هنوز در محل مستقر نیستند. چه دلیلی بهتر از ساخت سیستمی است که برای برنامه نویسان، تست کنندگان و operator ها منفعت ایجاد می کند؟

تیم هایی که تازه با اتوماسیون شروع به کار می کنند با تحویل مداوم آغاز می کنند: شیوه اجرای هر کد از طریق نوع هر تست اتومات شده تغییر می کند. گاهی به واسطه زیرساختارهای cloud-based تسهیل می شوند، بعد از آن نتایج موفق دسته بندی می شوند و جهت تولید با استفاده از deploy های اتومات شده ترویج و تبلیغ می شوند.

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

اندازه گیری

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

البته اینکه شما می توانید همه چیزی را اندازه بگیرید بدین معنا نیست که شما باید هر چیزی را اندازه بگیرید.

به اشتراک گذاری

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

این بدان معنا نیست که شما برنامه نویسانی استخدام می کنید و از آن ها انتظار داشته باشید که operator های خوبی نیز باشند. این بدان معناست که برنامه نویسان و operator ها در هر فازی از چرخه اپلیکیشن با هم هماهنگ می شوند.

 

در مقاله بعد به معرفی بهترین ابزارهای DevOps می پردازیم.

منبع