هزینه بالای Downtime در سیستم های بحرانی

در بخش هایی مانند هوافضا، انرژی، حمل و نقل و مراقبت های بهداشتی، شکست های نرم افزار نه تنها ناراحتی هستند – بلکه می توانند به نتایج فاجعه بار منجر شوند.به عنوان مثال، قطع 2015 بورس اوراق بهادار نیویورک هزینه میلیون ها در معاملات از دست رفته، در حالی که یک نرم افزار در پمپ تزریق بیمارستان می تواند زندگی بیمار را به خطر برساند، حتی خرابی های مهندسی انتقادی می تواند به خطرات آبشار، تنظیم کننده و قانون گذاری آسیب برساند - بدون تغییر سیستم های فنی آن - و تغییر دادن به سیستم های جدید.

اصول بازسازی هسته برای Minimizing Downtime

بازسازی موثر در محیط های بحرانی ماموریت بر سه ستون استوار است: ] حفظ رفتار ] ] تغییر پیشگیرانه و کنترل پیشگیرانه [ رفتار تضمین می کند که هر یک از مراحل اصلاح و اصلاح سیستم عامل را در هر تغییر احتمال یکسان کاهش می دهد.

استراتژی های کلیدی برای بازسازی ایمن

موازی Runs و Shadow Mode

در حالت سایه، اجزای بازسازی شده در کنار سیستم اصلی اجرا می شود، پردازش ورودی های مشابه اما به آرامی دور زدن خروجی های آن. مهندسین مقایسه نتایج برای تشخیص تفاوت بدون تاثیر بر عملیات زنده است، هنگامی که اعتماد به نفس بالا است، اجزای سایه می تواند به وضعیت اولیه ارتقا یابد. این تکنیک به ویژه برای الگوریتم های اصلی یا خطوط لوله پردازش داده که در آن اصلاح مهم است مفید است.

ویژگی های بازی

عینک های کاربردی (یا پرچم) به شما اجازه می دهد تا کد بازسازی شده را پشت یک سوئیچ پیکربندی قرار دهید. مسیر بازسازی شده تا زمانی که به طور صریح روشن روشن شود، غیرفعال باقی می ماند، به تیم ها توانایی فعال کردن آن را به تدریج یا بلافاصله پس بگیرید اگر مسائل بوجود می آیند.در سیستم های بحرانی، عینک باید ثابت (تنظیم در زمان استقرار) به جای پویا برای جلوگیری از رفتار غیر منتظره از تغییرات زمان اجرا.

آزادی های Canary Releases

انتشار می تواند درصد کمی از ترافیک را به سیستم بازسازی شده هدایت کند در حالی که اکثریت در نسخه پایدار ادامه می دهد، این رویکرد اعتبار جهانی واقعی را در زمان تولید فراهم می کند، اگر می تواند نرخ های خطای بالا یا تاخیر را نشان دهد، ترافیک می تواند بلافاصله به سمت نرم افزار مهندسی که تجهیزات فیزیکی را کنترل می کند، آزاد های کنسروی ممکن است نیاز به محیط های تست اختصاصی داشته باشند که تولید آینه از عملیات زنده جدا شده است.

Blue-Green Deployment

استقرار سبز سبز دو محیط یکسان را حفظ می کند: "آبی" (در حال حاضر پایدار) و "سبز" (عامل) پس از اعتبار کامل محیط سبز، ترافیک از آبی به سبز در یک عملیات اتمی واحد تغییر می کند.

برنامه ریزی برای تعمیر و نگهداری ویندوز

علی رغم بهترین تلاش ها، برخی از بازسازی ها نمی توانند به صورت شفاف معرفی شوند.در چنین مواردی، تغییرات برنامه ای در هنگام پنجره های تعمیر و نگهداری تعریف شده – به طور قابل ملاحظه ای زمانی که بارگذاری سیستم پایین تر است، پنجره را به طور واضح به ذینفعان متصل کنید و اطمینان حاصل کنید که روش های رولبک در طی دوره های عملیاتی به طور کامل و یا بلافاصله قبل از موعد بحرانی، دوباره تغییر می کنند.

ساخت یک خط لوله تست قوی

تست های واحد و یکپارچه سازی

یک مجموعه آزمایشی جامع برای سیستم های بحرانی غیر قابل مذاکره است.[۱] تست های فردی را تأیید می کند، در حالی که تست های یکپارچه تایید می کنند که ماژول های بازسازی شده به درستی با اجزای موجود ارتباط برقرار می کنند.استفاده از ابزار پوشش تست [FLT: ۱] نمونه های آزمایشی غیر قابل آزمایش در روش های تغییرناپذیر کد، بررسی (F:2formal Review [F:3] یا [F] آزمایش کلاسیک باید با استفاده از رفتار کلاسیک اثبات شده توسط مارتینLT5.

تست بازگشت و ادغام مستمر

تست های برگشت خودکار بر روی هر گونه خطایی که در ابتدای کار به وجود می آید، اجرا می شود. [۱] خط لوله های پیوسته باید ظرف چند دقیقه به طور کامل به عقب نشینی کنند، برای سیستم های بحرانی، همچنین تست های بازگشتی (FLT: ۱) را اجرا کنند تا اطمینان حاصل شود که بازسازی زمان یا استفاده از منابع را کاهش نمی دهد. [F:2 Regression Test]

مهندسی هرج و مرج برای اعتباربخشی انعطاف پذیر

مهندسی هرج و مرج عمداً شکست ها را به سیستم تزریق می کند تا ببیند که چگونه تحت استرس قرار می گیرد. می تواند فرضیاتی را آشکار کند که تغییر کرده اند یا حالت های شکست جدید معرفی شده توسط ابزارهای بازسازی شده مانند Chaos مهندسی می تواند پارتیشن های شبکه، تخلیه منابع، یا انفجار ناگهانی این نظم ترافیک را شبیه سازی کند و سیستم های مقاوم سازی آمازون را نمی توانند از آن استفاده کنند.

گام های اجرایی برای بازسازی سیستم های بحرانی

ارزیابی و برنامه ریزی

با تجزیه و تحلیل کامل از معماری سیستم شروع کنید. ماژول هایی را که به خوبی تعریف شده اند شناسایی کنید، پوشش تست بالا داشته باشید و از مسیرهای ایمنی بحرانی جدا شده اند.استفاده از گراف های وابسته برای درک تاثیر. رنک. رنک. رنک نامزدها با ریسک و ارزش کسب و کار. - کارشناسان حوزه مهندسی کننده که محدودیت ها، شرایط سخت افزار و مقررات را می شناسند - تأیید الزامات برنامه ریزی.

کنترل نسخه و روبوت

هر تغییر بازسازی باید به یک شاخه جداگانه با یک پیام متعهد روشن توصیف تحول متعهد باشد. Tag thefix قبل از شروع کار باید جزئیات را نه تنها کد بازگشت بلکه هر گونه مهاجرت پایگاه داده یا تغییرات پیکربندی که باید انجام شود، به طور دقیق تنظیم کند.

محیط زیست

یک محیط مرحله بندی که منعکس کننده تولید در سخت افزار، توپولوژی شبکه و حجم داده ها برای بازسازی ایمن ضروری است، اجرای مجموعه تست کامل و معیارهای عملکرد در اینجا.برای نرم افزار که رابط با ماشین آلات فیزیکی (به عنوان مثال، کنترل کننده های روباتیک، مانیتور شبکه برق)، باید شامل حلقه هایی باشد که ورودی های دنیای واقعی و خروجی ها را تکرار می کنند، تنها پس از عبور از عبور از همه معیارها باید تغییر تولید را تغییر دهند.

نظارت و حفظ

نظارت پس از عمل باید هر دو اصلاح عملکردی و سلامت عملیاتی را پیگیری کند. تنظیم برای افزایش نرخ خطا، تاخیر افزایش و تغییرات مصرف منابع استفاده از ردیابی توزیع شده برای دنبال درخواست از طریق مسیرهای کد تجدید پذیر، نه تنها نرم افزار بلکه هر گونه اتصال برای سخت افزار حفظ و نگهداری از چرخه ای که حداقل پیش از آن را مقایسه می کند و حداقل یک معیار پس از آن را با یک پیش عملیاتی عادی مقایسه می کند.

تکنیک های بازسازی مشترک برای کد انتقادی

همه تکنیک های بازسازی به همان اندازه ایمن نیستند.از کسانی که مکانیکی و برگشت پذیر هستند:

  • روش ردیابی - یک بلوک کد را به یک روش جدید برای بهبود خوانایی حرکت دهید.اطمینان حاصل کنید که روش استخراج شده عوارض جانبی اضافه نمی کند.
  • متغیر یا تابع [FLT 1] - بهبود وضوح بدون تغییر استفاده از تغییر نام تغییر نام تغییر نام تغییر نام تغییر جهت گرفتن همه ارجاعات.
  • شماره سحر و جادو با نماد ثابت [FLT 1] - حذف متون سخت کد شده است که ممکن است باعث سردرگمی در طول تعمیر و نگهداری شود.
  • بیانات مشروط را تقویت می کند - آبشارهای پیچیده اگر به بندهای نگهبان یا بیانیه های سوئیچ، اما فقط پس از آزمایش کامل از تمام شاخه ها.
  • پارامتر درونگرا - پارامترهای مربوط به گروه به یک شی واحد برای کاهش پیچیدگی امضای روش.

هر تکنیک باید در انزوا، آزمایش و متعهد قبل از بعدی اعمال شود. کاغذ سفید گروه را در بازسازی سیستم های حیاتی ایمنی تقویت کند راهنمایی عملی در انتخاب روش مناسب برای محیط های با قابلیت بالا فراهم می کند.

ریسک ریسک پذیری و حکومت

Code Review و Pair Programming

هر تعهد مجدد باید توسط حداقل دو مهندس آشنا با سیستم مورد بررسی قرار گیرد. برنامه ریزی هوایی در طول جلسه بازسازی می تواند از اشتباهات بی اهمیت جلوگیری کند و انتقال دانش را تقویت کند.بررسی باید بر حفاظت از رفتار، پوشش آزمون و پایبندی به برنامه بازسازی تمرکز کند.

اعتبار کارشناس

در حوزه های بحرانی، کارشناسان موضوع (SMEs) را درگیر کنید که فیزیک، شیمی یا منطق عملیاتی را درک می کنند که نرم افزار کد می کند.یک SME ممکن است متوجه شود که یک متغیر تغییر نام داده شده اکنون با یک اختصار به طور گسترده در این زمینه درگیر است، یا یک روش استخراج شده به طور ناخواسته عملیات را در یک توالی زمانی حساس به زمان باز گرداند.

تغییر هیئت های مشاوره

برای نرم افزار که بخشی از یک سیستم گواهی بزرگتر (به عنوان مثال، avionics، کنترل راکتور هسته ای)، هر تغییر کد ممکن است نیاز به تایید از یک هیئت مدیره کنترل تغییر. هیئت مدیره بررسی برنامه بازسازی، ارزیابی ریسک، استراتژی رولبک و شواهد اعتبار سنجی. مستندسازی منطقی و نتایج آزمایش در قالب سازگار با استانداردهای صنعت (به عنوان مثال، حسابرسی).

نتیجه گیری

بازسازی به خودی خود پایان ندارد - این یک ابزار برای حفظ نرم افزار مهندسی انتقادی امن، قابل نگهداری و انعطاف پذیر است.با استفاده از تغییرات تدریجی، تست دقیق و استراتژی های استقرار است که خطر را به حداقل می رساند، مهندسان می توانند بدون ایجاد خرابی، بدهی فنی را کاهش دهند. کلید این است که با همان نظم و انضباط به عنوان هر گونه تغییر دیگر در یک محیط ایمنی، برنامه به طور کامل، تست و همیشه کد محکم بسته شده است که به طور صحیح بازسازی شده است.