Микросервисная архитектура

Микросервисная архитектура

Сегодня мы познакомим вас с одним из подходов к архитектуре решений, которые мы в Качественных Программных Решениях используем на проектах заказчиков, и имя ему «микросервисная архитектура». В данной статье мы разберемся что же такое микросервисы, каковы их сильные и слабые стороны, а так же обозначим их основные сферы применения.

Микросервис (MS) – это небольшие, автономные, совместно работающие сервисы нацеленные на то, чтобы справляться только с одной задачей. Микросеросервисная структура (MSA) представляет собой принципиальную организацию распределенной системы на основе микросервисов и их взаимодействия друг с другом и со средой по сети, а также принципов, направляющих проектирование архитектуры, ее создание и эволюцию.

Микросервисы часто противопоставляют традиционной монолитной архитектуре. Монолит подразумевает, что компоненты продукта взаимосвязаны и взаимозависимы, а значит, если перестает работать один компонент, то и все остальные тоже.

IT-сфера стремительно развивается, а значит появляются и новые требования: развитие технологий, меняющиеся потребности конечных пользователей – все это требует быстрой реакции. И в таких условиях микросервисная архитектура безоговорочно выигрывает у монолита, т.к.:

• намного проще изменить один из микросервисов и сразу внедрить его, нежели изменять весь монолит и целиком перезапускать инфраструктуру;
• новые разработчики значительно легче включаются в работу, ведь у них нет необходимости в изучении системы целиком – достаточно работать лишь над своей частью;
• микросервисы не зависят от какой-либо платформы, а потому внедрение новых технологий становится значительно проще, чем в монолит.

И это не единственные преимущества микросервисов. Думаем, следует обобщить список достоинств:

1. Четкое деление на модули, которое позволяет усилить модульную структуру. Следовательно, в команде будут люди отлично разбирающиеся в той или иной части кода, что особенно важно для больших команд разработчиков;
2. Высокая доступность: даже при условии того, что работают не все сервисы, все остальное будет работать;
3. Разнообразие технологий = возможность использовать правильный инструмент. Более того, микросервисы позволяют даже просто опробовать технологию на каком-нибудь сервисе, и это не будет иметь влияния на другие сервисы, т.к. контракт изолирован через сетевое взаимодействие;
4. Независимое развертывание по причине слабой связанности сервисов: простые сервисы проще разворачивать, а так же вероятность отказа системы значительно уменьшается.

Тем не менее, микросервисный подход имеет и свои недостатки, среди которых можно выделить:
1. Сложность разработки;
2. Конечная согласованность. За высокую доступность придется платить: бизнес заказчика должен позволять работать с отложенными данными;
3. Сложность операционной поддержки. Отсюда необходимость в грамотных DevOps-инженерах, непрерывном развертывании и автоматическом мониторинге.

Но, здесь следует обратить внимание на тот факт, что микросервисный подход используют такие лидеры IT-индустрии, как Google, Amazon, Netflix и другие, а это красноречивее всего агитирует ЗА данный подход, несмотря на все его недостатки.

Свяжитесь с нами и улучшите свой бизнес
Спасибо, мы свяжемся с вами