برنامه نویسی

کوچک کردن فضای ذخیره سازی پایگاه داده MySQL RDS با زمان خاموشی صفر با استفاده از AWS Blue/Green Deployment

به‌عنوان یک مهندس DevOps، می‌بینید که پایگاه‌های داده RDS را در حال بهینه‌سازی و بهینه‌سازی می‌کنید که بار کاری شما را تقویت می‌کند، احتمالاً مبارزه با به‌روزرسانی پایگاه‌های داده را می‌دانید، مخصوصاً اگر بسته به آنها حجم کاری سنگینی داشته باشید. خطر تجربه خرابی در طول تولید زیاد است. مدیریت پایگاه داده سنتی اغلب منجر به یک موقعیت 22 می شود که در آن شما می خواهید پایگاه داده خود را برای عملکرد بهتر به روز کنید اما از خرابی پایگاه داده می ترسید.

خب دیگه نگران نباش! در این مقاله، روش استقرار آبی/سبز AWS را بررسی می کنیم که به شما امکان می دهد سرویس پایگاه داده رابطه ای (RDS) خود را با توقف صفر. بله درست خواندید: توقف صفر، و مانند جادو عمل می کند!

از توضیح استراتژی استقرار آبی/سبز گرفته تا ارائه راهنمای گام به گام در مورد نحوه استفاده از آن در AWS، این مقاله هر آنچه را که باید هنگام به‌روزرسانی نمونه پایگاه داده RDS خود بدون به خطر انداختن در دسترس بودن بدانید، پوشش می‌دهد.

بنابراین، بیایید مستقیم شیرجه بزنیم!

آماده سازی

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

این یک تمرین DevOps خوب است که به تیم بزرگتر اطلاع دهید که چه زمانی برای انجام چنین تغییراتی برنامه ریزی می کنید.

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

همین تمرین را می توان با استفاده از هر دو به دست آورد

  • کنسول AWS RDS
  • AWS CLI
  • AWS SDK

برای تمرین خود از آن استفاده خواهیم کرد کنسول AWS RDS
NB قبل از اجرای پیاده‌سازی آبی/سبز برای یک نمونه MySQL یا RDS مبتنی بر Mariad، لطفاً فعال کنید پشتیبان گیری خودکار پیوند

مرحله 1

برای نسخه نمایشی خود، فضای ذخیره سازی را از 400 گیگابایت به 200 گیگابایت افزایش می دهیم. کلاستر پایگاه داده ما از یک Master و 3 Replica مانند شکل زیر تشکیل شده است.

توضیحات تصویر

  • پایگاه داده اصلی را از خوشه انتخاب کنید
  • را کلیک کنید اقدامات سپس بر روی کلیک کنید استقرار آبی/سبز را ایجاد کنید از منوی کشویی برای باز کردن صفحه “آبی”

مرحله 2

ما باید یک کپی از محیط تولید ایجاد کنیم، که در اینجا به عنوان محیط آبی به یک محیط صحنه سازی به نام سبز اشاره می شود

توضیحات تصویر

به استقرار آبی/سبز خود یک نام شناسه بدهید، به یاد داشته باشید که این شناسه به حروف بزرگ و کوچک حساس نیست، اما به صورت تمام حروف کوچک ذخیره می شود.

مرحله 3

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

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

توضیحات تصویر

مرحله 4

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

توضیحات تصویر

مرحله 5

وظیفه اصلی ما تمرکز بر کوچک کردن فضای ذخیره سازی اختصاص داده شده برای استقرار سبز است.

توضیحات تصویر

به روز رسانی پیکربندی در کنسول AWS در یک صفحه انجام می شود و در کل کلاستر پایگاه داده تکرار می شود.

به یاد داشته باشید که ما در حال کاهش حجم ذخیره سازی برای پایگاه داده اصلی هستیم و همانطور که در شکل های زیر نشان داده شده است 3 نسخه مشابه است.

  • نمای کنار هم از استقرارهای اصلی آبی و سبز که به‌روزرسانی‌ها را برجسته می‌کنند.

توضیحات تصویر

  • نمای کنار هم از کپی های پایگاه داده آبی/سبز که تغییرات ایجاد شده را برجسته می کند

توضیحات تصویر

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

توضیحات تصویر

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

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

زمان خرابی صفر، فقط کمی تأخیر در محیط Primary Cluster (آبی) وجود دارد.

بسیاری از جادوها در زیر کاپوت اتفاق می افتد، AWS تغییر نام قرارداد نامگذاری کلاستر DB استقرار سبز را برای مطابقت با محیط آبی انجام می دهد، از جمله به روز رسانی نقاط پایانی برای Master و Replicas.

شما نیازی به به روز رسانی پیکربندی برنامه خود نخواهید داشت، بیشترین کاری که من انجام دادم این بود که تیم توسعه دهنده را از طریق Slack در مورد این تمرین مطلع کردم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا