Нашите Kubernetes услуги бяха приказливи. Прекалено приказливи. Трансфер на данни между AZ: $8K/месец.

Архитектурата:

  • 20 микросървиси
  • Разпределени в 3 AZ (добре за HA)
  • Услугите се извикват често
  • Всяка заявка: средно 5 между-услугови извиквания

Математиката:

  • Трансфер на данни между AZ: $0.01/GB (във всяка посока)
  • 2/3 от извикванията пресичат граници на AZ
  • Среден размер на заявка: 50KB
  • 1M заявки/ден × 5 извиквания × 50KB × 2/3 между-AZ
  • = ~160GB/ден между-AZ = ~$50/ден = $1,500/месец на услуга

Разгледани решения:

  • ❌ Единичен AZ: Губи високата достъпност
  • ✅ Маршрутизиране съобразено с топологията: Предпочитане на same-AZ pods
  • ✅ Намаляване на размерите на payload (компресия, пагинация)
  • ✅ Групиране на API извиквания където е възможно
  • ✅ Service mesh с locality-aware балансиране на натоварването

Резултат: 60% намаление на между-AZ трафика с Istio locality-aware маршрутизиране.

Урок: Високата достъпност има цена. Знайте каква е.


← Назад към Научени Уроци