Разделянето на монолит е трудно. Сливането на микросървиси обратно? По-трудно.

Планът:

  • 10 малки услуги, правещи свързани неща
  • Обединяване в 3 домейн услуги
  • Оценка: 6 седмици

Реалността:

  • Продължителност: 6 месеца
  • Скрити асинхронни зависимости навсякъде
  • 3 различни модела на опашка за съобщения
  • Несъвместимости в схемите
  • Race conditions, които се проявяваха само при мащаб

Какво открихме:

  • Услуга A очакваше JSON, Услуга B изпращаше XML
  • Услуга C имаше недокументирани предположения за кеширане
  • Две услуги притежаваха една и съща концепция за данни по различен начин
  • Никой не знаеше пълната графа на зависимости

Уроци:

  • Документирайте договорите за услуги обсесивно
  • Поддържайте актуална графа на зависимости
  • Консолидацията е пренаписване, не рефакторинг
  • Разгледайте Strangler Fig модела в обратен ред

Урок: Разделянето е (до известна степен) обратимо. Цената на обръщане расте с времето.


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