Термин
Микросервисы
Архитектура программного обеспечения, при которой приложение состоит из множества небольших самостоятельных сервисов, каждый из которых отвечает за одну область и общается через API. Облегчает независимую разработку и масштабирование, но усложняет эксплуатацию.
Обновлено
Что это значит
Микросервисы - программная архитектура, в которой приложение состоит из множества небольших самостоятельных сервисов. Каждый отвечает за одну область, например заказы, платежи, склад или счета, имеет собственные данные и общается с другими через API, чаще всего через REST API или сообщения.
Противоположность - монолит, то есть одно большое приложение, где все части связаны в одном коде и разворачиваются одновременно. Монолит проще в начале, но с ростом его труднее менять и масштабировать. Микросервисы позволяют разным командам разрабатывать и выпускать свои части независимо.
Микросервисы обычно работают в контейнерах, которые обеспечивает контейнеризация, а управляют ими оркестраторы вроде Kubernetes. Поэтому каждый сервис можно масштабировать отдельно, например добавить мощности только платёжному сервису во время распродажи.
Как это работает на практике
Архитектура оправдана для больших и быстро растущих приложений с несколькими командами, где важны независимость и частые изменения. Выпуск каждого сервиса идёт автоматически через CI/CD, а эксплуатацию обеспечивает команда в культуре DevOps, отвечающая за сервис от разработки до работы в продакшене.
Разделение приложения на сервисы должно соответствовать бизнес-областям, а не техническим слоям. Сервис счетов должен содержать всё, что относится к выставлению счетов, чтобы при изменении правил, например при переходе на электронные счета, не пришлось править десять разных частей.
При множестве сервисов необходим централизованный сбор логов, метрик и трассировки запросов через сервисы. Без него поиск ошибки, возникшей где-то в цепочке из пяти сервисов, очень долог. Важна и документация интерфейсов между сервисами.
На что обратить внимание
Микросервисы заметно усложняют эксплуатацию: больше выпусков, сетей, мониторинга и вариантов сбоя связи. Для небольшой команды или простого продукта часто лучше хорошо структурированный монолит, который можно разделить позже, когда для этого появятся реальные причины.
Поскольку у каждого сервиса свои данные, сложнее обеспечить согласованность, например чтобы заказ, платёж и складское движение всегда совпадали. Для финансовых и учётных процессов нужно тщательно продумать обработку ошибок и повторов, чтобы не возникали двойные платежи или пропавшие документы.
Нужно объяснить термин на вашей конкретной ситуации? Консультации от 55 € / час без НДС, в зависимости от темы и сложности.