DevOps چیست ؟ | دوآپس چیست و چرا مطرح شد ؟
سال های متمادی در شرکت های توسعه نرم افزار، تیم هایی با هدف کاملا متفاوت به نام تیم توسعه (Development) و تیم عملیات (Operation) وجود داشتند. هدف تیم توسعه ساخت ویژگی های جدید بر روی محصول و در نتیجه تغییرات زیاد روی آن بود، اما هدف تیم عملیات، ثابت نگه داشتن وضعیت موجود سرویس ها برای پایداری بیشتر آن ها بود. بدین ترتیب دیواری بین این دو تیم وجود داشت. (DevOps چیست ؟)
به مرور زمان تیم های توسعه به روش های چابک برای تولید نرم افزار روی آوردند که تعامل همیشگی با مشتری، اعمال تغییرات، و اضافه کردن ویژگی های جدید بر اساس نظر مشتریان قسمتی از این روش های چابک بود.
اما دیوار بین دو تیم Dev و Ops باعث می شد تا عملیاتی کردن ویژگی های جدید توسعه داده شده و تغییرات، به اندازه کافی چابک نباشد. تمرکز روش های چابک توسعه نرم افزار، بر توسعه و تولید نرم افزار بود و کمتر به موضوعاتی مثل استقرار (Deployment) و عملیات (Operation) توجه می کرد.
به دنبال این محدودیت هامفهوم دوآپس (DevOps) مطرح شد و به دنبال این بود که دیوار بین تیم های Dev و Ops را از بین ببرد و با تمرکز بر افزایش تعاملات بین تیمی، موجب افزایش سرعت تحویل ارزش به مشتری شود. پس دوآپس به دنبال این است که ارزش های ایجاد شده در نرم افزار را خیلی سریعتر به دست مشتری برساند
واقعیت اینه که هیچ تعریف مشترکی از DevOps یا دواپس وجود نداره که بر سر اون توافق باشه. در جاهای مختلف تعریف های متفاوتی ارائه شده. من سعی کردم کلیت موضوع را در قالب جملات زیر ارائه کنم. احتمالا در جاهای دیگر هم تعاریفی ارائه میشه که متفاوت هستند.
دواپس چیست ؟ | What is DevOps ?
DevOps یا دِوآپس، مجموعه ای از روش ها، فرایند ها و ابزارهایی است که با تمرکز بر ارتباطات و همکاری و یکپارچگی بین تیم های توسعه، تضمین کیفیت و عملیات، ارزش های تولید شده را سریع و به صورت مستمر به مشتریان نهایی می رساند. ادغام کلمات اختصاری “Dev” و “Ops” به این موضوع اشاره دارد که توسعه و عملیات به عنوان دو تیم مستقل و کاملا جدای از هم، جای خود را به تیم های چند تخصصی با مهارتها، روش ها و ابزار یکپارچه داده است.
یک تعریف ملموس برای کسب و کار
دواپس اتحاد بین افراد، فرایندها و محصولات برای تحویل مستمر ارزش ها (Continuous Delivery of value) به مشتریان نهایی است. Donovan Brown
از جمله الزامات اجرای دواپس می توان به موارد زیر اشاره کرد :
- Continuous Integration
- Continuous Delivery
- Agile Planning
- Application Monitoring
چرا دواپس را اجرا کنیم ؟ | Why should implement DevOps ?
دواپس به تیم ها کمک می کند تا با روش امن تر ، با کیفیت تر، سریعتر و ارزانتر محصول یا سرویس را به مشتریان نهایی برسانند. همیشه حق با مشتری است و از آنجایی مشتریان انتظار انعطاف پذیری و قابلیت اطمینان بیشتری دارند، تیم ها باید بتوانند به روزرسانی های نرم افزار را سریعتر و مطمئن تر انجام دهند، تاثیر به روزرسانی ها را اندازه گیری کنند، و به نیازهای مشتری پاسخ سریعتری بدهند تا در نهایت ارزش بیشتری برای آن ها ایجاد شود. امروزه پلتفرم های ابری مانند مایکروسافت آژور گلوگاه های سنتی را حذف کرده اند و زیرساخت نوینی را ارائه داده اند. نرم افزار در بسیاری از کسب و کارها به عنوان یک مشخصه کلیدی در کسب و کار محسوب می شود. سازمان ها، توسعه دهندگان یا متخصصین IT نمی توانند جنبش دواپس را نادیده بگیرند.
چرا دواپس مهم شد ؟
با پیشرفت هایی که در زمینه Cloud حاصل شد و حرکت تیم ها به سمت روش های چابک توسعه نرم افزار، این نیاز که نسخه های جدید محصول، خیلی سریع به دست مشتریان نهایی برسد، پررنگ تر شد. ارتباط ضعیف بین تیم های توسعه، تضمین کیفیت، و عملیات، باعث شد فرآیند تست، انتشار و تحویل از کارایی لازم برخورداد نباشد و زمان بر باشد. بدین ترتیب با مشاهده هر مشکل در عملیات، هر تیم آن را به تیم دیگر نسبت می داد و آن ها را محکوم می کردند.
دوآپس سعی می کند با نزدیک تر کردن این تیم ها با تمرکز بر تعامل و همکاری بیشتر و حذف دیوار بین آن ها، و همچنین به کمک یک سری ابزار که کارهای تکراری را اتوماتیک می کند، تحویل ارزش به مشتری سریعتر و مطمئن تر انجام شود.
کج فهمی ها در مورد دواپس
- آیا دوآپس یک ابزار یا یک تکنولوژی است ؟
- آیا دوآپس یک فرهنگ است یا یک تیم ؟ یا تنها یک سبک تفکر؟
- آیا دوآپس فقط یک عنوان شغلی است؟
- آیا دوآپس فقط Automation یا Continuous Delivery است؟
- آیا دوآپس به معنی حذف Operation است ؟
- آیا دوآپس فقط به توسعه و عملیات (Dev و Ops) محدود می شود ؟
با توجه به جدید بودن این مفهوم، کج فهمی های زیادی در این مورد وجود دارد، و البته این مخصوص ایران هم نیست. در پست های آتی حتما در این باره بیشتر صحبت خواهم کرد (پست “دوآپس و تصورات اشتباه درباره آن” را ببینید).
چطور دواپس را اجرا کنیم ؟ | How to implement DevOps ?
در پست های بعدی به تشریح این موضوع خواهم پرداخت…