Введение в микросервисную архитектуру
Прежде чем начать внедрение микросервисов, нам нужно знать, что до этой архитектуры у нас была монолитная архитектура, которая преобладала среди разработчиков программного обеспечения. Монолитная архитектура — это автономная архитектура, в которой программные компоненты и программный код объединены в единую программу (модуль). Микросервисная архитектура разбивает сложное программное приложение на более мелкие приложения, которые собираются и развертываются независимо друг от друга.

В этом блоге я собираюсь объяснить следующие моменты:
- Что такое микросервисы?
- Зачем нам нужны микросервисы?
- Преимущества микросервисной архитектуры программного обеспечения
- Компании, использующие микросервисы
- Рекомендации по внедрению микросервисов
Что такое микросервисы?
Микросервисы, также известные как Архитектура микросервисов, представляют собой архитектурный стиль программного обеспечения. Он структурирует приложение как набор слабо связанных распределенных сервисов, смоделированных вокруг бизнес-домена. Это позволяет вам взять любое большое приложение и разбить его на более мелкие отдельные компоненты, которыми легко управляет группа разработчиков программного обеспечения с заранее определенными обязанностями.
В Микросервисах каждый сервис автономен и представляет собой одну бизнес-сферу.
Зачем нам нужны микросервисы?
До микросервисов у разработчиков программного обеспечения была монолитная архитектура, в которой все программные компоненты собраны вместе и тесно связаны. Проблемы Благодаря этому мы можем разделить программы на более мелкие фрагменты, основанные на отдельных бизнес-процессах.
Ловкость
В наши дни сценарии использования в бизнесе очень гибкие и продолжают развиваться. С монолитной архитектурой мы можем приспособиться к новым изменениям или изменить существующие рабочие процессы, но что, если вы хотите изменить одну функцию или класс, все приложение должно быть перестроено и развернуто снова, что необходимо снова протестировать со всеми сценариями. Таким образом, увеличьте усилия и время для внесения одного изменения.
Масштабируемость
Предположим, у нас огромный сетевой трафик на нашем веб-сайте, который увеличивается день ото дня и вызывает низкую производительность и задержку ответа новым клиентам. Чтобы разместить этих новых клиентов, нам потребуется несколько экземпляров нашего веб-сайта, управляемых каким-либо балансировщиком сетевой нагрузки (NLB). Когда какой-либо экземпляр находится в состоянии простоя или NLB не использует его эффективно, ресурсы этого сервера будут потрачены впустую.
Преимущества микросервисов
- Самым большим преимуществом микросервисной архитектуры является то, что ваша команда может разрабатывать новые бизнес-модули или изменять существующие модули и развертывать каждый микросервис независимо.
- Эта архитектура позволяет разработчикам программного обеспечения отказаться от традиционной многоуровневой архитектуры. Им не нужно создавать трехуровневый уровень микросервисов для обработки запросов приложений, то есть веб-микросервис, микросервис бизнес-уровня и микросервис базы данных. Каждый микросервис будет строиться вокруг отдельных бизнес-возможностей, принимая на себя полную ответственность за свою собственную бизнес-область и модель данных.
- В микросервисах каждая служба разрабатывается специализированной и назначенной командой разработчиков независимо.
- Микросервисы позволяют независимо масштабировать каждую службу, не затрагивая существующие.
- Эта архитектура также позволяет разработчикам выбирать новую или любую другую технологию, более подходящую для их службы.
Компании, использующие микросервисы
Есть несколько компаний-гигантов, которые перешли от классической монолитной архитектуры к микросервисной архитектуре. Некоторые из них перечислены ниже:
- Амазонка
- Нетфликс
- Ebay
- PayPal
- Убер
Рекомендации по реализации микросервисной архитектуры
Целевые услуги
Одним из самых больших преимуществ микросервисов является то, что они дают вам контроль над компонентами приложения на детальном уровне. Держите свои микросервисы сфокусированными и небольшими. Как правило, микросервис хорош, если каждый сервис представляет отдельный бизнес.
Каналы связи
Также важно тщательно продумать интерфейсы, чтобы сервисы взаимодействовали друг с другом. В идеале интерфейсы должны быть построены с использованием протокола HTTP без какой-либо зависимости от какой-либо платформы или языка программирования.
Обратная совместимость
Поддерживать обратную совместимость вашего кода дорого, поскольку для этого требуется интеграционное тестирование всех компонентов. Но, в то же время, вы не хотите потерять свое рабочее приложение или контракты. Если в каком-либо контракте есть серьезные изменения, вместо того, чтобы использовать тот же контракт, вы можете создать новый и начать использовать его, а потребители могут выбрать версию по своему выбору. Вы должны поддерживать политику прекращения поддержки старых версий ваших сервисов.
Шлюз API
Вы бы никогда не хотели, чтобы ваши вызывающие абоненты звонили в вашу службу, не аутентифицируя свою личность и не проверяя, авторизованы ли они для связи. Это становится более важным, когда сторонний вызывающий абонент хочет вызвать вашу службу непосредственно из внешней среды. Вам нужно ввести API Gateway, который бы обрабатывал все такие запросы и позволял делать перенаправление запросов на более новую версию.
Если вы будете следовать передовым методам и поддерживать надлежащие организационные политики, у вас будет бесперебойная работа слабосвязанных микросервисов, что даст вам истинное преимущество их использования.
Подожди, прежде чем идти куда-либо..
Знаете ли вы, даже если вы хотите перейти на микросервис или нет, вам все равно нужно иметь несколько быстрых советов по программированию, так что посмотрите мою статью Стандарты кодирования
Основной профиль: Махрукх Мехмуд — Medium