دواپس

توسعهٔ عملیات یا دواپس (DevOps) مخفف «توسعهٔ نرم‌افزار DEVelopment» و «عملیات فناوری اطلاعات OPerationS» است. دواپس، مجموعه‌ای از روشها و فرایندها و ابزارهایی است که با تمرکز بر ارتباطات و همکاری و یکپارچگی بین تیم‌های توسعهٔ نرم‌افزار و عملیات فناوری اطلاعات، ارزش‌های تولیدشده را به‌طور سریع و مداوم به مشتریان نهایی می‌رساند. ادغام کلمات اختصاری «Dev» و «Ops» به این موضوع اشاره می‌کند که توسعه و عملیات، دو تیم سابقاً مستقل و کاملاً جدای از هم، جای خود را به تیم‌های چند تخصصی با مهارت‌ها و روش‌ها و ابزار یکپارچه داده است. هدف، ایجاد فرهنگ و محیط زیستی بوده است که در آن بیلدها و تست‌ها و انتشار نرم‌افزار می‌تواند اتفاق افتد.

 تاریخچه 
در کنفرانس چابک سال ۲۰۰۸، اندرو شفر و پاتریک Debois «زیرساخت چابک» را توصیف کردند. اصطلاح DevOps از طریق یک سری رویداد به‌نام «DevOpsDays» در سال ۲۰۰۹ در بلژیک رایج شد. پس از آن کنفرانس‌هایی با نام DevOpsDays در بسیاری از کشورها در سراسر جهان برگزار شده است.

در سال‌های اخیر محبوبیت DevOps رشد کرده است و الهام‌بخش بسیاری از دیگر جنبش‌های موازی، از جمله OpsDev و WinOps شده است. WinOps هم مظهر همان مجموعه شیوه‌ها و تأکید بر فرهنگ DevOps است؛ اما به‌طور خاص مایکروسافت‌محور شده است.

 بررسی اجمالی 
بندانگشتی|نمودار ون که نشان دهندهٔ DevOps به عنوان تقاطع توسعه (در مهندسی نرم‌افزار) و عملیات و تضمین کیفیت (QA) است
به‌طور سنتی در سازمان‌هایی که واحدهایی بر اساس تفکیک عملکرد وجود دارد، به‌ندرت واحدی با ترکیب و ادغام عملکرد چند واحد به‌وجود می‌آید. اما DevOps ترویج مجموعه‌ای از فرایندها و روش‌ها برای فکرکردن دربارهٔ ارتباط و همکاری،   بین واحدهای توسعه و QA (تضمین کیفیت) و واحد عملیات فناوری اطلاعات است. در برخی سازمان‌ها این همکاری با قراردادن واحد عملیات فناوری اطلاعات در واحد توسعهٔ نرم‌افزار تیمیِ چندعملکردی محقق می‌شود و ممکن است همراه با مدیریت ماتریسی باشد.

 زنجیره ابزار دواپس 
جایگزین=Illustration showing stages in a DevOps toolchain|بندانگشتی|تصویر نشان‌دادن مراحل در یک زنجیره DevOps
به‌دلیل اینکه DevOps تغییری فرهنگی است و همکاری (بین توسعه و عملیات و تست) است، زنجیره ابزار واحدی برای آن وجود ندارد. به‌طور کلی، DevOps شامل ابزار مناسبی است که از یک یا چند گزینه از این دسته‌بندی‌ها تشکیل می‌شود و بازتابی از جنبه‌های کلیدی توسعه نرم‌افزار و روند تحویل است:
 کد: توسعهٔ کد و بازبینی کد، ابزارهای Version Control، ادغام کد؛
 بیلد: ابزار یکپارچه‌سازی مداوم، وضعیت بیلد؛
 آزمون: ابزارهای آزمون مستمر که بازخوردهایی از ریسک‌هایی ارائه می‌دهد که ممکن است در کسب و کار پیش آید؛
 پکیج: Artifact Repository، نرم‌افزار پیش‌عملیات؛
 ریلیز: مدیریت تغییر، تأیید ریلیز، اتوماسیون ریلیز؛
 پیکربندی: پیکربندی و مدیریت زیرساخت، ابزار زیرساخت کد؛
 پایش: برنامهٔ نظارت بر عملکرد نهایی تجربهٔ کاربر.

 تصورات اشتباه دربارهٔ دوآپس 
شاید به‌دلیل جدیدبودن و چندبعدی‌بودن واژهٔ دوآپس است که کژفهمی‌ها و تصورات اشتباهی از آن وجود دارد:
 آیا دوآپس یک ابزار است؟
 آیا دوآپس یک تکنولوژی است؟
 آیا دوآپس یک تیم است؟
 آیا دوآپس فقط یک فرهنگ است؟
 آیا دوآپس فقط Automation است؟
 آیا دوآپس فقط یک عنوان شغلی است؟
 آیا دوآپس فقط یک سبک تفکر است؟
 آیا دوآپس فقط Continuous Delivery است؟
 آیا دوآپس به‌معنی حذف Operation است؟
 آیا دوآپس فقط به توسعه و عملیات (Dev و Ops) محدود می‌شود؟
 آیا دوآپس به همه‌چیز در همه‌جا مربوط می‌شود؟

 منابع 

رده:توسعه نرم‌افزاری چابک
رده:فرایند تولید نرم‌افزار
رده:مدیریت فناوری اطلاعات