В настоящее время микросервисная архитектура пользуется огромной популярностью.
Это подход к разработке программного обеспечения, при котором приложения состоят из независимых сервисов, выполняющих определённые функции. В этом подходе каждый сервис отделен от других и полностью независим. Каждый такой сервис может быть запущен в изолированной среде и работать независимо от всех остальных сервисов. Это позволяет создавать приложения с высокой гибкостью и масштабируемостью. Например, если сервис не работает, то приложение может продолжать работать, не теряя функциональности.
Это архитектура, которая позволяет использовать различные сервисы для решения бизнес задач. В качестве сервисов чаще всего используются: ORM, СУБД, БД, сервер приложений, веб-сервер, API, библиотека классов, хранилище данных. При этом сервисы могут быть как внешними, так и внутренними. Таким образом, микросервис — это сервис, который состоит из нескольких сервисов. Как правило, один сервис — это одно приложение.
Это позволяет нам избавиться от одного большого приложения и снизить затраты на его поддержку, поскольку сервисы можно запускать в различных средах. К тому же при использовании микросервисной архитектуры мы можем запускать новые сервисы, не останавливая старых.
При этом все приложения могут работать на разных серверах, а внутри процесса может быть несколько серверов. В итоге приложение должно работать как единый процесс, но при этом вы можете легко добавлять и удалять серверы, на которых оно работает. С точки зрения архитектуры это выглядит довольно сложно, но на практике все оказывается довольно просто.
Такое разделение на микросервисы позволяет нам создавать приложения, которые могут быть развернуты на разных серверах, а также позволяет нам настраивать и оптимизировать их работу, не заботясь о работе большого сервера.