Отказоустойчивость микросервиса RESTful и балансировка нагрузки

На данный момент у нас есть несколько монолитных веб-приложений, и мы пытаемся перенести проекты в инфраструктуру микросервисов.

Для монолитного приложения используется HAProxy и Session Replication для переключения при отказе и балансировки нагрузки.

Теперь мы создаем несколько микросервисов RESTful с весенней загрузкой, но мне не ясно, как лучше всего построить производственную среду. Конечно, мы можем запускать все приложения как службы unix и при этом иметь обратный прокси-сервер для балансировки нагрузки и аварийного переключения. Это решение кажется мне очень тяжелым и требует большого количества настроек и обслуживания. Управление ресурсами и масштабирование серверов вверх или вниз всегда будет выполняться вручную.

Каковы наилучшие возможности для настройки производственной среды с 2-3 серверами и простым управлением ресурсами? Есть ли какое-то решение, которое также поддерживает непрерывное развертывание?


person Matthias    schedule 01.04.2015    source источник


Ответы (1)


Я бы порекомендовал изучить обнаружение сервисов. Netflix описывает это как:

Система Service Discovery предоставляет механизм для:

  • Услуги по регистрации их доступности
  • Поиск единственного экземпляра конкретной услуги
  • Уведомление об изменении экземпляров услуги

Могут помочь такие пакеты, как Eureka от Netflix. (РЕДАКТИРОВАТЬ - на самом деле это похоже на AWS)

Это должно хорошо работать при непрерывной доставке, поскольку службы могут стать недоступными, обновляться, а затем снова регистрировать доступность.

person Jim Jeffries    schedule 01.04.2015
comment
cloud.spring.io/spring-cloud-netflix/spring- cloud-netflix.html Я не использовал его, но есть раздел об использовании Eureka в Cloudfoundry, поэтому есть вероятность, что он может работать и за пределами AWS. - person sodik; 01.04.2015
comment
Насколько я понимаю, кураторский проект помогает мне открыть для себя доступную услугу. Есть ли еще решение для автоматического управления серверами? Если на сервере будут запущены онлайн-сервисы, там будут запускаться онлайн-сервисы, если на сервере будут офлайн-сервисы запустятся на другом? Cloudfoundry меня немного сбивает с толку :( - person Matthias; 01.04.2015