Continuous Delivery یک رویکرد منضبط در تولید نرم افزار است که در آن نرم افزار را به گونه ای تولید می کنیم که می توانیم آن را در هر زمان روی محیط عملیات منتشر کنیم.
چه زمانی در حال انجام Continuous Delivery هستیم؟
زمانی به هدف اصلی continuous delivery می رسیم که بتوانیم از اجرای Continuous integration توسط تیم توسعه،ساخت برنامه های قابل اجرا و نوشتن تست های اتوماتیک و اجرای تست ها روی آن برنامه ها برای یافتن خطاها و مشکلات اطمینان حاصل کنیم.همچنین کدهای نوشته شده روی محیط های شبیه به محیط عملیات به صورت مداوم انتشار پیدا می کنند ،تا اطمینان حاصل کنیم که نرم افزار روی محیط عملیات به درستی کار خواهد کرد.
یک سنجه کلیدی برای اینکه بتوانیم مطمئن شویم که آیا رویکرد Continuous Delivery برقرار باشد این است که فرض کنیم یک فرد از کسب و کار نیاز داشته باشد که ورژن جاری که توسعه داده شده است ،روی محیط عملیات انتشار پیدا کند و ما بتوانیم آن کار را بدون ترس انجام دهیم.
معمولا دو واژه Continuous Deployment و Continuous Delivery ممکن است کمی گیج کننده به نظر برسند.Continuous Deployment به معنی این است که هر تغییری در طول روز به صورت اتوماتیک در محیط عملیات انتشار پیدا می کند.به عبارتی تعداد زیادی پابلیش در طول روز خواهیم داشت.Continuous Delivery نیز به این اشاره دارد که می توانیم به صورت مکرر روی محیط عملیات ،تغییرات را منتشر کنیم اما ترجیح ما و یا کسب و کار این است که این کار اتفاق نیافتد و با نرخ کمتری این کار انجام شود.به عبارتی برای رسیدن به Continuous Deployment نیاز داریم Continuous Delivery را رعایت کنیم.
Continuous Integration به معنای ساخت ،یکپارچگی و تست کدها در محیط توسعه است.
کم کردن ریسک انتشار:تا زمانی که تغییرات به صورت سریع و کوچک انتشار پیدا می کنند ،ریسک تغییرات کم می شود و در صورت بروز خطا می توانیم به راحتی آن ها را فیکس کنیم.
قابلیت اندازه گیری پیشرفت و تعریف دقیق انجام شده:فرض کنید معنی انجام شده (done) به معنای انتشار در محیط عملیات باشد.در این صورت به راحتی می توان پیشرفت در کار را اندازه گرفت.
بازخورد کاربران:بزرگترین ریسک برای نوشتن یک نرم افزار ،ایجاد قابلیت هایی است که کاربر نهایی نیازی به آن ها ندارد.با استفاده از انتشار سریع به کاربران میتوانیم بازخورد سریعتری از کاربران دریافت کنیم و تمرکز را روی ویژگی هایی بگذاریم که برای کاربر نهایی ارزش دارند.
یک راه مناسب برای رسیدن به Continuous Delivery این است که فرایند کنونی تحویل را مدل کنید و سپس گلوگاه ها،نقاط مناسب برای اتوماتیک سازی و نقاطی که باید در آن همکاری ها افزایش یابد شناسایی و برای آنها برنامه ریزی کنید.