Microservices Were Organizational
Нашата микросървис архитектура точно отразяваше нашата организационна структура. Това е Законът на Conway в действие.
Конфигурацията:
- Екип A (5 души) → User Service
- Екип B (5 души) → Order Service
- Екип C (5 души) → Payment Service
- Екипите комуникират чрез API договори
Какво се случи по време на реорганизация:
- Екипи A и B се сляха
- Новият екип притежава User + Order услуги
- Но User и Order имат строги API договори
- Сега същият екип координира чрез HTTP
- Overhead за нулева полза
Обратният проблем:
- Екип C се раздели на Payment + Fraud екипи
- Но Payment услугата обработва и двете
- Два екипа, една кодова база
- Постоянни merge конфликти
- Няма независимо внедряване
Урокът:
- Дизайнът на системата следва границите на екипа
- Реорганизациите изискват промени в архитектурата
- Или архитектурата ограничава реорганизациите
- Нито едно не е безплатно
Урок: Проектирайте екипите си преди да проектирате архитектурата. Или очаквайте болезнено преподреждане по-късно.