2021-12-13 10:31:31
Микросервисы: проблемы, которые мы не замечаем by alextodef
Переехать в микросервисы можно двумя способами. Можно построить платформу — это надежно, но очень сложно. Или можно поднять Kubernetes и начать в него коммитить новые сервисы. Переезд проходит быстро и легко, но редко получается то, на что вы рассчитываете. Например, вместо микросервисной структуры вы можете обнаружить распределенный монолит.
Многие при этом не задумываются, правильно ли они пилят микросервисы. Как в синдроме утенка: увиденное самым первым становится единственно верным решением.
При распиле монолита получается не пара десятков, а огромное количество кубиков, каждый из которых по-своему устроен: у него свой код, фичи, тесты и запросы. А это значит, что порог вхождения в такую систему гораздо выше, чем порог вхождения в монолит. Микросервисы сложнее писать, нужно больше знать про распределенное взаимодействие, асинхронные транзакции, саги и прочее — масса новых вещей.
Сами сервисы становится сложнее поддерживать, для них нужно больше людей. Это накладывает определенные правила на коммуникации и межкомандное взаимодействие. Ещё сервисы сложнее мониторить. Для монолита обычно достаточно один раз написать мониторинг, метрики и алерты, а для сервисов это нужно делать каждый раз с нуля.
Каждая компания решает это по-своему, но не все полностью довольны результатом. Мы привыкаем к некоторым проблемам и перестаем их замечать, и даже можем их проблемами не считать. Но они есть и, во-первых, снижают ключевые метрики разработки. Например, стабильность системы (аптайм, ререйт) и TTM новых фич, то есть проблема аффектит тот или иной показатель. А во-вторых, могут привести к катастрофе в будущем.
Для каждой рассматриваемой проблемы автор дал оценку, как она влияет на TTM и на стабильность (если 0, то не влияет, если 10, влияет самым пагубным образом). Например, TTM 5/10 | Stability 2/10 .
Проблема №1. Процесс проектирования
- Последствия [ TTM 5/10 | Stability 6/10 ]
Проблема №2. Контракты
- Последствия [ TTM 2/10 | Stability 9/10 ]
Проблема №3. Зоопарк
- Последствия [ TTM 5/10 | Stability 2/10 ]
Проблема №4. Тестирование на стейдже
- Последствия [ TTM 7/10 | Stability 2/10 ]
Проблема №5. Сервисы катятся по-разному
- Последствия [ TTM 7/10 | Stability 4/10 ]
Проблема №6. Метрики
- Последствия [ TTM 5/10 | Stability 7/10 ]
Проблема №7. Алерты
- Последствия [ TTM 0/10 | Stability 11/10 ]
Проблема №8. Hope Driven Development
- Последствия [ TTM 0/10 | Stability 11/10 ]
Source >>>
Video TechLead Conf 2021 >>>
#analytics #case #ecom #efficiency #product #strategy #technology
144 viewsedited 07:31