ДЕНИС СИЛАКОВ, кандидат ф.-м. н., начальник отдела технологических разработок и сопровождения ООО «НТЦ ИТ РОСА», denis.silakov@rosalab.ru
Проект Juju
Развертываем сложные приложения одним кликом
Знакомимся с инструментарием настройки стеков Linux- и Windows-приложений от Canonical. Juju – это инструмент, необходимый системному администратору, управляющему парком машин с Ubuntu
Тенденции развития многих операционных систем и связанных с ними продуктов в последние годы определяются тем, что пользователям нужна не ОС как таковая, а готовые решения для конкретных задач. И если пользователи десктопов хотят иметь под рукой текстовые редакторы, средства мгновенного общения и прочие прелести офисной жизни, то системным администраторам нужны готовые стеки с развернутыми сервисами блогов, корпоративной почты и другого ПО, на развертывание и обслуживание которых уходит львиная доля админского времени.
При этом мало кто из них любит возиться с традиционными средствами установки приложений в Linux, подразумевающими (в большинстве дистрибутивов) выбор из множества пакетов необходимого набора с последующей настройкой каждого установленного компонента под свои нужды. Система пакетов удобна для мейнтейнеров дистрибутивов, но конечным пользователям (будь то офисный работник или системный администратор) знать детали ее устройства вовсе не обязательно. И именно на сокрытие этих деталей и создание инструментов с более высоким уровнем абстракции и нацелены усилия немалого количества разработчиков дистрибутивов, нацеленных на использование в корпоративном секторе.
В области пользовательских программ пример задали магазины приложений, появившиеся для мобильных устройств. Схожие магазины теперь пытаются внедрить и разработчики дистрибутивов Linux для домашнего использования, давая возможность пользователям выбирать не из тысяч пакетов, многие из которых носят вспомогательный характер и незнакомы далеким от ИТ людям, а из нескольких сотен приложений с детальными описаниями, рейтингами и прочими информативными характеристиками.
Схожий уровень абстракции полезен и системным администраторам, у которых часто возникает необходимость развернуть стек приложений на множестве реальных или виртуальных машин. Прямолинейный подход подразумевает развертывание на каждой машине операционной системы, установку и настройку необходимых пакетов и связывание программных компонентов с различных машин между собой.
Например, для развертывания WordPress может потребоваться две машины – одна с веб-сервером и собственно файлами WordPress, а другая – с БД MySQL, которая будет использоваться для хранения данных WordPress. К настоящему времени появилось немало инструментов, автоматизирующих эти задачи – например, средства управления конфигурацией типа Puppet или Ansible, но все же они требуют некоторых предварительных действий со стороны системного администратора.
В идеальном сценарии инструментарий должен получать на вход инструкции вида «на машину A поставь Linux с MySQL, на машину B – Linux с WordPress и Apache и настрой WordPress на машине B, используя MySQL с машины A».
Звучит как указание если не менеджера, то старшего системного администратора, который явно не собирается что-то ставить и настраивать самостоятельно. Но именно такие инструкции готов принимать и исполнять инструментарий Juju от компании Canonical, с которым мы и познакомимся.