Открыт код системы управления развертыванием приложений Galaxy
26 февраля 2011 года
Создатели социальной сети Ning объявили(недоступная ссылка) об открытии под лицензией Apache разработанной в недрах проекта системы управления развертыванием приложений Galaxy. Система Galaxy написана на языке Ruby и предназначена для организации централизованного управления установкой программ и изменении конфигурации на группе машин. Архитектура Galaxy основана на трех компонентах: агенте, консоли и репозитории. Дополнительно подготовлены инструменты для формирования пакетов, Ruby-библиотека и работающий в режиме командной строки клиент для прямого взаимодействия с управляющей консолью и агентами.
Galaxy-агент выполнен в виде фонового процесса, запускаемого на всех хостах или виртуальных окружениях, для которых необходимо обеспечить централизованное управление. Основные функции агента сводятся к развертыванию приложений (установка, обновление, удаление), управлению их работой (запуск, остановка, перезагрузка) и оценке состояния отдельных сервисов. При поступлении команды установки нового сервиса, агент загружает бинарный пакет из репозитория, распаковывает относительно корня и запускает находящийся внутри пакета скрипт, которому может быть передана специфичная для текущего хоста информация (IP-адрес, путь к конфигурации и т.п.). Периодически агент посылает управляющей консоли сообщения с указанием текущего статуса подконтрольных сервисов.
Galaxy-консоль представляет собой сервис, предназначенный для оценки состояния инфраструктуры. Консоль поддерживает в актуальном состоянии информацию о начинке и состоянии всех хостов, включая сведения о сбоях, список установленных компонентов и конфигурацию. Информация хранится в памяти и формируется на основе периодической отправке статусных сообщений от агентов. Для доступа к информации подготовлен специальный API.
Для контроля за системой используется специальное клиентское приложение, работающее в режиме командной строки и способное напрямую взаимодействовать с консолью и агентами при выполнении операций по оценке состояния или при внесении изменений. Cli-клиент позволяет непосредственно инициировать развертывание новых приложений, обновлять конфигурацию и проводить чистку систем. Каждая операция единовременно выполняется над логической группой хостов. Логические группы могут включать как все хосты в системе, так и выборку отдельных хостов, произведенную на основании типа хоста, наличия определенного сервиса или особенности конфигурации.
Galaxy-репозиторий состоит из двух частей: хранилище бинарных пакетов и репозиторий конфигурации. Доступ к данным реализован через использование простого http-сервера, отдающего статический контент. Бинарные пакеты хранятся в файлах вида {тип}-{версия}.tar.gz, а конфигурация представлена в виде иерархии директорий {окружение}/{тип_сервиса}/{пул}. Путь к наборам конфигурации определяет файл build.properties, в процессе разбора которого агент запрашивает необходимые для работы пакета настройки, заменяя в них некоторые типовые параметры, такие как IP-адрес. Пакет является обычным tar-архивом, в котором может быть представлен любой набор данных - от скомпилированных приложений, до дополнительных библиотек и файлов конфигурации. Для определения действий над данными внутри пакета должны находиться два скрипта: xndeploy - для первичного развертывания пакета и launcher - для запуска, остановки и вывода состояния реализуемого пакетом сервиса.
Источники
править- Главная ссылка к новости (http://code.ning.com/2011/02/i...)(недоступная ссылка)
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.