Вместе со значительным увеличением числа сервисов по сравнению с монолитом, вы получаете рост точек интеграции, усложнение процесса CI/CD и распределение мастер-данных, что значительно усложнит всю инфраструктуру. Шанс получить проблему в бою будет очень высоким, если целенаправленно не вкладываться в fault tolerance на всех уровнях: проектирование архитектуры, разработка и тестирование (рис. 52).
Рис. 52. Метафора стабильности систем
Чтобы создавать стабильные системы, выдерживающие «толчки» внешней среды, заложите в бюджет перехода на микросервисы следующее:
1. Нагрузочное и стресс-тестирование и, в идеале, применение chaos engineering[83].
2. Применение шаблонов проектирования, таких как Circuit Breaker и Tolerant Reader.
3. Настройка инфраструктуры: service discovery, health-check.