چک لیست آمادگی تولید

ترجمه مقاله به طور اختصاصی برای دانشجویان دوره تهیه شده است "روش ها و ابزارهای DevOps"، که از امروز شروع می شود!

چک لیست آمادگی تولید

آیا تا به حال سرویس جدیدی را وارد مرحله تولید کرده اید؟ یا شاید شما در حمایت از چنین خدماتی مشارکت داشتید؟ اگر بله، چه چیزی به شما انگیزه داد؟ چه چیزی برای تولید خوب است و چه چیزی بد؟ چگونه اعضای تیم جدید را در مورد انتشار یا نگهداری خدمات موجود آموزش می دهید.

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

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

سازمان های موفق:

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

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

چه زمانی یک سرویس را برای آمادگی برای تولید بررسی کنیم؟

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

بررسی کنید چه زمانی:

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

چک لیست آمادگی تولید

چند وقت پیش، به عنوان مثال، من опубликовала چک لیست برای تست آمادگی برای تولید. اگرچه این فهرست از مشتریان Google Cloud منشا گرفته است، اما در خارج از Google Cloud مفید و قابل اجرا خواهد بود.

طراحی و توسعه

  • یک فرآیند ساخت تکرارپذیر ایجاد کنید که نیازی به دسترسی به خدمات خارجی نداشته باشد و به خرابی سیستم های خارجی وابسته نباشد.
  • در طول دوره طراحی و توسعه، SLO را برای خدمات خود تعریف و تنظیم کنید.
  • انتظارات برای در دسترس بودن خدمات خارجی که به آنها وابسته هستید را مستند کنید.
  • با حذف وابستگی ها به یک منبع جهانی، از یک نقطه شکست اجتناب کنید. زمانی که منبع در دسترس نیست، منبع را تکرار کنید یا از یک بازگشت استفاده کنید (مثلاً یک مقدار کدگذاری شده).

مدیریت پیکربندی

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

مدیریت انتشار

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

قابلیت مشاهده

  • اطمینان حاصل کنید که مجموعه معیارهای مورد نیاز برای SLO جمع آوری شده است.
  • اطمینان حاصل کنید که می توانید بین داده های مشتری و سرور تفاوت قائل شوید. این برای یافتن علل خرابی مهم است.
  • هشدارها را برای کاهش هزینه های نیروی کار تنظیم کنید. به عنوان مثال، هشدارهای ناشی از عملیات معمول را حذف کنید.
  • اگر از Stackdriver استفاده می کنید، معیارهای پلتفرم GCP را در داشبورد خود قرار دهید. هشدارهایی را برای وابستگی های GCP تنظیم کنید.
  • همیشه ردیابی های ورودی را منتشر کنید. حتی اگر درگیر ردیابی نباشید، این امر به سرویس‌های سطح پایین‌تر اجازه می‌دهد تا مشکلات تولید را رفع کنند.

حفاظت و ایمنی

  • مطمئن شوید که تمام اتصالات خارجی رمزگذاری شده اند.
  • مطمئن شوید که پروژه های تولیدی شما دارای تنظیمات IAM صحیح هستند.
  • از شبکه ها برای جداسازی گروه هایی از نمونه های ماشین مجازی استفاده کنید.
  • از VPN برای اتصال ایمن به شبکه های راه دور استفاده کنید.
  • مستندسازی و نظارت بر دسترسی کاربر به داده ها. اطمینان حاصل کنید که تمام دسترسی کاربر به داده ها حسابرسی و ثبت شده است.
  • اطمینان حاصل کنید که نقاط پایانی اشکال زدایی توسط ACL محدود شده است.
  • ورودی کاربر را ضد عفونی کنید پیکربندی محدودیت اندازه بار برای ورودی کاربر.
  • اطمینان حاصل کنید که سرویس شما می تواند به طور انتخابی ترافیک ورودی را برای تک تک کاربران مسدود کند. این کار بدون تأثیرگذاری بر سایر کاربران، تخلفات را مسدود می کند.
  • از نقاط پایانی خارجی که عملیات داخلی زیادی را آغاز می کنند اجتناب کنید.

برنامه ریزی ظرفیت

  • نحوه مقیاس خدمات خود را مستند کنید. به عنوان مثال: تعداد کاربران، اندازه بار ورودی، تعداد پیام های دریافتی.
  • منابع مورد نیاز برای خدمات خود را مستند کنید. به عنوان مثال: تعداد نمونه های اختصاصی ماشین مجازی، تعداد نمونه های Spanner، سخت افزارهای تخصصی مانند GPU یا TPU.
  • محدودیت های منابع سند: نوع منبع، منطقه و غیره
  • محدودیت های سهمیه ای برای ایجاد منابع جدید را مستند کنید. به عنوان مثال، اگر از API برای ایجاد نمونه های جدید استفاده می کنید، تعداد درخواست های GCE API را محدود کنید.
  • اجرای تست های بار را برای تجزیه و تحلیل کاهش عملکرد در نظر بگیرید.

همین. در کلاس می بینمت!

منبع: www.habr.com

اضافه کردن نظر