Микросервисы: что они из себя представляют и каковы их преимущества
Непрерывная поставка (CD) — это методика, предполагающая использование автоматизации для выпуска ПО короткими итерациями.
Попробуйте Compass бесплатно
Improve your developer experience, catalog all services, and increase software health.
Примерно до 2013 года компании, как правило, разрабатывали корпоративные приложения в виде единых модулей с большой базой кода. Это монолитная архитектура. По мере усложнения программного обеспечения и роста популярности облачных вычислений такой подход утратил былую практичность.
С появлением продуктов «ПО как услуга» (приложений, предоставляемых в облаке) компании смогли привлекать поставщиков, таких как Amazon Web Services, для быстрого создания новых серверов и добавления избыточности. Благодаря этому работа служб не прерывалась во время обновлений, а в мире наступила новая эпоха скорости и гибкости. Пользователи стали ожидать быстрых обновлений и улучшений, что побудило компании изменить процессы разработки.
Приложения стали разбиваться на небольшие независимые службы, или микрослужбы. Так, например, папка входящих сообщений может создаваться не как часть монолитной платформы электронной коммерции, а как отдельная микрослужба, которая будет выполнять нужные функции.
Одновременно с этим разработчики объединялись в небольшие специализированные группы, которые могли изменять и улучшать отдельные службы, не подвергая риску работоспособность всего приложения. Эти группы часто отвечали и за эксплуатацию написанного ими кода, реализуя модель DevOps. В свете этих нововведений руководители проектов стали разрабатывать новые методики, в числе которых Agile — метод, согласно которому проекты выполняются путем частого выпуска небольших релизов.
Читайте дальше, чтобы узнать больше об устройстве приложений на основе микрослужб. Мы также расскажем, как Compass от Atlassian дает разработчикам возможность упростить управление этой архитектурной моделью и воспользоваться ее преимуществами.
Что такое микросервисы?
Микрослужба — это функционал, отвечающий за один элемент логики (за исключением предметно-ориентированных микрослужб, речь о которых пойдет далее). Из нескольких микрослужб собираются распределенные приложения, например Jira Software.

Существует три типа микрослужб:
- 1
Domain microservices loosely couple services with related functionality.
- 2
Интеграционные микрослужбы обеспечивают взаимодействие между несвязанными приложениями.
- 3
Микрослужбы элементарных операций выполняют отдельные функции.
Микрослужбы взаимодействуют друг с другом с помощью интерфейсов программирования приложений (API). Разработчики, отвечающие за отдельные службы, могут изучать внутреннюю работу других микрослужб, что является еще одним преимуществом перед монолитной архитектурой.
Архитектура на основе микрослужб дает множество преимуществ, но при этом усложняет систему. Именно поэтому компания Atlassian разработала решение Compass, которое упрощает управление архитектурой при масштабировании. Эта платформа для разработчиков объединяет все сведения о совместной работе команд и результатах разработки в одном центре с возможностью поиска.
Ключевые принципы микросервисов
Microservices-based architecture has several distinguishing features. Developers can develop and deploy their services independently using the languages and technologies that suit their components.
Communication between microservices is API-based, allowing access to data from various sources without modification. Individual services can scale based on demand, saving costs and ensuring availability.
These attributes make microservices-based distributed applications flexible and easy to maintain.
Преимущества микросервисной архитектуры
Microservices provide many advantages. They simplify development and project management. Sometimes, they may eliminate the need for separate operations teams since developers can handle operations for the microservices they build.
Some other benefits of microservices include:

Отказоустойчивость и локализация отказов
В монолитных архитектурах одна ошибка влияет на все приложение. Но микрослужбы независимы, поэтому отказ одной из них не затронет другие части приложения.

Agility
Разбиение приложений на более мелкие части ускоряет разработку. Команды способны быстрее создавать, тестировать и развертывать программное обеспечение.

Технологическое разнообразие
Микрослужбы позволяют разработчикам выбирать подходящие инструменты и технологии для работы. Это повышает эффективность и производительность.

Улучшенное техническое обслуживание
Возможность тестирования отдельных компонентов упрощает поиск и исправление ошибок, при этом не нужно отключать все приложение.

Отказоустойчивость и локализация отказов
В монолитных архитектурах одна ошибка влияет на все приложение. Но микрослужбы независимы, поэтому отказ одной из них не затронет другие части приложения.

Agility
Разбиение приложений на более мелкие части ускоряет разработку. Команды способны быстрее создавать, тестировать и развертывать программное обеспечение.

Технологическое разнообразие
Микрослужбы позволяют разработчикам выбирать подходящие инструменты и технологии для работы. Это повышает эффективность и производительность.
