مشکلاتی که باید در برنامه‌های ابری در مقیاس بالا اجتناب کنید

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

“همه چیز شکست می خورد، همیشه.”

-ورنر فوگلز (CTO، آمازون)

1. محدودیت های همزمانی و نرخ

چرا اهمیت دارد

  • همه ارائه‌دهندگان ابر اصلی (AWS، Azure، GCP) محدودیت‌های همزمانی و نرخ را برای تماس‌های API، فراخوانی عملکرد، یا تامین منابع اعمال می‌کنند.
  • افزایش ناگهانی ترافیک می تواند باعث شود Too Many Requests یا LimitExceeded خطاها، سرویس شما را قطع می کند.

چگونه رفع کنیم

  1. درخواست افزایش سهمیه: نظارت بر استفاده در کنسول ابری (مثلاً سهمیه خدمات AWS) و افزایش محدودیت ها قبل از افزایش ترافیک.

  2. معرفی صف و ذخیره سازی: با AWS SQS، RabbitMQ، یا Redis، ترافیک جلویی را از سرویس‌های بک‌اند جدا کنید تا نوسانات را جذب کنید.

# Example: Serverless Framework snippet for AWS Lambda & SQS
# Smooth out traffic by letting messages queue instead of...

Source link