استقرار مستمر
استقرار مستمر ( Continuous Deployment ) جنبه ای از خط لوله تحویل مداوم است که انتقال عملکرد جدید را از یک محیط مرحله به مرحله تولید به طور خودکار انجام می دهد، جایی که برای انتشار در دسترس است. استقرار مستمر (CD) سومین جنبه در خط لوله تحویل مداوم (CDP) چهار قسمتی اکتشاف مستمر (CE)، یکپارچه سازی مداوم (CI)، انتقال مداوم (CD) و انتشار بر اساس تقاضا (شکل ۱) است.
شکل ۱. استقرار مستمر در زمینه CDP
ویژگیها باید قبل از اینکه کسبوکار برای پشتیبانی از انتشار در صورت تقاضا به آنها نیاز داشته باشد، در تولید در دسترس و تأیید شوند. بنابراین، بهینه است که فرآیند استقرار را از انتشار جدا کنیم و تغییرات را قادر میسازیم تا بدون تأثیر بر رفتار سیستم فعلی به سمت تولید حرکت کنند. استقرار مستمر به تیم ها اجازه می دهد تا تغییرات کوچک و تدریجی را به طور مداوم در تولید اعمال کنند. قابلیت استقرار مستمر برای انتشار در صورت تقاضا حیاتی است. به نوبه خود، به قطار انتشار چابک (ARTs) اجازه میدهد تا به فرصتهای بازار با بالاترین ارزش ممکن در کوتاهترین زمان تحویل پایدار پاسخ دهد و به مشتریان این امکان را میدهد تا زمانی که آماده هستند از عملکردهای جدید استفاده کنند.
شیوه های توسعه سنتی استقرار و انتشار را به عنوان یک فعالیت تلقی می کنند. در این مدل، تغییرات اعمال شده برای تولید بلافاصله در دسترس کاربران قرار می گیرد. با این حال، استقرار مستمر، فرآیندهای استقرار و انتشار را از هم جدا می کند.
این تمرین تفکر طراحی و جریان ارزش سریع را با موارد زیر تقویت می کند:
قابلیت هدفیابی برای مشتریان خاص – سازمان را قادر میسازد تا مشتریانی را با عملکرد خاص هدف قرار دهد و به سازمان اجازه میدهد تا تأثیر تغییرات را قبل از اعمال عملکرد برای همه مشتریان ارزیابی کند.
ترویج آزمایش، مانند تست A/B – شیوههای تفکر طراحی، مانند تست A/B، نیازمند توانایی ارائه عملکردهای مختلف به کاربران هدف متمایز، جمعآوری بازخوردی است که به ایجاد تجربه کاربری بهینه کمک میکند.
ارتقاء دسته های کوچک – خودکارسازی CDP (به عنوان مثال، آزمایش، ساخت، استقرار) استقرار در دسته های کوچک را از نظر اقتصادی امکان پذیر می کند.
انتشار بر اساس نیازهای تجاری – ART ها زمانی که فرآیند استقرار پیچیده و مستعد خطا است، کمتر منتشر می شوند. سازمانهایی که روی اتوماسیون و بهبود بی وقفه فرآیند سرمایهگذاری میکنند، میتوانند سریعتر و با ریسک کمتری آزاد کنند و چابکی کسبوکار را به طور قابلتوجهی افزایش دهند. به عنوان مثال، یک نسخه می تواند قبل از یک کمپین بازاریابی در تولید مستقر شود و به سازمان انعطاف بیشتری در به حداکثر رساندن تمام جنبه های ارائه ارزش بدهد. برای فعال کردن این قابلیت ها، ART ها بر کاهش هزینه تراکنش و ریسک انتقال تغییرات به سمت تولید با خودکارسازی تمام جنبه های استقرار مداوم تمرکز می کنند. حصول اطمینان از اینکه فرآیند استقرار یک فعالیت قابل پیشبینی و تکرارپذیر بدون حوادث مهم است، به تیمها کمک میکند تا به استقرار مداوم دست یابند. علاوه بر این، بهبود استقرار برای ایجاد جریان ارزش بدون وقفه برای دستیابی به چابکی تجاری بسیار مهم است. برای اطلاعات بیشتر به مقاله ART Flow مراجعه کنید.
چهار فعالیت استقرار مستمر
چهار فعالیت استقرار مستمر را که در شکل ۲ نشان داده شده است.
- استقرار – شیوه های لازم برای استقرار راه حل در یک محیط تولید
- تأیید – اقدامات لازم برای اطمینان از عملکرد تغییرات راه حل در تولید همانطور که در نظر گرفته شده است، قبل از عرضه آنها به مشتریان
- مانیتور – شیوه هایی برای نظارت و گزارش در مورد مسائلی که ممکن است در تولید ایجاد شود
- پاسخ – شیوه هایی برای رسیدگی سریع به مشکلاتی که ممکن است در طول استقرار رخ دهد
شکل ۲. چهار فعالیت انتقال مداوم
استقرار
استقرار انتقال تغییرات به محیط تولید است. در CDP، استقرار تغییرات به طور مداوم انجام می شود. عملکرد جزئی را می توان به صورت تدریجی در تولید پیاده سازی کرد. فرض کنید نقشه داستان کاربر دارای ۲۷ داستان برای پیاده سازی یک گردش کار جدید است. شیوههای قدیمی احتمالاً منجر به همه ۲۷ داستان در یک دسته بزرگ میشوند. در عوض، داستانهای فردی را میتوان در «حالت تاریک» با استقرار مداوم و جابجایی ویژگیها مستقر کرد. وقتی ART مجموعه کامل ویژگیها را به کار گرفت، کسبوکار میتواند انتخاب کند که چه زمانی آنها را برای کاربران عرضه کند.
در حالت ایده آل، خط لوله استقرار، فرآیند استقرار را به صورت خودکار پس از ساخت، ادغام و اعتبارسنجی موفق آغاز می کند. این رویکرد گردش کار را به یک فرآیند کاملاً خودکار با یک کلیک تبدیل می کند، از تعهد کد تا تولید- استقرار. شرکت های بسیار پیشرفته می توانند به طور قابل اعتماد در هر زمان، حتی در دوره های اوج، مستقر شوند. این رویکرد نیاز به کار در تعطیلات آخر هفته، شب ها یا سایر ساعات غیرفعال را برای استقرار از بین می برد. چندین روش به توانایی استقرار کمک می کند:
- راه اندازی تاریک – توانایی استقرار عملکرد جدید در یک محیط تولید بدون انتشار آن برای کاربران نهایی
- تعویض ویژگی – تکنیکی برای تسهیل راه اندازی تاریک با پیاده سازی جابجایی در کد، که امکان جابجایی بین عملکرد قدیمی و جدید را فراهم می کند.
- اتوماسیون استقرار – توانایی استقرار یک راه حل آزمایش شده به طور خودکار از مرحله به مرحله تولید
- استقرار انتخابی – توانایی استقرار در محیط های تولیدی خاص و نه محیط های دیگر بر اساس معیارهایی مانند جغرافیا، بخش بازار و موارد دیگر.
- استقرار سلف سرویس – زمانی که استقرار خودکار تا حدی اجرا می شود، سلف سرویس به یک فرمان اجازه می دهد تا راه حل ها را از مرحله به مرحله تولید منتقل کند.
- کنترل نسخه – حفظ محیط های تحت کنترل نسخه، استقرار و بازیابی سریع را امکان پذیر می کند
- استقرار آبی/سبز – تکنیکی که امکان جابجایی بر اساس تقاضا بین محیط های صحنه سازی و تولید را فراهم می کند
تایید
استقرارها باید از نظر یکپارچگی و استحکام عملکردی قبل از انتشار برای کاربران نهایی تأیید شوند. این دو فرآیند تقریباً به طور همزمان زمانی اتفاق میافتند که کاملاً با هم همراه باشند و تصمیمات بازیابی را به دغدغه اصلی تبدیل میکنند. با این حال، هنگامی که آنها از هم جدا می شوند، فضا برای آزمایش گسترده عملکردهای جدید در تولید قبل از تأیید آن برای انتشار وجود دارد. پس از انتقال به تولید، راه حل ها تحت آخرین مرحله آزمایش قرار می گیرند. به طور معمول، این نیاز به تست دود، تست پذیرش کاربر سبک، و تست استرس و عملکرد دارد که باید در یک محیط تولید رخ دهد. این راستیآزمایی بررسی سلامت عقل لازم را فراهم میکند که رفتار محلول را در زمینه راهحل تولید واقعی آن آزمایش میکند. یکپارچگی مداوم به طور منطقی تضمین می کند که راه حل مطابق انتظار در تولید عمل می کند. با این حال، شگفتی رخ می دهد. زمانی که راستیآزمایی نقصهای حیاتی را نشان میدهد، استقرار باید یا به عقب برگردد یا به سرعت رفع شود تا از آسیب رساندن به محیط تولید یا اختلال در جریان کسبوکار جلوگیری شود.
چهار روش به تأیید صحت پس از استقرار کمک می کند:
- تست تولید – تست راه حل ها در تولید با استفاده از تغییر ویژگی یا راه اندازی “تاریک”.
- تست اتوماسیون – توانایی خودکارسازی تست ها و اجرای سریع و مکرر آنها
- مدیریت داده های تست – مدیریت داده های تست در کنترل نسخه برای اطمینان از سازگاری در تست خودکار
- تست الزامات غیرعملکردی (NFR) – تیمها همچنین ویژگیهای سیستم مانند امنیت، قابلیت اطمینان، عملکرد، مقیاسپذیری و قابلیت استفاده را برای اطمینان از مطابقت NFRها با استانداردهای کیفیت آزمایش میکنند.
نظارت
تأیید اینکه ویژگیهای مستقر در مسیر تولید شکسته نشدهاند، یک بررسی کیفیت قبل از انتشار ضروری است. با این حال، تیم ها همچنین باید اطمینان حاصل کنند که می توانند عملکرد و ارزش یک ویژگی را در طول عمر آن اندازه گیری کنند. بینشهایی که این حلقه بازخورد حیاتی را هدایت میکنند، عمدتاً از قابلیتهای نظارت قوی ناشی میشوند که باید قبل از انتشار وجود داشته باشند. نظارت مؤثر مستلزم آن است که تله متری تمام پشته برای همه ویژگی های مستقر شده از طریق CDP فعال باشد. این تله متری به تیم ها اجازه می دهد تا عملکرد سیستم، رفتار کاربر نهایی، حوادث و ارزش تجاری را به سرعت و با دقت در تولید بررسی کنند. دادههای جمعآوریشده ردیابی و نظارت بر هر ویژگی را فراهم میکند، وفاداری تجزیه و تحلیل ارزش کسبوکار ارائهشده را افزایش میدهد و پاسخگویی به مسائل تولید را افزایش میدهد. در حالی که تیمها نمیتوانند برخی از معیارهای ارزش کسبوکار را تا زمان انتشار جمعآوری کنند، باید بدانند که چگونه اقدامات را قبل از تصمیمگیری برای انتشار به دست آورند. برخی از اقداماتی که به حمایت از این امر کمک می کند عبارتند از:
- تله متری تمام پشته – توانایی نظارت بر مشکلات در کل پشته ای که یک سیستم پوشش می دهد
- نمایشگرهای بصری – ابزارهایی که اندازه گیری های خودکار را نمایش می دهند
- نظارت فدرال – نظارت تلفیقی در سراسر برنامهها در راهحلی که دیدی جامع از مشکلات و عملکرد ایجاد میکند.
پاسخ
توانایی پاسخگویی به مسائل پیشبینینشده تولید و بازیابی از آن برای حمایت از استقرار مستمر و سادهسازی CDP حیاتی است. دلایل واضح است: مشکلات تولید مستقیماً بر مشتریان و کاربران نهایی تأثیر می گذارد، بنابراین ارزش راه حل های مستقر شده می تواند به سرعت در هنگام بروز مشکلات کاهش یابد. مشکلات تولید باعث دوباره کاری می شود – اصلاحات، وصله ها، توسعه مجدد، آزمایش مجدد، جابجایی مجدد و غیره. که جریان طبیعی ارزش را از طریق خط لوله مختل می کند. از آنجایی که مسائل تولید می تواند به کارایی تحویل و ارزش کمتر آسیب برساند، تیم ها به توانایی شناسایی مشکلات به طور فعال و بازیابی سریع نیاز دارند. همانطور که با میانگین زمان بازیابی (MTTR) اندازه گیری می شود، بازیابی سریع یکی از قابل اعتمادترین شاخص های پیشرو بلوغ بالای DevOps است. بازیابی همچنین یکی از پنج عنصر DevOps است. هدف از پاسخگویی و بازیابی شناسایی مسائل بالقوه قبل از تبدیل شدن به حادثه و جلوگیری از تأثیرگذاری آنها بر عملیات تجاری است.
این قابلیت مستلزم شناسایی مشکلات داخلی قبل از کشف آنها توسط کاربران نهایی، شناسایی سریع علل ریشهای و بازیابی خدمات با رویههای به خوبی تمرین شده است.
در مقابل، ایجاد تغییرات عجولانه و واکنشی مستقیماً در سیستمهای تولید – «فقط برای روشن نگه داشتن چراغها» – باعث ایجاد تفاوتهای کد منبع و پیکربندی بین محیطها، تغییرات تأیید نشده و ریسک طولانیمدت میشود.
چندین روش از توانایی پاسخگویی و بازیابی از مشکلات تولید پشتیبانی می کند:
- تشخیص پیشگیرانه – تکنیکی برای ایجاد پیشگیرانه خطا در راه حل برای شناسایی مشکلات و موقعیت های بالقوه قبل از وقوع. به عنوان مثال، Chaos Monkey [1] که توسط Netflix توسعه داده شده است، یک ابزار منبع باز است که به طور تصادفی نمونههایی را در تولید خاتمه میدهد تا اطمینان حاصل شود که مهندسان خدمات خود را به گونهای اجرا میکنند که در برابر خرابیهای نمونه مقاوم باشند.
- همکاری بین تیمی – طرز فکر همکاری در سراسر Value Stream برای شناسایی و حل مشکلات در صورت بروز
- پخش مجدد جلسه – تتوانایی بازگرداندن سریع یک راه حل به محیط قبلی یا رفع سریع یک مشکل از طریق خط لوله بدون نیاز به برگشت
- زیرساخت غیرقابل تغییر – این مفهوم به هیچوقت اصلاح سرورها یا ماشینهای مجازی (VM) پس از استقرار اشاره دارد. در عوض، اگر چیزی نیاز به بهروزرسانی داشته باشد، یک سرور جدید از یک تصویر با تغییرات مناسب ساخته میشود.
- کنترل نسخه – محیط ها باید تحت کنترل نسخه نگهداری شوند تا به سرعت بازگردند پس از اینکه تیم ها نشان دادند که ویژگی ها با موفقیت برای تولید به کار گرفته شده اند و قابلیت های نظارت و بازیابی لازم برای ردیابی و مدیریت ارزش در حال انجام را دارند، مرحله استقرار مداوم CDP را تکمیل کردند. به نوبه خود، این به شرکت این امکان را می دهد که هر زمان که ضمانت داشته باشد آن را آزاد کند.
فعال کردن استقرار مستمر با DevOps
استقرار مداوم شامل فعالیت های عملیاتی حیاتی است که اغلب با “Ops” در DevOps مرتبط است. آنها بر استقرار راه حل ها در محیط های تولید، تأیید یکپارچگی عملکردی آنها و اطمینان از نظارت مؤثر و پشتیبانی پس از انتشار تمرکز می کنند. شکل ۳ نشان می دهد که به DevOps (مرکز) و چندین حوزه تمرین (حلقه های داخلی) استقرار مستمر را امکان پذیر می کند.
هر یک از چهار فعالیت (به رنگ سبز) یک تلاش مشترک است که از تخصص DevOps از چندین رشته برای به حداکثر رساندن سرعت و کیفیت تحویل استفاده می کند. به عنوان مثال، استقرار راهحلها در CDP شامل استفاده از ابزارهایی است که تهیه زیرساختهای تولید را خودکار میکنند، راهحلهای باینری را برای انتخاب اهداف، تأیید عملکرد تولید، ضبط تلهمتری زمان اجرا، و هشدار فعالانه در مورد مسائل را به کار میگیرند. روشها و ابزارهای DevOps این قابلیتها را سادهتر میکنند و به راهحلها اجازه میدهند تا در عرض چند دقیقه به طور کامل برای انتشار بر اساس تقاضا آماده شوند. هر چهار فعالیت مستمر استقرار توسط DevOps فعال میشوند، هرچند با ترکیبهای متفاوتی از شیوههای فنی و ابزار. برای راهنمایی بیشتر در مورد DevOps و چگونگی تسهیل CDP، سری مقالات DevOps را ببینید.
شکل ۳. DevOps استقرار مستمر را امکان پذیر می کند
جهت ارتقاء سطح کیفی مقالات و تکمیل مباحث مربوطه، لطفا نظرات و دیدگاههای خود را در پایان این مقاله درج کنید، همچنین چند مقاله مرتبط با موضوع استراتژی بازاریابی کششی برای مخاطبان سایت شریف استراتژی به اشتراک گذاشته شده است.
در گفتگو ها شرکت کنید.