جهش از تحویل مستمر به استقرار مستمر نیازمند مهارتها، تمرینها و ابزار مناسب است. از این چک لیست پنج نقطه ای برای آماده شدن برای راه اندازی استفاده کنید.
بسیاری از شرکتها عجله کردهاند که یکپارچهسازی مداوم و خطوط لوله تحویل مستمر (CI/CD) را برای سادهسازی گردشهای کاری توسعه نرمافزار خود اجرا کنند. تعداد بسیار کمتری گام اضافی را برای خودکارسازی استقرار مداوم برداشته اند، روشی برای استفاده از خطوط لوله CI/CD برای ایجاد تغییرات مداوم در تولید. قابل درک است.
فکر فشار دادن کد برای تولید به دفعات روزانه یا ساعتی، من را لرزاند. در واقع، چندین سال پیش، مقالهای درباره معایب استقرار مداوم. مقاله دیگری، “چه زمانی باید تیمهای مسئول devops فرکانس استقرار را افزایش دهند، “این فرض را به چالش می کشد که استقرارهای مکرر بهتر هستند.
در طول چند سال گذشته چیزهای زیادی تغییر کرده است، و بسیاری از تیمهای توسعهدهنده دیگر مهارتها، تمرینها و ابزارها را برای خودکارسازی استقرار با کیفیت بالا و قابل اعتماد به کار میگیرند. این مقاله تفاوتهای بین تحویل مداوم و استقرار مداوم را توضیح میدهد، سپس پنج کاری را که تیمهای توسعهدهنده باید قبل از خودکارسازی استقرار مداوم در خطوط لوله CI/CD خود انجام دهند، پیشنهاد میکند.
تحویل مستمر در مقابل استقرار مداوم
Kulbir Raina، رهبر چابک و توسعهدهنده در Capgemini، تعریفی را به اشتراک میگذارد که به ما کمک می کند تحویل مداوم را از استقرار مداوم متمایز کنیم. او میگوید: «تحویل پیوسته جریان خودکار انتشار نرمافزار تا زمان تولید است، در حالی که استقرار پیوسته فرآیند خودکاری است که بسته نرمافزاری را در آن جریان از طریق یک فرآیند از پیش آزمایششده به یکپارچگی پس از پیوسته تولید سوق میدهد».
استقرار خودکار تولید خطرات بیشتری دارد زیرا نتایج بر تجارت، مشتریان و کاربران نهایی تأثیر میگذارد. اگر یک تیم توسعه تصمیم به خودکارسازی استقرار داشته باشد، فرآیند استقرار باید شامل آزمایش مداوم و مدیریت خطاهای قوی باشد. در غیر این صورت، استقرار میتواند مشکلات عملکرد، سیستمهای غیرقابل اعتماد، حفرههای امنیتی و نقصهایی را که در تولید یافت میشود، ایجاد کند.
مایک ساکوتلی، مدیر مهندسی نرم افزار در SPR، می افزاید: “تفاوت اصلی بین سازمانی که تحویل مستمر را انجام می دهد. مدل در مقابل یک مدل استقرار مداوم، سطح بلوغ و پیچیدگی فرآیندهای ساخت و استقرار آنها است.”
تیم های Devops می توانند از چک لیست زیر برای آماده سازی برای ارتقا خطوط لوله CI/CD برای استقرار مداوم استفاده کنند.
۱. مزایای کسب و کار را ارزیابی کنید
استقرار مستمر، به عنوان یک اصل، می تواند در بسیاری از برنامه ها و حتی در قوانینی ترین صنایع اعمال شود. تیم لوکاس، یکی از بنیانگذاران و مدیرعامل Buildkite، میگوید: «استقرار مستمر را میتوان در هر پروژه اتخاذ کرد، و بهترین سازمان ها اهدافی را برای انتقال هر چه بیشتر پروژه ها به این مدل تعیین می کنند. حتی در امور مالی و صنایع تحت نظارت، اکثر پروژه ها می توانند این مدل را اتخاذ کنند. حتی شرکتهای خودروهای خودران را میبینیم که مستقر هستند.»
در حالی که تیمهای devops میتوانند استقرار مستمر را در بسیاری از پروژهها پیادهسازی کنند، سؤال این است که کجا یک مورد تجاری قوی و مزایای فنی قابل توجه ارائه میدهد؟ پروژه هایی که به طور مکرر ویژگی ها و اصلاحات را به کار می گیرند، و در جایی که معماری مدرن اتوماسیون ها را ساده می کند، برای انتقال به استقرار مداوم امیدوارکننده تر هستند.
۲. تیم توسعه
را آماده کنید
لوکاس برخی از پیش نیازهایی را که باید بخشی از فرآیند توسعه نرم افزار قبل از حرکت به یک مدل استقرار مداوم باشد، به اشتراک می گذارد. او میگوید: «استقرار مستمر چابکی واقعی است، سریعترین راه از تغییر کد تا تولید. این امر مستلزم آن است که همیشه شعبه اصلی را در وضعیت قابل حمل نگه دارید، تستهای خودکار و ابزار با کیفیت بالا را که میتوانید به آنها اعتماد کنید و به آنها اطمینان داشته باشید، نگه دارید.”
برخی از مسئولیتها و رشتههای توسعه برای توسعهدهندگانی که به دنبال خودکارسازی استقرار مداوم هستند عبارتند از:
- آزمایش مداوم با پوشش کد کافی برای اطمینان از عدم ایجاد نقص جدید در تغییرات.
- ابزارهای تحلیل کد استاتیک و پویا برای تست امنیت، عملکرد و سایر مشکلات کیفیت کد.
- تعهد به روشهای امنیتی shift-left، از جمله بهترین شیوههای مربوط به امنیت API.
- استانداردهای مشاهدهپذیری در مورد برنامهها و میکروسرویسها.< /li>
- پرچم گذاری ویژگی، به طوری که می توان ویژگی های جدید را روشن و خاموش کرد یا برای زیرمجموعه ای از کاربران کنترل کرد.
Saccotelli میافزاید، «استقرار مستمر بر این اساس است که تیم توسعه درک کاملتری از کد کیفیت داشته باشد تا این فرآیند بتواند موفقیتآمیز باشد. اگر کد ضعیف یا تست نشده باشد، یک سیستم غیرقابل اعتماد ایجاد میکند و به سرعت باگها و آسیبپذیریها را وارد تولید میکند.»
۳. تیم عملیات
را آماده کنید
بنابراین خط لوله CI/CD اجرا می شود و کد جدیدی را برای تولید مستقر می کند. آیا این بدان معناست که تیمهای توسعهدهنده کاملاً مشخص هستند، کارشان انجام شده است و همه میتوانند به نسخه بعدی بروند؟
نه خیلی سریع. علیرغم تمام کارهایی که توسعهدهندگان برای اطمینان از شکسته نشدن ساختها، خودکار کردن تست کد و کنترل کدهای فعال در تولید انجام میدهند، هنوز خطری وجود دارد که استقرار آن میتواند باعث مشکلات تولید شود. نظارت بر خدمات، برنامهها و سیستمهای تجاری یک مسئولیت عملیاتی در devops است و صلاحیتهای آنها برای پشتیبانی از استقرار مستمر قبل از فعال کردن اتوماسیون استقرار شروع میشود. بهترین شیوه ها شامل موارد زیر است:
- از زیرساخت به عنوان کد و کانتینر استفاده کنید تا از پیکربندیهای زیرساختی سازگار بین توسعه، آزمایش، تولید و سایر محیطها اطمینان حاصل کنید.
- استفاده از برنامه- و ابزارهای نظارتی در سطح سیستم که همچنین دادههای مشاهدهپذیری ایجاد شده توسط برنامهها و میکروسرویسها را بارگیری و تحلیل میکنند.
- یک پلتفرم AIOps را انتخاب کنید که نظارت را یکپارچه میکند، هشدارها و دادههای قابل مشاهده در سراسر پشته کامل از برنامهها گرفته تا میکروسرویسها و ذخیرهسازی دادهها و رویدادها را با حوادث قابل مدیریت مرتبط میکند.
- برای کنترل برش و ترافیک به استقرارهای جدید و کاهش خطرات استراتژیهای قطع سختتر، قناریهای آزاد را تنظیم کنید.
- دارای مجموعه ای قوی از ابزارهای امنیتی، از جمله درگاه های API، دیوارهای آتش برنامه های وب، امنیت کانتینر، نظارت بر تهدید، و < a href="https://digitalguardian.com/blog/expert-guide-securing-sensitive-data-34-experts-reveal-biggest-mistakes-companies-make-data" rel="nofollow">پایش داده های حساس< /a> که خطرات را در محیط های برنامه بسیار پویا کاهش می دهد.
۴. ITSM و گردش کار را در میان تیم ها و ابزارها یکپارچه کنید
ما هنوز تمام نشدهایم، حتی با وجود همه صلاحیتهای توسعه و عملیات. بیایید بگوییم که تیم devops کد را متعهد میکند، استقرار مداوم تغییر را به سمت تولید منتقل میکند و ابزارهای نظارت بر عملکرد برنامه در حال اجرا هستند. اعضای تیم توسعه دهنده مناسب چقدر سریع هشدار داده می شوند تا بتوانند حوادث را تریاژ کنند، علت اصلی را بررسی کنند و به سرعت به مشکلات رسیدگی کنند؟
لوکاس به اشتراک میگذارد که “آزمایشهای پوسته پوسته خطر شماره ۱” هنگام حرکت به سمت استقرار مداوم هستند. او ابزارهای غیرقابل اعتماد CI/CD، نظارت ضعیف بر تولید و شیوههای آمادهبهکار، و فقدان مشارکت واقعی بین مهندسی و فناوری اطلاعات را بهعنوان خطرات بیشتر ذکر میکند.
بدون گردش کار و ادغام بین نظارت، AIOps، مدیریت خدمات فناوری اطلاعات (ITSM)، چابک، و ابزارهای ارتباطی، زمان تیم توسعه برای پاسخگویی و حل مشکلات ممکن است از سرعت استقرار خود عقب بماند. این شکاف می تواند لحظات استرس زا ایجاد کند و مشارکت بین توسعه و عملیات را از بین ببرد. بهترین روش این است که مطمئن شوید ابزارهای فناوری اطلاعات و گردش کار یکپارچه هستند، بنابراین تیمهای توسعهدهنده میتوانند با هر مشکلی که استقرار مستمر ایجاد میکند، پاسخ دهند.
۵. دروازه های تصمیم گیری مبتنی بر ریسک و KPI
را تعریف کنید
کریستین بسکت، مدیر بازاریابی محصول در Copado، یک عنصر حیاتی مورد نیاز در استقرار مداوم را ارائه می دهد. او می گوید: «در حالی که اتوماسیون بی پروا می تواند یک سیستم را مختل کند، اتوماسیون مناسب به سازمان ها کمک می کند تا به انعطاف پذیری و ثباتی که برای بهره مندی واقعی از توسعه دهندگان نیاز دارند، دست یابند. وقتی توسعه دهندگان بتوانند کد را به صورت خودکار یکپارچه کنند، همکاری بهبود می یابد. و با سرمایهگذاری در اتوماسیون تست و گیتهای با کیفیت، سازمانها میتوانند سریعتر و با ریسک کمتر نوآوری کنند.”
علاوه بر اتوماسیون آزمایشی، بسکت به پیادهسازی دروازههای با کیفیت اشاره میکند که باید به سایر ارزیابیهای ریسک نیز تعمیم داده شود. هنگامی که یک ساخت باعث استقرار مداوم می شود، دروازه های کیفیت قوانین تجاری را برای تعیین اینکه کدام استقرار می تواند به تولید برود و ممکن است نیاز به بازبینی انطباق یا علامت مدیریت داشته باشد، اجرا می کند.
از دیگر بهترین شیوههای مدیریتی که از استقرار مستمر پشتیبانی میکنند، میتوان به توسعه شاخصهای کلیدی عملکرد (KPIs) و رسمی کردن حلقه های بازخورد، و در حال توسعه استراتژی های ارتباطی.
استقرار مستمر میتواند مزایای زیادی برای کسبوکار و فناوری به همراه داشته باشد، اما تیمهای منضبط توسعهدهنده و سازمانهای فناوری اطلاعات باید قبل از استفاده از اتوماسیون برای افزایش فرکانسهای استقرار، اطمینان حاصل کنند که بهترین شیوهها و ابزارها وجود دارد.
پست های مرتبط
آیا آماده استقرار مداوم در CI/CD هستید؟
آیا آماده استقرار مداوم در CI/CD هستید؟
آیا آماده استقرار مداوم در CI/CD هستید؟