Table of Contents
سیستم های توزیع شده به ستون فقرات زیرساخت های دیجیتال مدرن تبدیل شده اند، قدرت همه چیز از سیستم عامل های تجارت الکترونیک به موتورهای تجزیه و تحلیل زمان واقعی، این سیستم ها شامل اجزای متعدد متصل - سرورهای، پایگاه داده ها، میکروسرویس ها و دستگاه های شبکه - اغلب در سراسر مناطق مختلف جغرافیایی یا ارائه دهندگان ابر گسترش می یابد، هماهنگ سازی تعمیر و نگهداری در سراسر چنین محیط متنوع یک کار پیچیده است، زمانی که ضعیف انجام می شود، منجر به پیکربندی، بهترین قطعات خدمات، و وقفه در سراسر سیستم تعمیر و تعمیر و تعمیر و تعمیر و تعمیر و تعمیر و تعمیر و تعمیر و تعمیر و تعمیر و تعمیر و تعمیر و تعمیر و تعمیر و تعمیر و تعمیر و تعمیر و تعمیر و تعمیر و تعمیر و تعمیر و نگهداری ثابت شده است، زمانی که تضمین می شود، زمانی که شما را تضمین می کند، زمانی که تعمیر و تعمیر و نگهداری آن را به حداقل می کند.
درک سیستم توزیع شده
نگهداری در یک زمینه توزیع شده فراتر از به روز رسانی های ساده سه شنبه است.
- به روز رسانی های نرم افزار و پچ های امنیتی [FLT 1] - اعمال آخرین اصلاحات برای سیستم عامل، واسطه و برنامه های کاربردی در سراسر گره ها.
- مدیریت سخت افزار چرخه عمر - جایگزینی دیسک های شکست خورده، ارتقاء حافظه، یا مبادله سوئیچ های شبکه بدون اختلال در خدمات.
- تغییر در درک [FLT 1] - تنظیم قوانین تعادل بار، استخرهای اتصال پایگاه داده یا سیاست های فایروال.
- تنظیم دقیق - بهینه سازی اجرای پرس و جو، مقیاس منابع و یا پایین، و تقسیم بندی داده ها.
- بازگشت و تست بهبودی [FLT 1] - بررسی این که پشتیبان گیری در همه انواع اجزای سازگار و بازیابی است.
- حسابرسی های امنیتی و بررسی های انطباق [FLT 1] - اسکن برای آسیب پذیری ها و اطمینان از پایبندی به استانداردهای صنعت.
هر یک از این فعالیت ها می تواند به طور همزمان به دلیل وابستگی متقابل، به عنوان مثال، یک مهاجرت پایگاه داده ممکن است نیاز به تغییرات هماهنگ در لایه نرم افزار و لایه کشینگ بدون هماهنگی مناسب داشته باشد، رویدادهای نگهداری همپوشانی می تواند منجر به شرایط نژادی، فساد یا خرابی طولانی مدت شود.
بهترین تمرین ها برای هماهنگی موثر
ایجاد پروتکل های ارتباطی شفاف
هر تیمی که درگیر آن است – توسعه، عملیات، امنیت و ذینفعان کسب و کار – باید بداند چه کاری انجام می شود، چه زمانی و چرا از کانال های استاندارد مانند:
- #maintenance-announces کانال Slack یا گروه تیم های مایکروسافت.
- تقویم مشترک با پنجره های تعمیر و نگهداری، تاثیر انتظار و برنامه های رول بک.
- سیستم مدیریت تغییر (مانند سرویس Now یا Jira) که نیاز به تایید قبل از هر گونه تغییر تولید دارد.
جریان ارتباطات را مستند کنید: چه کسی را توجیه می کند، چه اطلاعاتی به اشتراک گذاشته می شود (به عنوان مثال، مدت زمان انتظار، سطح ریسک) و چگونه افزایش می یابد اگر چیزی اشتباه کند، قالب های پیش تعریف شده برای اطلاع رسانی های تعمیر و نگهداری، ابهام را کاهش می دهند و اطمینان حاصل می کنند که هیچ چیز فراموش نمی شود.
برنامه تعمیر و نگهداری Windows
تمام ساعت ها برابر نیستند.برنامه ریزی در طول دوره های کم ترافیک خاص برای پایگاه کاربر شما، این ممکن است به معنای استفاده از پنجره های نورد یا همپوشانی با lull های طبیعی باشد.
- به روز رسانی رول - به روز رسانی زیرمجموعه ای از گره ها در یک زمان، نگه داشتن بقیه خدمت ترافیک.
- استقرار سبز سبز [FLT 1] - یک محیط کاملا جدید را به جلو بکشید، ترافیک را تغییر دهید و سپس آن را قدیمی کنید.
- انتشار های مجاز - نشان دادن درصد کمی از کاربران به نسخه جدید اول، سپس به تدریج افزایش.
همیشه یک بافر در پنجره تعمیر و نگهداری خود را برای رسیدگی به تاخیر های غیرمنتظره قرار دهید.در زمان دقیق شروع و پایان در UTC تنظیم شده برای جلوگیری از سردرگمی منطقه زمانی در میان تیم های توزیع شده در سطح جهانی صحبت کنید.
اجرای خودکار نظارت
نظارت بر زمان واقعی سیستم هشدار اولیه شما است.
- معیارهای ساختار - CPU، حافظه، دیسک I/O، تأخیر شبکه.
- عملکرد درخواست - درخواست تاخیر، نرخ خطا، از طریق مجوز.
- سلامت پایدار - استفاده از استخر پایگاه داده، نسبت های ضربه کش، عمق صف پیام.
ابزارهایی مانند Prometheus و به شما اجازه می دهد تا هشدارهایی را تنظیم کنید که باعث می شود معیارهای عبور از آستانه های پیش تعریف شده، آنها را با داشبوردهایی ترکیب کنید که یک دید تک رنگ از سیستم بهداشت را در طول تعمیر و نگهداری ارائه می دهند، به عنوان مثال اگر یک روش شروع مجدد شامل یک روش ذخیره سازی خودکار شود، اگر سرعت بارگیری آن را از دست بدهید، و یا از دست دادن نرخ ذخیره سازی آن جلوگیری کنید، اگر سرعت بارگیری مجدد آن را از دست بدهید، اگر یک سیستم ذخیره سازی مجدد خطا را از دست بدهید، به کار شما را از دست بدهید، سرعت استفاده کنید، اگر یک سیستم ذخیره سازی مجدد آن را از دست بدهید، یک سیستم ذخیره سازی را از دست بدهید، یک بار دیگر استفاده کنید، به سرعت استفاده کنید.
مستندات دقیق را حفظ کنید
یک پایگاه داده مدیریت پیکربندی (CMDB) یا یک نمودار زیربنایی به تیم ها کمک می کند تا درک کنند که چه اجزایی وجود دارند و چگونه ارتباط برقرار می کنند.
- تمام سخت افزار و موجودی نرم افزار، از جمله نسخه ها و سطوح پچ.
- نقشه های وابسته نشان می دهد که کدام سرویس ها به کدام API یا پایگاه داده ها می گویند.
- Runbooks با دستورالعمل های گام به گام برای وظایف تعمیر و نگهداری مشترک.
- گزارش های پس از مرگ از حوادث قبلی برای جلوگیری از تکرار اشتباهات.
اسناد باید به عنوان کد مورد استفاده قرار گیرد: نسخه آن در یک مخزن Git، آن را به طور منظم بررسی کنید و اطمینان حاصل کنید که به راحتی قابل جستجو است. ابزارها مانند Confluence یا Notion می تواند اطلاعات را میزبانی کند، اما کلید این است که آن را بدون انجام دقیق دقیق، تیم های زمان تلاش برای انجام دادن به طور غیر منتظره ای به عنوان یک جزء خاص.
هماهنگ کننده تست
هرگز تغییری را به طور مستقیم به تولید بدون تست اعمال نکنید، از محیطی استفاده کنید که تولید آینه را تا حد ممکن نزدیک کند – پروفایل سخت افزاری، توپولوژی شبکه و حجم داده ها باید شامل موارد زیر باشد:
- [[۱] [۱۰] تست های واحد [۱۰] برای تکه های منفرد [۳]
- تست های گزارش دهی برای تأیید این که به روز رسانی ها با هم کار می کنند (به عنوان مثال، نسخه جدیدی از یک microservice هنوز هم می تواند با پایگاه داده موجود ارتباط برقرار کند).
- تست های پرسود برای اطمینان از سیستم می تواند ترافیک مورد انتظار را پس از تغییر کنترل کند.
- ] مهندسی چائو تمرینات برای دیدن اینکه چگونه سیستم تحت شکست جزئی در طول تعمیر و نگهداری رفتار می کند.
برنامه های تست هماهنگ با تمام تیم های تحت تاثیر.اگر یک تغییر پایگاه داده نیاز به مهاجرت طرح دارد، تیم برنامه باید نسخه سازگار برای استفاده از پرچم های ویژگی یا سوئیچ های به عنوان مثال برای تست رفتار جدید در تولید در حالی که آن را نامرئی به کاربران است.
استفاده از کنترل نسخه برای همه چیز
زیرساخت به عنوان کد (IaC) دیگر اختیاری نیست، مدیریت تمام فایل های پیکربندی، اسکریپت های استقرار و تعاریف محیط در یک سیستم کنترل نسخه - Git استاندارد است.
- تاریخ کامل تغییرات، از جمله اینکه چه کسی آنها را و چرا ساخته است.
- توانایی بازگشت به یک حالت خوب شناخته شده بلافاصله.
- یک منبع حقیقت که باعث حذف حرکت پیکربندی می شود.
با کتاب های Ansible Play، پیکربندی Terraform و فایل های Docker Compose به عنوان شما کد درخواست استفاده کنید، از درخواست های کشیدن و بررسی کد برای تغییرات زیربنایی استفاده کنید. Tag منتشر می کند تا بتوانید به راحتی یک رویداد تعمیر و نگهداری را با یک نسخه پیکربندی خاص مرتبط کنید.
ابزارها و تکنولوژی ها
مدیریت پیکربندی
در این میان، کارهای تکراری را با ابزارهایی مانند غیر قابل استفاده [FLT: 1] انجام دهید، [FLT3]، یا Chef آنها حالت مورد نظر را در گره های توزیع شده اجرا می کنند، اطمینان حاصل می کنند که تمام سرورهای همان بسته و تنظیمات را برای محیط های کانتینری اجرا می کنند.
نظارت و حفظ
در این میان، به همراه |FLT1]]، یک صفحه منبع باز محبوب برای معیارها و هشدارها فراهم می کند.
ارتباطات و مدیریت حوادث
Slack و Microsoft Teams به عنوان هاب زمان واقعی برای پاسخ حادثه ساختار یافته (FLT:0)PagerDuty یا Opsgenie] خدمت می کنند می تواند به طور خودکار هشدارها را افزایش دهد و در چرخش تماس هماهنگ شود. حفظ یک کنفرانس ویدئویی اتاق جنگ که همه می توانند به آن بپیوندند اگر یک عملیات جانبی به کار برود.
کنترل نسخه و CI / CD
Git آن را با یک خط لوله CI / CD (Jenkins، GitLab CI، GitHub Actions) که به طور خودکار اعمال می شود و تغییرات پیکربندی در یک محیط مرحله بندی قبل از تبلیغ آنها به تولید اعمال می شود، این باعث کاهش خطای انسانی و اجرای سازگاری می شود.
چالش های مشترک و مییگاد
تفاوت های منطقه زمانی
هنگامی که تیم ها در سراسر جهان گسترش می یابند، یک پنجره تعمیر و نگهداری منفرد ممکن است در طول ساعات کاری برای برخی از آنها سقوط کند. Mitigate با استفاده از یک برنامه چرخش که ناراحتی را به طور منصفانه توزیع می کند یا با اتخاذ یک Sun مدل که هر تیم منطقه ای در زمان کم ترافیک محلی خود عمل می کند، به وضوح چرخش را مستند می کند و تغییرات خوب را در پیش از آن برقرار می کند.
جنگ با نگهداری حوادث
دو تیم ممکن است برنامه ریزی برای نگهداری همپوشانی را که بر همان وابستگی تأثیر می گذارد، پیاده سازی یک هیئت مشورتی تغییر (CAB) که همه تغییرات برنامه ریزی شده را در هفته بررسی می کند، از تقویم مشترک با دسته های رنگی استفاده کنند (به عنوان مثال، قرمز برای زیرساخت های بحرانی، زرد برای غیر بحرانی) و نیاز به درگیری قبل از تصویب.
سیستم های میراث با فرآیندهای دستی
هر جزء را نمی توان به طور کامل خودکار کرد. API ممکن است برای سخت افزار قدیمی یا برنامه های اسپم از دست رفته باشد.در چنین مواردی، مراحل دستی را در یک کتاب اجرا کنید و یک فرد اختصاصی را اجرا کنید در حالی که دیگران به تدریج برنامه ای برای حذف یا ارتقاء آن سیستم ها را دارند.
خطای انسانی
حتی با اتوماسیون، اشتباهات اتفاق می افتد.
- نیاز به قانون دو شخص برای عملیات حساس (یک نفر برای اجرای، یک قانون برای مشاهده)
- استفاده از زیرساخت های غیر قابل تغییر که در آن سرورها هرگز در محل قرار نمی گیرند، تنها با تصاویر جدید و به روز شده جایگزین می شوند.
- انجام خلاصه های پیش از حد و گذشته نگری پس از آن
نتیجه گیری
هماهنگی تعمیر و نگهداری در اجزای سیستم توزیع شده مستلزم ترکیبی از نظم و انضباط فرآیند، ارتباطات روشن و ابزار مناسب است.با ایجاد پروتکل های ارتباطی ثابت، برنامه ریزی پنجره ها با دقت، نظارت خودکار، نگهداری مستندات کامل، تست کامل و کنترل نسخه هر گونه مصنوعات، سازمان ها می توانند به طور چشمگیری کاهش خرابی و خطر عملیاتی.تلاش سرمایه گذاری شده در ساخت یک چارچوب هماهنگی جامد، تقسیم می کند که هر زمان برای بهبود حیاتی است.