Разделихме монолита ни на 15 микросървиси за 3 месеца. После прекарахме 2 години в поправяне на границите.

Как разделихме:

  • Една услуга на таблица в базата данни
  • "Това изглежда като естествена граница"
  • Пусни бързо, поправяй после

Какво объркахме:

  • Order услугата се нуждаеше от Customer данни
  • Customer услугата се нуждаеше от Order история
  • Всяка заявка: 5+ между-услугови извиквания
  • Разпределени joins през HTTP (да, наистина)

Симптомите:

  • P99 латентност: 50ms → 800ms
  • Една услуга надолу = всичко счупено
  • Екипите не можеха да релийзват независимо (цялата идея)
  • Несъответствие на данни между услугите

Какво трябваше да направим:

  • DDD event storming първо
  • Намиране на реални bounded contexts
  • Разделяне по бизнес възможност, не по таблица
  • Валидиране на границите с модели на трафика

Урок: Границите на услугите са най-трудното нещо за правилно определяне. Отделете си време.


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