سفر کارآمد مدیریت حضوری و حوادث

Summarize this content to 400 words in Persian Lang
برای بسیاری از تیم های مهندسی و عملیات، در دسترس بودن در صورت نیاز برای حفظ قابلیت اطمینان و در دسترس بودن خدمات آنها ضروری است. یکی از مسئولیت های اصلی کمک به ملاقات SLA های مختلف است. اصول کلیدی کار در حین خدمت در این مقاله همراه با مثالهای واقعی از صنعت در مورد نحوه برنامهریزی و انجام این وظایف برای یک تیم جهانی از مهندسین قابلیت اطمینان سایت (SRE) مورد بحث قرار گرفته است.
مروری بر ایده های اصلی
هنگامی که یک فرد در حال تماس باشد، آنها به سرعت برای حوادث تولید در دسترس هستند و می توانند از نقض قراردادهای سطح خدمات (SLA) که می تواند تأثیر منفی عمده ای بر سازمان داشته باشد، جلوگیری کند. یک تیم SRE معمولاً حداقل 25٪ از زمان خود را به حضور در تماس اختصاص می دهد. به عنوان مثال، آنها ممکن است یک هفته از هر ماه در تماس باشند.
SRE ها تیم های مهندسی هستند که از نظر تاریخی، به کار آماده باش به عنوان چیزی فراتر از یک چالش مهندسی نگاه کرده اند. برخی از دشوارترین کارها مدیریت حجم کاری، برنامه ریزی، همگامی با پیشرفت های تکنولوژیکی و مدیریت کار است. هر سازمانی همچنین باید فرهنگ مهندسی قابلیت اطمینان سایت را القا کند.
موارد زیر مؤلفههای ضروری است که تیمهای SRE باید برای مدیریت موفقیتآمیز شیفتهای حین تماس در نظر بگیرند.
جدول زمانی برای ایجاد برنامه های حین تماس با مقدار مناسب تعادل بین کار و زندگی
اصلاح ترکیب وظایف معمولی که کسانی که برای تماس در دسترس هستند باید HandoffIssues را تکمیل کنند باید خلاصه شود و به فردی که شیفت زیر را انجام می دهد داده شود.
کنفرانس های پس از مرگ مکالمه هفتگی در مورد رویدادهای مرتبط با ثبات پلت فرم
برنامههایی برای تشدید ایجاد کنید. جریان مؤثر تشدید با ضربالاجلهایی برای چرخش
افزایش بارگذاری صفحه ایجاد سیاست های موثر پیجر
Runbook upkeep خلاصه ای که به عنوان یک “چاقوی ارتش سوئیس” برای SREهایی که در حال تماس هستند عمل می کند
مدیریت تغییرات هماهنگی معرفی تغییرات پلت فرم
دستورالعمل و ثبت اسناد و مدارک برای آموزش SREهای جدید و فعلی و ادغام اعضای تیم اضافی
برنامه ریزی برای حین تماس و استفاده از Slack
به طور سنتی، هدف تیم های SRE حفظ سیستم های نرم افزاری توزیع شده پیچیده بوده است. این سیستم ها می توانند در تعدادی از مراکز داده در سراسر جهان راه اندازی شوند. تیم ها می توانند از ابزارهایی مانند Pagerly برای ایجاد زمان بندی در Slack استفاده کنند.
تحویل برای حین تماس
در پایان هر شیفت، یک روش “تحویل” لازم است، که طی آن تیمی که مسئولیت های حین خدمت را بر عهده می گیرد، در مورد مسائل مربوط به حین خدمت و همچنین سایر موارد مربوطه مطلع می شود. در مجموع برای پنج روز کاری متوالی، این چرخه تکرار می شود. اگر ترافیک در طول هفته کمتر از میزان ترافیک باشد، کارکنان آماده خدمت SRE می توانند یک شیفت در آخر هفته کار کنند. یک روز تعطیل اضافی در هفته بعد یا در صورت تمایل، پرداخت نقدی باید به عنوان غرامت به این شخص داده شود.
در حالی که اکثر تیمهای SRE ساختار فوقالذکر را دارند، برخی از آنها به شکل متفاوتی راهاندازی میشوند، با تیمهای ماهوارهای بسیار کوچک که یک دفتر مرکزی نامتناسب بزرگ را تکمیل میکنند. اگر وظایف بین چندین منطقه در آن مورد توزیع شود، تیمهای ماهوارهای کوچک میتوانند احساس فشار بیش از حد و محرومیت کنند، که در نهایت میتواند منجر به تضعیف روحیه و نرخ گردش مالی بالا شود. پس از آن، هزینه پرداختن به نگرانیهای حین کار در خارج از ساعات کاری معمولی، با داشتن مالکیت کامل بر مسئولیتها در یک مکان قابل توجیه است.
ترتیب یک چرخش با یک تیم از یک منطقه خاصاگر شرکت تیم چند منطقه ای نداشته باشد، می توان با تقسیم سال به سه ماهه، مانند ژانویه تا مارس، آوریل تا ژوئن، ژوئیه تا سپتامبر و اکتبر تا دسامبر، برنامه زمانبندی آماده به کار را ایجاد کرد. یکی از این گروه ها باید به تیم فعلی اختصاص داده شود و هر سه ماه یکبار تلاش شبانه روزی به صورت چرخشی انجام شود.
بهتر است چنین جدول زمانی برای حمایت از چرخه خواب انسان داشته باشید و یک تیم منظم داشته باشید که به جای هر چند روز یک بار، هر سه ماه یکبار دوچرخه سواری می کند، که در برنامه افراد سخت تر است، زیرا در تماس بودن خوب نیست. چند روز در هفته
مدیریت PTO و زمان تعطیلات
مدیریت برنامه زمان استراحت شخصی (PTO) ضروری است زیرا در دسترس بودن و قابل اعتماد بودن پلت فرم به طور کلی به موقعیت SRE بستگی دارد. پشتیبانی حین تماس باید بر کار توسعه اولویت داشته باشد و اندازه تیم باید به اندازه کافی بزرگ باشد تا کسانی که در تماس نیستند بتوانند غایبان را پوشش دهند.
تعطیلات محلی خاص برای هر مکان جغرافیایی وجود دارد، مانند روز شکرگزاری در ایالات متحده آمریکا و دیوالی در هند. در سطح جهانی، تیمهای SRE باید اجازه داشته باشند در این زمانها تغییر شیفت کنند. تعطیلات رایج در سراسر جهان، از جمله روز سال نو، باید مانند تعطیلات آخر هفته با کمترین پشتیبانی کارکنان و زمان پاسخگویی پیجر کم باشد.
در اینجا وبلاگی در مورد جبران خدمت و روش تنظیم چرخش وجود دارد
ترکیب را اصلاح کنید
هر شیفت با یک گزارش توجیهی در مورد رویدادهای اصلی، مشاهدات، و هرگونه مشکل مهمی که باید به عنوان بخشی از واگذاری شیفت قبلی برطرف شود، به مهندس آمادهکننده شروع میشود. در مرحله بعد، SRE ترمینال خط فرمان، کنسول های مانیتورینگ، داشبوردها و صف بلیط را برای آماده شدن برای جلسه تماس باز می کند.
هشدار با Slack و Teams
بر اساس معیارها، تیم های SRE و توسعه SLI ها را شناسایی کرده و هشدار تولید می کنند. سیستمهای مانیتورینگ مبتنی بر رویداد را میتوان برای ارسال هشدارها بر اساس رویدادها علاوه بر دادهها تنظیم کرد. سناریوی زیر را در نظر بگیرید: تیم مهندسی و SREها (در طول زمان توسعه بدون تماس) تصمیم می گیرند از cassandra_threadpools_activetasks متریک به عنوان SLI برای ردیابی عملکرد خوشه Cassandra تولیدی استفاده کنند. در این مثال، فایل YAML مدیریت هشدار Prometheus می تواند توسط SRE برای پیکربندی هشدار استفاده شود. حاشیه نویسی که در نمونه زیر برجسته شده است می تواند برای انتشار هشدارها استفاده شود. یکی از راه های ارتباط با سیستم های مدیریت پاسخ حادثه معاصر، استفاده از این حاشیه نویسی است.
مدیر هشدار Prometheus زمانی که شرایط هشدار برآورده شد، هشدار را به پلت فرم مدیریت واکنش حادثه ارسال می کند. مهندس SRE در حال تماس باید تعداد وظایف فعال داشبورد را از نزدیک بررسی کند و با بررسی معیارها علت تعداد بیش از حد وظایف را مشخص کند. پس از مشخص شدن علت باید اقدام اصلاحی انجام شود.
ادغام جهانی این سیستم های هشدار با یک سیستم فروش بلیط، مانند پلت فرم مدیریت بلیط Jira Atlassian، توصیه می شود. هر هشدار باید به تنهایی یک بلیط تولید کند. SRE و همه ذینفعان دیگری که به طور مناسب به هشدار پاسخ دادند، باید بلیط را پس از رسیدگی به روز کنند.
عیب یابی
SRE باید یک کنسول ترمینال برای استفاده از SSH یا سایر ابزارهای CLI ارائه شده توسط سازمان در شروع زمان تماس داشته باشد. کارکنان مهندسی یا خدمات مشتری ممکن است برای کمک در مورد مشکل فنی با SRE در حال تماس تماس بگیرند. به عنوان مثال، فرض کنید که عملکرد کاربر در پلتفرم – مانند زدن دکمه پرداخت سبد خرید – یک شناسه درخواست متمایز ایجاد می کند. اجزای مختلف سیستم توزیع شده – مانند سرویس پایگاه داده، سرویس متعادل کننده بار، سرویس محاسباتی و سایر موارد – همه با این درخواست تعامل دارند. SRE ممکن است شناسه درخواست را دریافت کند. هنگام دریافت آن، آنها قرار است اطلاعاتی در مورد چرخه عمر شناسه درخواست ارائه دهند. برخی از نمونههای این دادهها شامل ماشینها و اجزایی است که درخواست را ثبت کردهاند.
اگر مشکل فوراً آشکار نشود، ممکن است برای بررسی مشکلات شبکه مورد نیاز باشد، مانند سناریویی که شناسه درخواست ذکر شده در بالا توسط هیچ سرویسی ثبت نشده است. SRE ممکن است از TCPDump برای Wireshark، دو برنامه تحلیل بسته منبع باز، برای ضبط بسته ها استفاده کند تا مشکلات مربوط به شبکه را رد کند. SRE ممکن است از تیم شبکه کمک بگیرد و از آنها بخواهد که بسته ها را در این کار پر زحمت بررسی کنند.
هنگام عیبیابی چنین چالشهایی، دانش جمعآوریشده از پسزمینههای مختلف SRE در یک تیم معین، بدون شک مفید خواهد بود. به عنوان بخشی از فرآیند سوار شدن، همه این اقدامات باید ثبت شوند و متعاقباً برای آموزش SREهای جدید مورد استفاده قرار گیرند.
پیاده سازی
SRE در حال تماس باید در ساعات کاری مسئول مراحل استقرار باشد. در صورتی که مشکلی پیش بیاید، SRE باید بتواند مشکلات را حل کند و تغییرات را معکوس یا ارسال کند. SRE فقط باید استقرارهای اضطراری تأثیرگذار بر تولید را انجام دهد و دانش کافی برای کمک به تیم توسعه در جلوگیری از هرگونه تأثیر منفی بر تولید را دارد. فرآیند مدیریت تغییر باید از نزدیک با رویههای استقرار، که باید کاملاً مستند باشد، ادغام شود.
مدیریت بلیط (Jira، Slack، JSM، Pagerduty)
SRE ها به دقت بر بلیط هایی که در صف های خود ارسال می شوند و در انتظار اقدام هستند نظارت می کنند. این بلیتها اولویت کمتری نسبت به آنهایی دارند که ناشی از مشکلات تولید مداوم هستند، زیرا یا توسط برنامه هشدار تولید شدهاند یا توسط تیمهای دیگر افزایش یافتهاند.
این روال معمول برای هر بلیط ارائه یک بیانیه در مورد اقدامات SRE است که تکمیل شده است. اگر کاری در مورد آنها انجام نشود، بلیط ها باید به تیم های مربوطه ارسال شوند. هنگامی که یک تیم SRE به تیم دیگر منتقل می شود، صف ایده آل باید خالی باشد.
Pagerly می تواند در مورد بلیط های زیر در ابزارهایی مانند Jira، Pagerduty، Opsgenie کمک کند
تشویق به افزایش ریسک
SREهایی که در حال تماس هستند بیشتر تحت تأثیر این مشکلات قرار می گیرند. اگر نرمافزار نظارت و هشدار نتواند به آنها اطلاع دهد یا مشکلی وجود داشته باشد که کشف نشده است و تنها زمانی کشف میشود که مشتری آن را گزارش کند، SRE در حال تماس باید از تمام مهارتهای خود برای حل سریع مشکل استفاده کند. تیمهای توسعه مربوطه نیز باید توسط SRE برای کمک به خدمت گرفته شوند.
پس از رفع مشکل، به همه ذینفعان مربوطه باید یک بلیط با مستندات جامع حادثه، خلاصهای از تمام اقدامات انجام شده برای رفع مشکل، و توضیحی در مورد آنچه که میتواند خودکار و در آن اطلاعرسانی شود، داده شود. مهمتر از همه تلاشهای توسعه دیگر، این بلیط باید ابتدا توسعه یابد.
پروتکل های انتقال
در طول هر انتقال مسئولیت های SRE، قراردادهای خاصی باید رعایت شود تا امکان واگذاری یکپارچه مسئولیت های آماده به کار به پرسنل بعدی فراهم شود. یکی از این استانداردها دادن یک بسته خلاصه به فردی که در تماس بعدی است می باشد. هر بلیط در شیفت باید با اقدامات انجام شده برای حل آن، هرگونه نظر یا درخواست اضافی از کارکنان SRE، و هر گونه شفاف سازی از تیم توسعه، به روز و مستند شود. این بلیط ها باید بر اساس اینکه چگونه بر قابلیت اطمینان و در دسترس بودن پلت فرم تاثیر می گذارند، دسته بندی شوند. بلیط هایی که بر تولید تأثیر می گذارند باید علامت گذاری و طبقه بندی شوند، به ویژه برای پس از مرگ. پس از جمعآوری و طبقهبندی آن، این فهرست بلیطها توسط SRE در حال تماس باید برای تحویل در یک کانال ارتباطی مشترک بارگذاری شود. ممکن است تیم تصمیم بگیرد از کانال Slack متفاوت، تیم های مایکروسافت یا ویژگی های مشترک موجود در پلتفرم های واکنش به حادثه مانند Pagerly برای این کار استفاده کند. دسترسی به این خلاصه برای کل سازمان SRE باید امکان پذیر باشد.
ملاقات پس از مرگ
هر هفته، تمام مدیران مهندسی و SREها در این جلسه شرکت می کنند. قالب جلسات پس از مرگ در فلوچارت زیر مشخص شده است.
اطمینان از اینکه مشکلات برجسته شده دیگر تکرار نمی شوند، مهم ترین نتیجه پس از مرگ است. انجام این کار آسانی نیست. اقدامات اصلاحی می تواند شامل هر چیزی اساسی مانند ایجاد یک اسکریپت یا معرفی بررسی کد بیشتر باشد، یا می تواند شامل موارد پیچیده تری مانند طراحی مجدد کل برنامه باشد. برای نزدیک شدن به هدف جلوگیری از مشکلات تکراری تا حد امکان، SRE و تیم های توسعه باید همکاری نزدیک داشته باشند.
یک استراتژی تشدید ایجاد کنید
هر بار که مشکلی پیش می آید، باید یک تیکت با موارد اقدام لازم، اسناد و درخواست های ویژگی ثبت شود. اغلب بلافاصله مشخص نیست که کدام تیم یک بلیط خاص را مدیریت می کند. ویژگی های مسیریابی و برچسب گذاری پیجری امکان خودکارسازی این فرآیند را فراهم می کند که به غلبه بر این مانع کمک می کند. ممکن است ابتدا به عنوان یک بلیط خدمات مشتری شروع شود و بر اساس نوع و شدت رویداد، ممکن است به تیم های مهندسی یا SRE ارسال شود. بلیط پس از رسیدگی تیم مربوطه به خدمات مشتریان بازگردانده می شود. راه حل ممکن است شامل برقراری ارتباط با مشتری باشد یا ممکن است فقط شامل مستندسازی و بستن موضوع باشد. علاوه بر این، این بلیط در پس از مرگ برای تجزیه و تحلیل بیشتر بررسی می شود و بخشی از روند انتقال خواهد بود. برای کاهش خستگی هشدار، توصیه می شود که موضوع را به طور دقیق طبقه بندی و به بالاترین سطح تخصص اختصاص دهید.
افزایش بارگذاری صفحه
صفحهبندی اغلب در میان اعضای تیمهای مهندسی در حال تماس اتفاق میافتد. به منظور به حداقل رساندن فرکانس صفحه بندی، صفحات باید به دقت برای تیم های مناسب هدف گذاری شوند. هنگامی که مشکلی وجود دارد که یک صفحه در اینترنت را تضمین می کند، تیم خدمات مشتری معمولاً اولین فردی است که با آن تماس می گیرد. از آن نقطه به بعد، همانطور که در قسمت قبل به آن پرداخته شد، چندین تحقیق و مراحل تشدید باید اتخاذ شود.
هر زنگ هشدار باید یک برنامه مدون و روش های حل و فصل داشته باشد. به عنوان مثال، هنگامی که یک مشتری مشکلی را گزارش میکند، SRE باید بررسی کند که آیا هشدارها هنوز در حال اجرا هستند یا خیر و تعیین کنند که آیا به هر طریقی به مشکل مشتری متصل هستند یا خیر.
محدود کردن بازدید از صفحه SRE به موضوعات خوب واقعی باید هدف باشد. زمانی که نمی توان تصمیم گرفت که کدام تیم را صفحه کنید، یک کانال ارتباطی مرکزی باید ایجاد شود تا SRE، مهندسی، خدمات مشتری و سایر اعضای تیم بتوانند در آن شرکت کنند، در مورد آن صحبت کنند و به مشکل رسیدگی کنند.
نگهداری Runbook
Runbook خلاصهای از اقدامات دقیق – از جمله دستورات – است که یک مهندس SRE برای رسیدگی به یک حادثه خاص باید انجام دهد، برخلاف یک برگه تقلب که هر دستور را برای یک پلتفرم خاص (مانند Kubernetes یا Elasticsearch) فهرست میکند. هنگام حل مشکلات، زمان بسیار مهم است. اگر مهندس در حال تماس در این موضوع به خوبی تسلط داشته باشد و فهرستی از دستورالعمل ها و موارد عملی را در اختیار داشته باشد، می تواند راه حل ها را با سرعت بیشتری اجرا کند.
به عنوان یک تیم، شما ممکن است یک Runbook را به صورت متمرکز مدیریت کنید، یا هر فرد ترجیح می دهد که خود را داشته باشد. در اینجا یک نمونه runbook برای شما آورده شده است.
می توان استدلال کرد که تعداد زیادی از وظایف موجود در یک runbook می توانند به صورت خودکار، با جنکینز انجام شوند یا به عنوان کارهای یکپارچه سازی پیوسته جداگانه ساخته شوند. اگرچه این بهترین سناریو است، اما همه تیم های SRE آنقدر تجربه ندارند که آن را بدون نقص انجام دهند. یک runbook موثر همچنین می تواند یک کتابچه راهنمای مفید برای خودکارسازی وظایف باشد. نیاز یک مهندس برای خط فرمان ثابت است، بنابراین هر چیزی که باید به طور منظم در ترمینال وارد شود، یک انتخاب عالی برای یک runbook است.
پیجرلی دارای گردش کار است که به حاشیه نویسی هر هشدار کمک می کند و سعی می کند runbook را به روز نگه دارد
نتایجی که اظهار شده
ایجاد یک برنامه چرخشی حین تماس که کار می کند و پایدار است نیاز به تفکر دقیق دارد. اینها شامل آماده سازی تغییرات و برنامه ریزی شیفت، ایجاد مکانیزم تشدید، و برگزاری جلسات تجزیه و تحلیل پس از مرگ پس از هر رویداد است. پیجرلی برای برنامه ریزی، انجام، نظارت و خودکارسازی وظایف مربوط به مسئولیت های استاندارد مهندسی قابلیت اطمینان سایت، مانند چرخش در حین تماس، ساخته شده است.
برای بسیاری از تیم های مهندسی و عملیات، در دسترس بودن در صورت نیاز برای حفظ قابلیت اطمینان و در دسترس بودن خدمات آنها ضروری است. یکی از مسئولیت های اصلی کمک به ملاقات SLA های مختلف است. اصول کلیدی کار در حین خدمت در این مقاله همراه با مثالهای واقعی از صنعت در مورد نحوه برنامهریزی و انجام این وظایف برای یک تیم جهانی از مهندسین قابلیت اطمینان سایت (SRE) مورد بحث قرار گرفته است.
مروری بر ایده های اصلی
هنگامی که یک فرد در حال تماس باشد، آنها به سرعت برای حوادث تولید در دسترس هستند و می توانند از نقض قراردادهای سطح خدمات (SLA) که می تواند تأثیر منفی عمده ای بر سازمان داشته باشد، جلوگیری کند. یک تیم SRE معمولاً حداقل 25٪ از زمان خود را به حضور در تماس اختصاص می دهد. به عنوان مثال، آنها ممکن است یک هفته از هر ماه در تماس باشند.
SRE ها تیم های مهندسی هستند که از نظر تاریخی، به کار آماده باش به عنوان چیزی فراتر از یک چالش مهندسی نگاه کرده اند. برخی از دشوارترین کارها مدیریت حجم کاری، برنامه ریزی، همگامی با پیشرفت های تکنولوژیکی و مدیریت کار است. هر سازمانی همچنین باید فرهنگ مهندسی قابلیت اطمینان سایت را القا کند.
موارد زیر مؤلفههای ضروری است که تیمهای SRE باید برای مدیریت موفقیتآمیز شیفتهای حین تماس در نظر بگیرند.
- جدول زمانی برای ایجاد برنامه های حین تماس با مقدار مناسب تعادل بین کار و زندگی
- اصلاح ترکیب وظایف معمولی که کسانی که برای تماس در دسترس هستند باید HandoffIssues را تکمیل کنند باید خلاصه شود و به فردی که شیفت زیر را انجام می دهد داده شود.
- کنفرانس های پس از مرگ مکالمه هفتگی در مورد رویدادهای مرتبط با ثبات پلت فرم
- برنامههایی برای تشدید ایجاد کنید. جریان مؤثر تشدید با ضربالاجلهایی برای چرخش
- افزایش بارگذاری صفحه ایجاد سیاست های موثر پیجر
- Runbook upkeep خلاصه ای که به عنوان یک “چاقوی ارتش سوئیس” برای SREهایی که در حال تماس هستند عمل می کند
- مدیریت تغییرات هماهنگی معرفی تغییرات پلت فرم
- دستورالعمل و ثبت اسناد و مدارک برای آموزش SREهای جدید و فعلی و ادغام اعضای تیم اضافی
برنامه ریزی برای حین تماس و استفاده از Slack
به طور سنتی، هدف تیم های SRE حفظ سیستم های نرم افزاری توزیع شده پیچیده بوده است. این سیستم ها می توانند در تعدادی از مراکز داده در سراسر جهان راه اندازی شوند. تیم ها می توانند از ابزارهایی مانند Pagerly برای ایجاد زمان بندی در Slack استفاده کنند.
تحویل برای حین تماس
در پایان هر شیفت، یک روش “تحویل” لازم است، که طی آن تیمی که مسئولیت های حین خدمت را بر عهده می گیرد، در مورد مسائل مربوط به حین خدمت و همچنین سایر موارد مربوطه مطلع می شود. در مجموع برای پنج روز کاری متوالی، این چرخه تکرار می شود. اگر ترافیک در طول هفته کمتر از میزان ترافیک باشد، کارکنان آماده خدمت SRE می توانند یک شیفت در آخر هفته کار کنند. یک روز تعطیل اضافی در هفته بعد یا در صورت تمایل، پرداخت نقدی باید به عنوان غرامت به این شخص داده شود.
در حالی که اکثر تیمهای SRE ساختار فوقالذکر را دارند، برخی از آنها به شکل متفاوتی راهاندازی میشوند، با تیمهای ماهوارهای بسیار کوچک که یک دفتر مرکزی نامتناسب بزرگ را تکمیل میکنند. اگر وظایف بین چندین منطقه در آن مورد توزیع شود، تیمهای ماهوارهای کوچک میتوانند احساس فشار بیش از حد و محرومیت کنند، که در نهایت میتواند منجر به تضعیف روحیه و نرخ گردش مالی بالا شود. پس از آن، هزینه پرداختن به نگرانیهای حین کار در خارج از ساعات کاری معمولی، با داشتن مالکیت کامل بر مسئولیتها در یک مکان قابل توجیه است.
ترتیب یک چرخش با یک تیم از یک منطقه خاص
اگر شرکت تیم چند منطقه ای نداشته باشد، می توان با تقسیم سال به سه ماهه، مانند ژانویه تا مارس، آوریل تا ژوئن، ژوئیه تا سپتامبر و اکتبر تا دسامبر، برنامه زمانبندی آماده به کار را ایجاد کرد. یکی از این گروه ها باید به تیم فعلی اختصاص داده شود و هر سه ماه یکبار تلاش شبانه روزی به صورت چرخشی انجام شود.
بهتر است چنین جدول زمانی برای حمایت از چرخه خواب انسان داشته باشید و یک تیم منظم داشته باشید که به جای هر چند روز یک بار، هر سه ماه یکبار دوچرخه سواری می کند، که در برنامه افراد سخت تر است، زیرا در تماس بودن خوب نیست. چند روز در هفته
مدیریت PTO و زمان تعطیلات
مدیریت برنامه زمان استراحت شخصی (PTO) ضروری است زیرا در دسترس بودن و قابل اعتماد بودن پلت فرم به طور کلی به موقعیت SRE بستگی دارد. پشتیبانی حین تماس باید بر کار توسعه اولویت داشته باشد و اندازه تیم باید به اندازه کافی بزرگ باشد تا کسانی که در تماس نیستند بتوانند غایبان را پوشش دهند.
تعطیلات محلی خاص برای هر مکان جغرافیایی وجود دارد، مانند روز شکرگزاری در ایالات متحده آمریکا و دیوالی در هند. در سطح جهانی، تیمهای SRE باید اجازه داشته باشند در این زمانها تغییر شیفت کنند. تعطیلات رایج در سراسر جهان، از جمله روز سال نو، باید مانند تعطیلات آخر هفته با کمترین پشتیبانی کارکنان و زمان پاسخگویی پیجر کم باشد.
در اینجا وبلاگی در مورد جبران خدمت و روش تنظیم چرخش وجود دارد
ترکیب را اصلاح کنید
هر شیفت با یک گزارش توجیهی در مورد رویدادهای اصلی، مشاهدات، و هرگونه مشکل مهمی که باید به عنوان بخشی از واگذاری شیفت قبلی برطرف شود، به مهندس آمادهکننده شروع میشود. در مرحله بعد، SRE ترمینال خط فرمان، کنسول های مانیتورینگ، داشبوردها و صف بلیط را برای آماده شدن برای جلسه تماس باز می کند.
هشدار با Slack و Teams
بر اساس معیارها، تیم های SRE و توسعه SLI ها را شناسایی کرده و هشدار تولید می کنند. سیستمهای مانیتورینگ مبتنی بر رویداد را میتوان برای ارسال هشدارها بر اساس رویدادها علاوه بر دادهها تنظیم کرد. سناریوی زیر را در نظر بگیرید: تیم مهندسی و SREها (در طول زمان توسعه بدون تماس) تصمیم می گیرند از cassandra_threadpools_activetasks متریک به عنوان SLI برای ردیابی عملکرد خوشه Cassandra تولیدی استفاده کنند. در این مثال، فایل YAML مدیریت هشدار Prometheus می تواند توسط SRE برای پیکربندی هشدار استفاده شود. حاشیه نویسی که در نمونه زیر برجسته شده است می تواند برای انتشار هشدارها استفاده شود. یکی از راه های ارتباط با سیستم های مدیریت پاسخ حادثه معاصر، استفاده از این حاشیه نویسی است.
مدیر هشدار Prometheus زمانی که شرایط هشدار برآورده شد، هشدار را به پلت فرم مدیریت واکنش حادثه ارسال می کند. مهندس SRE در حال تماس باید تعداد وظایف فعال داشبورد را از نزدیک بررسی کند و با بررسی معیارها علت تعداد بیش از حد وظایف را مشخص کند. پس از مشخص شدن علت باید اقدام اصلاحی انجام شود.
ادغام جهانی این سیستم های هشدار با یک سیستم فروش بلیط، مانند پلت فرم مدیریت بلیط Jira Atlassian، توصیه می شود. هر هشدار باید به تنهایی یک بلیط تولید کند. SRE و همه ذینفعان دیگری که به طور مناسب به هشدار پاسخ دادند، باید بلیط را پس از رسیدگی به روز کنند.
عیب یابی
SRE باید یک کنسول ترمینال برای استفاده از SSH یا سایر ابزارهای CLI ارائه شده توسط سازمان در شروع زمان تماس داشته باشد. کارکنان مهندسی یا خدمات مشتری ممکن است برای کمک در مورد مشکل فنی با SRE در حال تماس تماس بگیرند. به عنوان مثال، فرض کنید که عملکرد کاربر در پلتفرم – مانند زدن دکمه پرداخت سبد خرید – یک شناسه درخواست متمایز ایجاد می کند. اجزای مختلف سیستم توزیع شده – مانند سرویس پایگاه داده، سرویس متعادل کننده بار، سرویس محاسباتی و سایر موارد – همه با این درخواست تعامل دارند. SRE ممکن است شناسه درخواست را دریافت کند. هنگام دریافت آن، آنها قرار است اطلاعاتی در مورد چرخه عمر شناسه درخواست ارائه دهند. برخی از نمونههای این دادهها شامل ماشینها و اجزایی است که درخواست را ثبت کردهاند.
اگر مشکل فوراً آشکار نشود، ممکن است برای بررسی مشکلات شبکه مورد نیاز باشد، مانند سناریویی که شناسه درخواست ذکر شده در بالا توسط هیچ سرویسی ثبت نشده است. SRE ممکن است از TCPDump برای Wireshark، دو برنامه تحلیل بسته منبع باز، برای ضبط بسته ها استفاده کند تا مشکلات مربوط به شبکه را رد کند. SRE ممکن است از تیم شبکه کمک بگیرد و از آنها بخواهد که بسته ها را در این کار پر زحمت بررسی کنند.
هنگام عیبیابی چنین چالشهایی، دانش جمعآوریشده از پسزمینههای مختلف SRE در یک تیم معین، بدون شک مفید خواهد بود. به عنوان بخشی از فرآیند سوار شدن، همه این اقدامات باید ثبت شوند و متعاقباً برای آموزش SREهای جدید مورد استفاده قرار گیرند.
پیاده سازی
SRE در حال تماس باید در ساعات کاری مسئول مراحل استقرار باشد. در صورتی که مشکلی پیش بیاید، SRE باید بتواند مشکلات را حل کند و تغییرات را معکوس یا ارسال کند. SRE فقط باید استقرارهای اضطراری تأثیرگذار بر تولید را انجام دهد و دانش کافی برای کمک به تیم توسعه در جلوگیری از هرگونه تأثیر منفی بر تولید را دارد. فرآیند مدیریت تغییر باید از نزدیک با رویههای استقرار، که باید کاملاً مستند باشد، ادغام شود.
مدیریت بلیط (Jira، Slack، JSM، Pagerduty)
SRE ها به دقت بر بلیط هایی که در صف های خود ارسال می شوند و در انتظار اقدام هستند نظارت می کنند. این بلیتها اولویت کمتری نسبت به آنهایی دارند که ناشی از مشکلات تولید مداوم هستند، زیرا یا توسط برنامه هشدار تولید شدهاند یا توسط تیمهای دیگر افزایش یافتهاند.
این روال معمول برای هر بلیط ارائه یک بیانیه در مورد اقدامات SRE است که تکمیل شده است. اگر کاری در مورد آنها انجام نشود، بلیط ها باید به تیم های مربوطه ارسال شوند. هنگامی که یک تیم SRE به تیم دیگر منتقل می شود، صف ایده آل باید خالی باشد.
Pagerly می تواند در مورد بلیط های زیر در ابزارهایی مانند Jira، Pagerduty، Opsgenie کمک کند
تشویق به افزایش ریسک
SREهایی که در حال تماس هستند بیشتر تحت تأثیر این مشکلات قرار می گیرند. اگر نرمافزار نظارت و هشدار نتواند به آنها اطلاع دهد یا مشکلی وجود داشته باشد که کشف نشده است و تنها زمانی کشف میشود که مشتری آن را گزارش کند، SRE در حال تماس باید از تمام مهارتهای خود برای حل سریع مشکل استفاده کند. تیمهای توسعه مربوطه نیز باید توسط SRE برای کمک به خدمت گرفته شوند.
پس از رفع مشکل، به همه ذینفعان مربوطه باید یک بلیط با مستندات جامع حادثه، خلاصهای از تمام اقدامات انجام شده برای رفع مشکل، و توضیحی در مورد آنچه که میتواند خودکار و در آن اطلاعرسانی شود، داده شود. مهمتر از همه تلاشهای توسعه دیگر، این بلیط باید ابتدا توسعه یابد.
پروتکل های انتقال
در طول هر انتقال مسئولیت های SRE، قراردادهای خاصی باید رعایت شود تا امکان واگذاری یکپارچه مسئولیت های آماده به کار به پرسنل بعدی فراهم شود. یکی از این استانداردها دادن یک بسته خلاصه به فردی که در تماس بعدی است می باشد. هر بلیط در شیفت باید با اقدامات انجام شده برای حل آن، هرگونه نظر یا درخواست اضافی از کارکنان SRE، و هر گونه شفاف سازی از تیم توسعه، به روز و مستند شود. این بلیط ها باید بر اساس اینکه چگونه بر قابلیت اطمینان و در دسترس بودن پلت فرم تاثیر می گذارند، دسته بندی شوند. بلیط هایی که بر تولید تأثیر می گذارند باید علامت گذاری و طبقه بندی شوند، به ویژه برای پس از مرگ. پس از جمعآوری و طبقهبندی آن، این فهرست بلیطها توسط SRE در حال تماس باید برای تحویل در یک کانال ارتباطی مشترک بارگذاری شود. ممکن است تیم تصمیم بگیرد از کانال Slack متفاوت، تیم های مایکروسافت یا ویژگی های مشترک موجود در پلتفرم های واکنش به حادثه مانند Pagerly برای این کار استفاده کند. دسترسی به این خلاصه برای کل سازمان SRE باید امکان پذیر باشد.
ملاقات پس از مرگ
هر هفته، تمام مدیران مهندسی و SREها در این جلسه شرکت می کنند. قالب جلسات پس از مرگ در فلوچارت زیر مشخص شده است.
اطمینان از اینکه مشکلات برجسته شده دیگر تکرار نمی شوند، مهم ترین نتیجه پس از مرگ است. انجام این کار آسانی نیست. اقدامات اصلاحی می تواند شامل هر چیزی اساسی مانند ایجاد یک اسکریپت یا معرفی بررسی کد بیشتر باشد، یا می تواند شامل موارد پیچیده تری مانند طراحی مجدد کل برنامه باشد. برای نزدیک شدن به هدف جلوگیری از مشکلات تکراری تا حد امکان، SRE و تیم های توسعه باید همکاری نزدیک داشته باشند.
یک استراتژی تشدید ایجاد کنید
هر بار که مشکلی پیش می آید، باید یک تیکت با موارد اقدام لازم، اسناد و درخواست های ویژگی ثبت شود. اغلب بلافاصله مشخص نیست که کدام تیم یک بلیط خاص را مدیریت می کند. ویژگی های مسیریابی و برچسب گذاری پیجری امکان خودکارسازی این فرآیند را فراهم می کند که به غلبه بر این مانع کمک می کند. ممکن است ابتدا به عنوان یک بلیط خدمات مشتری شروع شود و بر اساس نوع و شدت رویداد، ممکن است به تیم های مهندسی یا SRE ارسال شود. بلیط پس از رسیدگی تیم مربوطه به خدمات مشتریان بازگردانده می شود. راه حل ممکن است شامل برقراری ارتباط با مشتری باشد یا ممکن است فقط شامل مستندسازی و بستن موضوع باشد. علاوه بر این، این بلیط در پس از مرگ برای تجزیه و تحلیل بیشتر بررسی می شود و بخشی از روند انتقال خواهد بود. برای کاهش خستگی هشدار، توصیه می شود که موضوع را به طور دقیق طبقه بندی و به بالاترین سطح تخصص اختصاص دهید.
افزایش بارگذاری صفحه
صفحهبندی اغلب در میان اعضای تیمهای مهندسی در حال تماس اتفاق میافتد. به منظور به حداقل رساندن فرکانس صفحه بندی، صفحات باید به دقت برای تیم های مناسب هدف گذاری شوند. هنگامی که مشکلی وجود دارد که یک صفحه در اینترنت را تضمین می کند، تیم خدمات مشتری معمولاً اولین فردی است که با آن تماس می گیرد. از آن نقطه به بعد، همانطور که در قسمت قبل به آن پرداخته شد، چندین تحقیق و مراحل تشدید باید اتخاذ شود.
هر زنگ هشدار باید یک برنامه مدون و روش های حل و فصل داشته باشد. به عنوان مثال، هنگامی که یک مشتری مشکلی را گزارش میکند، SRE باید بررسی کند که آیا هشدارها هنوز در حال اجرا هستند یا خیر و تعیین کنند که آیا به هر طریقی به مشکل مشتری متصل هستند یا خیر.
محدود کردن بازدید از صفحه SRE به موضوعات خوب واقعی باید هدف باشد. زمانی که نمی توان تصمیم گرفت که کدام تیم را صفحه کنید، یک کانال ارتباطی مرکزی باید ایجاد شود تا SRE، مهندسی، خدمات مشتری و سایر اعضای تیم بتوانند در آن شرکت کنند، در مورد آن صحبت کنند و به مشکل رسیدگی کنند.
نگهداری Runbook
Runbook خلاصهای از اقدامات دقیق – از جمله دستورات – است که یک مهندس SRE برای رسیدگی به یک حادثه خاص باید انجام دهد، برخلاف یک برگه تقلب که هر دستور را برای یک پلتفرم خاص (مانند Kubernetes یا Elasticsearch) فهرست میکند. هنگام حل مشکلات، زمان بسیار مهم است. اگر مهندس در حال تماس در این موضوع به خوبی تسلط داشته باشد و فهرستی از دستورالعمل ها و موارد عملی را در اختیار داشته باشد، می تواند راه حل ها را با سرعت بیشتری اجرا کند.
به عنوان یک تیم، شما ممکن است یک Runbook را به صورت متمرکز مدیریت کنید، یا هر فرد ترجیح می دهد که خود را داشته باشد. در اینجا یک نمونه runbook برای شما آورده شده است.
می توان استدلال کرد که تعداد زیادی از وظایف موجود در یک runbook می توانند به صورت خودکار، با جنکینز انجام شوند یا به عنوان کارهای یکپارچه سازی پیوسته جداگانه ساخته شوند. اگرچه این بهترین سناریو است، اما همه تیم های SRE آنقدر تجربه ندارند که آن را بدون نقص انجام دهند. یک runbook موثر همچنین می تواند یک کتابچه راهنمای مفید برای خودکارسازی وظایف باشد. نیاز یک مهندس برای خط فرمان ثابت است، بنابراین هر چیزی که باید به طور منظم در ترمینال وارد شود، یک انتخاب عالی برای یک runbook است.
پیجرلی دارای گردش کار است که به حاشیه نویسی هر هشدار کمک می کند و سعی می کند runbook را به روز نگه دارد
نتایجی که اظهار شده
ایجاد یک برنامه چرخشی حین تماس که کار می کند و پایدار است نیاز به تفکر دقیق دارد. اینها شامل آماده سازی تغییرات و برنامه ریزی شیفت، ایجاد مکانیزم تشدید، و برگزاری جلسات تجزیه و تحلیل پس از مرگ پس از هر رویداد است. پیجرلی برای برنامه ریزی، انجام، نظارت و خودکارسازی وظایف مربوط به مسئولیت های استاندارد مهندسی قابلیت اطمینان سایت، مانند چرخش در حین تماس، ساخته شده است.