Service Discovery для распределенных систем::Журнал СА 06.2016
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
О журнале
Журнал «БИТ»
Информация для ВАК
Звезды «СА»
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Вакансии
Игры
Контакты
   

  Опросы

Какие курсы вы бы выбрали для себя?  

Очные
Онлайновые
Платные
Бесплатные
Я и так все знаю

 Читать далее...

1001 и 1 книга  
24.12.2018г.
Просмотров: 837
Комментарии: 0
Python. Разработка на основе тестирования

 Читать далее...

24.12.2018г.
Просмотров: 624
Комментарии: 0
Скрапинг веб-сайтов с помощью Python

 Читать далее...

24.12.2018г.
Просмотров: 558
Комментарии: 0
Смарт-карты и информационная безопасность

 Читать далее...

24.12.2018г.
Просмотров: 559
Комментарии: 0
Идеи машинного обучения

 Читать далее...

22.11.2018г.
Просмотров: 853
Комментарии: 0
MySQL 8 для больших данных

 Читать далее...

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

 Service Discovery для распределенных систем

Архив номеров / 2016 / Выпуск №6 (163) / Service Discovery для распределенных систем

Рубрика: Администрирование /  Автоматизация

Сергей Яремчук СЕРГЕЙ ЯРЕМЧУК, автор более 800 статей и шести книг. С «СА» с первого номера. Интересы: сетевые технологии, защита информации, свободные ОС, grinder@samag.ru

Service Discovery
для распределенных систем

Как отследить расположение сервисов и их доступность в динамической сети? Выход – системы обнаружения сервисов

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

В итоге остро стоит вопрос о возможностях динамической конфигурации систем и обнаружении сервисов «на лету». Серверы могут перемещаться между ЦОД, меняя IP, контейнеры включаются и отключаются, сервисы стартуют и пропадают, один и тот же порт могут использовать разные приложения. Все эти изменения необходимо отслеживать как можно раньше, но традиционные инструменты мало подходят для решения этих задач.

Можно эту задачу автоматизировать с помощью скриптов, отслеживая свой и чужой IP, настроить службу DNS, использовать прокси и т.д. При небольшом количестве и в более-менее статичной среде это работает, но по мере увеличения систем управлять всем этим становится сложнее. Будут возникать задержки в случае неработы службы и необходимости быстрого подключения к другому серверу.

Проблема нашла решение в специальном классе приложений – системы обнаружения сервисов (Service Discovery).

Задача Service Discovery

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

Работает такая схема очень просто. Вся процедура состоит из двух фаз: регистрация сервиса (Service Registration) и обнаружение сервиса (Service Discovery).

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

Теперь любой клиент может обратиться к хранилищу с запросом, используя API или традиционные службы вроде DNS, и получить нужную информацию. То есть, грубо говоря, Service Discovery – это аналог DNS для распределенных сетей с часто меняющейся конфигурацией.

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

К слову, в Windows Server 2016 в Microsoft, в котором возможно использование контейнеров, для обнаружения служб не будет каких-либо встроенных инструментов, поэтому придется использовать сторонние разработки.

Статью целиком читайте в журнале «Системный администратор», №06 за 2016 г. на страницах 14-16.

PDF-версию данного номера можно приобрести в нашем магазине.


  1. Сайт проекта ZooKeeper – http://zookeeper.apache.org.
  2. Сайт проекта OpenReplica – http://openreplica.org.
  3. Страница Ectd на GitHub – https://github.com/coreos/etcd.
  4. Страница Doozer на GitHub – https://github.com/ha/doozer.
  5. Сайт проекта Consul – http://consul.io.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru