The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Открыт код системы управления развертыванием приложений Galaxy

26.02.2011 23:13

Создатели социальной сети Ning объявили об открытии под лицензией Apache разработанной в недрах проекта системы управления развертыванием приложений Galaxy. Система Galaxy написана на языке Ruby и предназначена для организации централизованного управления установкой программ и изменении конфигурации на группе машин. Архитектура Galaxy основана на трех компонентах: агенте, консоли и репозитории. Дополнительно подготовлены инструменты для формирования пакетов, Ruby-библиотека и работающий в режиме командной строки клиент для прямого взаимодействия с управляющей консолью и агентами.

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

Galaxy-консоль представляет собой сервис, предназначенный для оценки состояния инфраструктуры. Консоль поддерживает в актуальном состоянии информацию о начинке и состоянии всех хостов, включая сведения о сбоях, список установленных компонентов и конфигурацию. Информация хранится в памяти и формируется на основе периодической отправке статусных сообщений от агентов. Для доступа к информации подготовлен специальный API.

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

Galaxy-репозиторий состоит из двух частей: хранилище бинарных пакетов и репозиторий конфигурации. Доступ к данным реализован через использование простого http-сервера, отдающего статический контент. Бинарные пакеты хранятся в файлах вида {тип}-{версия}.tar.gz, а конфигурация представлена в виде иерархии директорий {окружение}/{тип_сервиса}/{пул}. Путь к наборам конфигурации определяет файл build.properties, в процессе разбора которого агент запрашивает необходимые для работы пакета настройки, заменяя в них некоторые типовые параметры, такие как IP-адрес. Пакет является обычным tar-архивом, в котором может быть представлен любой набор данных - от скомпилированных приложений, до дополнительных библиотек и файлов конфигурации. Для определения действий над данными внутри пакета должны находиться два скрипта: xndeploy - для первичного развертывания пакета и launcher - для запуска, остановки и вывода состояния реализуемого пакетом сервиса.

  1. Главная ссылка к новости (http://code.ning.com/2011/02/i...)
  2. OpenNews: Почему администрирование серверов ключевых открытых проектов поручают студентам
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/29728-Galaxy
Ключевые слова: Galaxy, deployment, monitoring, packet
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (12) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Archer (??), 10:31, 27/02/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А какие есть альтернативы для администрирования большого парка однотипных машин?
     
     
  • 2.2, uldus (ok), 10:59, 27/02/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    В зависимости от задач Puppet, Cfengine или Spacewalk, Mandriva Pulse, Landscape.
     
  • 2.4, vegus (?), 18:24, 27/02/2011 [^] [^^] [^^^] [ответить]  
  • +/
    а мне нравится xCAT :)
     
  • 2.5, Igor (??), 21:44, 27/02/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Chef http://www.opscode.com/chef/
     
  • 2.11, Аноним (-), 20:11, 28/02/2011 [^] [^^] [^^^] [ответить]  
  • +/
    bcfg2

    Кстати не понимаю, почему его всегда обходят стороной. Между прочим он даже в репах debian'а есть.

     

  • 1.3, dry (ok), 11:13, 27/02/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    удобство и безопасность всегда по разную сторону баррикад.
     
  • 1.7, northbear (ok), 23:58, 27/02/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Либо разработчики не знали про Capistrano, либо писать систему начали до него. Сейчас это будет мало кому интересно.
     
  • 1.8, avatar (ok), 17:20, 28/02/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А мы наконец почти избавились от puppet.
     
     
  • 2.9, Аноним (-), 17:26, 28/02/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > А мы наконец почти избавились от puppet.

    Если не секрет на что перешли и почему ? Мы наоборот планируем переход с Cfengine на puppet

     
     
  • 3.10, avatar (ok), 18:02, 28/02/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Puppet
    1) Имеет свой внутренний крайне ограниченный язык.
    2) Для того чтобы реализовать некоторые вещи приходится такой огород городить, что даже в страшном сне не присниться.
    2) Плюс, на каком-то этапе я заметил что больше половины нашей конфигурации написаны на шелле.
    3) Плюс всё это тормозно работает и ruby нагружает жудко систему.
    4) Плюс все равно для кажгого из дистрибутивов Linux, FreeBSD... приходится писать свой собственный конфиг, потому что - то файл не там лежит, то команда чуть отличается, то пути не те и т.д.
    5) Все это не избавляет от бинарников и rpm-ов которые нужно устанавливать
    6) А какие-то комманды нужно выполнить всего один раз, чего puppet вообще не умеет

    Итого после почти 1.5 лет использования puppet мы решили от него отказаться.
    Взамен, всё очень просто и банально:
    1) rpm - для деплоя
    2) конфигурации - git+маленький самописный скрипт который будет выполнять функции установки-замены файлов и параметров (как в puppet)
    3) для интерактивного управления pssh и вход из под root-а (все равно первая команда которую набирает админ после входа на сервер sudo su -, особенно когда их более 200 и в разной конфигурации).
    4) плюс нам не нужно новый язык изучать, а шелл все знают. ;)

     
     
  • 4.12, zerot (??), 10:59, 01/03/2011 [^] [^^] [^^^] [ответить]  
  • +/
    отлично
    правильный подход и вменяемый комментарий
     
  • 4.13, Alexander (??), 01:52, 05/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > 3) для интерактивного управления pssh и вход из под root-а (все равно первая команда которую набирает админ после входа на сервер sudo su -, особенно когда их более 200 и в разной конфигурации).

    откройте для себя sudo -i

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру