Микросервисная архитектура предполагает разбиение сложного приложения на небольшие автономные приложения, чтобы каждое из них можно было масштабировать и обслуживать независимо . Учитывая множество преимуществ микросервисной архитектуры, неудивительно, что все в ИТ-секторе переходят на эту новую архитектуру!
В основе микросервисной архитектуры лежит концепция обратного проксирования. Обратный прокси-сервер играет ключевую роль в перенаправлении трафика между различными микросервисами, а также в распределении рабочей нагрузки между несколькими экземплярами микросервиса. Без обратного прокси-сервера сложная сеть взаимодействий и распределения нагрузки внутри микросервисной архитектуры, как мы ее понимаем сегодня, была бы просто невозможна!
Давайте углубимся в роль обратного прокси-сервера в настройках микросервисов!
Что такое прокси?
Прокси — это сервер, который находится между компьютером клиента и Интернетом. Любой трафик, исходящий от клиентского компьютера, проходит через прокси-сервер. Для остальной части Интернета создается впечатление, что запросы инициирует прокси-сервер.
Есть несколько причин, по которым можно использовать прокси-сервер. Некоторые из них следующие:
- Маскировка личности: при использовании прокси настоящая личность клиента не раскрывается в Интернете. Его можно использовать для доступа к контенту, который в противном случае был бы заблокирован/ограничен для клиента.
- Настройка ограничений. Используя определенные конфигурации, прокси-серверы можно использовать для ограничения доступа клиента к определенному контенту.
- Это также повышает безопасность
Что такое обратный прокси?
Обратный прокси — это сервер, который находится между Интернетом и внутренними серверами. Любой трафик, предназначенный для серверов, должен проходить через обратный прокси-сервер. Для остальной части Интернета создается впечатление, что запросы обслуживает обратный прокси-сервер.
В целом использование обратных прокси имеет несколько преимуществ. Некоторые из них вы можете найти здесь .
Концепция обратного прокси-сервера вдыхает жизнь в архитектуру микросервисов, позволяя клиенту перемещаться в динамической среде микросервисов, определяя, к каким серверам обращаться. Без этого жизненно важного компонента клиент остался бы без средств для эффективной навигации по сложному ландшафту архитектуры микросервисов.
Сервис Дискавери 🌍
Службы в микросервисной архитектуре масштабируются вверх и вниз в зависимости от нагрузки. Это означает, что реплики службы могут появляться и исчезать в любое время в течение жизненного цикла приложения. Обратный прокси-сервер обнаруживает серверы службы и эффективно направляет на них клиентский трафик.
Балансировка нагрузки ⚖️
Поскольку у службы может быть запущено несколько реплик, становится важным, чтобы запросы клиента правильно распределялись по доступным серверам. Балансировка нагрузки — это еще одна функция revere proxy, которая здесь используется. Обратный прокси-сервер разумно распределяет нагрузку между доступными репликами службы.
Мониторинг 🖥️
Поскольку любой запрос, поступающий в наше приложение, проходит через обратный прокси-сервер, это хорошее место для мониторинга запросов и ведения журналов. Это помогает получить важную информацию о количестве сервисов, присутствующих в системе.
Внутренний трафик 🚦
В настройках микросервисов обратный прокси-сервер также используется для маршрутизации внутреннего трафика кластера. Это особенно полезно в случае связи между службами.
Кэширование 💰
Кэширование — это общее преимущество, которое дает использование обратного прокси-сервера. Прокси-сервер может возвращать кэшированные результаты для аналогичных запросов, тем самым сокращая время ответа клиента.
Агрегация ⛙
Запрос одного клиента может потребовать агрегирования ответов от более чем одной службы на серверной стороне. Такая агрегация может выполняться обратным прокси-сервером, оставляя клиенту чистую конечную точку для использования!
Проксирование между слоями
Обратный прокси-сервер может использоваться в различных конфигурациях. Эти конфигурации обычно определяют уровень OSI, на котором принимается решение о маршрутизации. Обычно существует два известных проксирования — (1) проксирование на уровне 4 и (2) проксирование на уровне 7. По мере продвижения вверх по уровням мы декодируем больше информации из интернет-пакетов, которая может быть использована для принятия решения о маршрутизации.
Прокси уровня 4
Уровень 4 в модели OSI — это транспортный уровень. С точки зрения разработчика приложения, на уровне 4 для принятия решения о маршрутизации доступны следующие вещи:
- IP и порт клиента, отправляющего запрос
- IP и порт сервера, который получает запрос
Таким образом, прокси-сервер уровня 4 может принимать решения о маршрутизации только на основе IP-адреса и порта сервера и клиента. Он не может просматривать содержимое запросов и, следовательно, может принимать ограниченные решения о маршрутизации.
Есть несколько причин, по которым можно использовать прокси-сервер уровня 4:
- Когда требуется только балансировка нагрузки на уровне пакетов.
- Никто не хочет, чтобы обратный прокси-сервер расшифровывал запрос из соображений безопасности.
- Требуется эффективность, поскольку проксирование на уровне 4 происходит быстро.
У прокси-сервера уровня 4 также есть несколько недостатков:
- Поскольку мы находимся на уровне 4, интеллектуальная балансировка нагрузки невозможна.
- Он не может выполнить настоящую балансировку нагрузки микросервисов.
Прокси уровня 7
Уровень 7 в модели OSI — это прикладной уровень. С точки зрения разработчика приложения, на уровне 7 для принятия решения о маршрутизации доступны следующие вещи:
- Все, что было доступно на уровне 4
- Все содержимое запроса, включая заголовки.
Поскольку на уровне 7 доступно гораздо больше контента для принятия решений, можно выполнить более разумную маршрутизацию.
Вот несколько причин, по которым можно использовать прокси-сервер уровня 7:
- Вам необходимо принимать разумные решения по маршрутизации в обратном прокси-сервере.
- Вы хотите использовать кеширование
Вот некоторые недостатки использования прокси-сервера уровня 7:
- Проксирование уровня 7 обычно медленнее, чем уровень 4, поскольку он расшифровывает запрос и проверяет его содержимое для принятия решений о маршрутизации.
- Поскольку обратный прокси-сервер проверяет содержимое запросов, при использовании прокси-сервера уровня 7 также возникает проблема безопасности.
Обратный прокси, несомненно, является одним из важных элементов микросервисной архитектуры. Без этого истинные преимущества микросервисной архитектуры никогда не смогут быть реализованы в полной мере.
На этом мы подошли к концу этого блога! Надеюсь, вы сегодня узнали что-то новое.