پرش به مطلب اصلی

شیوه‌نامه اسناد استقرار سرویس

برای نوشتن اسناد راهنمای استقرار یک سرویس باید به بخش‌های زیر پرداخته شود:

آشنایی با سرویس

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

برای مثال زمانی که یک پایگاه داده را مستقر می‌نماییم متوجه می‌شویم که باید به یک روش داده ذخیره شده در آن مانا (persistent) شود. یا زمانی که یک وبسرور را مستقر می کنیم متوجه می‌شویم که باید پهنای باند کافی برای تبادل ترافیک وجود داشته باشد و ارتباط با سرویس‌های مرتبط توسط دیوار آتش (firewall) یا سیاست‌های شبکه (network policies) مجاز شمرده شود. این مورد ممکن است خارج از کنترل ما باشد نیاز به تغییر محل استقرار سرویس یا استقرار سیستم‌های جانبی واسط ترافیک داشته باشد. برای مثال زمانی که سرویس قصد اتصال به یک آدرس تحریم شده دارد باید آن را خارج از کشور مستقر نمود یا از سرویس‌های رفع تحریم استفاده کرد.

همچنین ارجاع به مستندات رسمی سرویس در این بخش انجام می‌شود.

پارامتر‌ها و پیکربندی

پارامترهای مربوط به استقرار سرویس معمولا داخل فایل‌های تعریف سرویس مشخص می‌شوند و بسته به نوع orchestrator و ابزار استفاده شده به شکل خاصی تعریف می‌شوند. برای مثال اگر از ابزار helm استفاده شود این پارامترها از طریق فایل values.yml مشخص می‌شود. در این بخش می‌توان به مستندات مربوط به ارائه دهنده چارت یا ایمیج ارجاع داد اما موارد مهم باید در این بخش به شکل جداگانه توضیح داده شوند.

پیکربندی مربوط به سرویس به صورت کلی از سه روش تعریف متغیرهای محیطی (Environment Variables)، تعریف فایل پیکربندی و تعریف آرگومان برای دستور اجرایی انجام می‌شود. در این بخش باید توضیحات لازم در مورد هر یک از پیکربندی‌های با اهمیت داده شود و در صورت لزوم به مستندات رسمی ارجاع داده شود.

همچنین ممکن است برخی از پیکربندی‌ها در محیط گرافیکی یا محیط خط فرمان سرویس انجام شود. این موارد نیز باید در این بخش نوشته شده و تذکر داده شود که این مورد باید داخل مستندات زیرساخت پروژه نیز ثبت شود.

تخمین منابع

برای انتخاب محیط مناسب و هزینه‌های زیرساختی اجرای سرویس باید تخمینی از منابعی که سرویس برای اجرا لازم دارد داشته باشیم.

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

در صورتی که در مستندات رسمی یا منابع معتبر دیگر به این مورد پرداخته شده باشد می‌توان در این بخش به آن ارجاع داد.

به‌روزرسانی

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

در صورتی که مستندات رسمی برای ارتقای سرویس وجود دارد باید در این بخش به آن ارجاع داده شود.

مقیاس پذیری و دسترسی پذیری بالا

ملاحظات و پیکربندی‌هایی که برای استقرار این سرویس در حالت دسترسی پذیری بالا و یا برای مقیاس بالای پردازشی مورد نیاز است در این بخش نوشته می‌شود.

در صورت وجود مستندات رسمی یا مستندات معتبر دیگر می‌توان در این بخش به آن ارجاع نمود.

بازیابی فاجعه

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

در این بخش باید روند پشتیبان گیری، اجرای مجدد سرویس با تنظیمات قبلی و بازگردانی پشتیبان توضیح داده شود. در صورت وجود مستندات رسمی و یا مستندات معتبر دیگر می‌توان در این بخش به آنها ارجاع داد.

نظارت و بررسی سلامت

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

در این بخش باید توضیحات لازم برای نحوه نظارت بر سرویس نوشته شود.

در صورت ابزارهای جانبی‌ای که برای نظارت بر این سرویس قابل استفاده است را نیز می‌توان در این بخش معرفی کرد و نحوه تنظیم آن را بیان نمود.

در نهایت باید تخمینی از باری که این سرویس روی سامانه نظارت وارد می کند ارائه شود. برای مثال تعداد متریک‌ها و حجم متریک‌ها در بازه زمانی مشخص تخمین زده شود.

در نهایت روش‌هایی که می‌توان سلامت این سرویس را برای مدیر خوشه (orchestrator, scheduler) مشخص کرد باید در این بخش بیان شوند. با تعریف این روش‌ها در بخش Health Check سرویس به مدیر خوشه امکان استقرار مجدد سرویس در صورت عدم سلامت سرویس فعلی را می‌دهیم.

نمونه فایل تعریف سرویس

در این بخش باید نمونه ای از تعریف سرویس در فرمت‌های kubernetes manifest و docker compose به منظور سهولت به کارگیری قرار داده شود و نکات مربوط به استفاده از آن نوشته شود.