пʼятниця, 25 січня 2013 р.

Что такое Juju?

Чтобы понять Juju нужно разобраться с некоторыми терминами, которые неразрывно связаны с juju.

Термины и понятия.

Убунту на языке народа зулу и народа коса означает "человечность". Это южноафриканское направление этики и гуманистической философии, особое внимание уделяющее понятиям верности и лояльности в отношениях между людьми. Приблизительное толкование слова убунту — человечность по отношению к другим. Другой возможный вариант перевода — вера во вселенские узы общности, связывающие всё человечество.

Архиепископ Десмонд Туту так описал определение "убунту":
Человек с убунту открыт и доступен для других, принимает других людей, не видит для себя опасности в том, что другие талантливы и добры, поскольку он твёрдо уверен в себе, понимая, что является частью большего целого, и, наоборот, человек с убунту угнетён, когда других оскорбляют или унижают, пытают или угнетают.

DevOps - это идея, что совместные рабочие отношения между разработчиками и ИТ подразделением позволяют быстрее выполнить планируемую работу, одновременно увеличивая надежность, стабильность, устойчивость и безопасность production среды.

DevOps

Оркестровка (Orchestration) — автоматическое размещение, координация и управление сложными компьютерными системами и службами.
Оркестровка описывает то, как сервисы должны взаимодействовать между собой, используя для этого обмен сообщениями, включая бизнес-логику и последовательность действий. Оркестровка подчинена какому-то одному из участников бизнес-процесса. В сервис-ориентированной архитектуре оркестровка сервисов реализуется согласно стандарту Business Process Execution Language (WS-BPEL).

Charm - это набор файлов, которые определяют как интегрировать данный сервис и как ему реагировать на события в распределённых средах. Charms управляются с помощью juju. Подробнее об устройстве Charms.

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

Использование juju.

devopsJuju is DevOps Distilled™. Juju - Чистейший ДевОпс. Благодаря использованию charms, juju позволяет команде девопсов легко создавать требуемые конфигурации и соединять их в немыслимые конструкции. Развёртывание charms чем то похоже на установку пакета в Ubuntu. Вы просто устанавливаете, легко удаляете.


communityJuju это опыт DevOps сообщества. Как развернуть нужное вам приложение, вы всегда найдёте в juju. Juju обеспечивает прямой и свободный доступ к коллекциям charms, которые создаются, тестируются сообществом DevOps.


orchestrationJuju обеспечивает оркестровку служб. Juju фокусируется на управлении службой, предлагая единое решение, помогающее легко конфигурировать сервера или облачные экземпляры под нужды этой службы. Charms разработаны, оттестированы чтобы надёжно работать на ваших собственных мощностях или в EC2 совместимых облаках.


educationJuju умный. Juju предоставляет повторное использование оборудования под сервис и чёткие интерфейсы, которые позволяют быстро, органично настроить и масштабировать ваше решение.


easyJuju это легко. Нет обходимости изучать domain specific language (DSL), чтобы использовать juju или создавать charms. Вы можете запустить ваш сервис с помощью готового charm буквально за минуты.


Подробнее о juju.

В течение долгого времени, развёртывание Linux серверов двигалось в сторону совместной работы нескольких физических машин.

В некоторых случаях, различные серверы запускали свои отличающиеся наборы приложений, позволяя организовывать или наоборот изолировать и резервировать ресурсы.

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

Но всё равно, много сил уходит на управление конфигурациями программ на отдельных машинах. Менеджеры пакетов, dbus и dconf тому примеры.

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

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

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

Canonical создала juju как раз для таких целей. Juju стремится стать тем инструментом, которым легко сообща управлять развёртыванием служб. Juju - это попытка создать инструмент "apt для служб".

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

Часто задаваемые вопросы.

Зачем использовать juju?
Juju - это следующее поколение фреймворков оркестровки и развёртывании сервисов. Его можно сравнить с Apt для облаков. С juju авторы могут создавать charms для разных служб независимо друг от друга и скоординировать службы между собой с помощью простого протокола. Пользователи могут взять готовые charms от профессионалов и просто разворачивать нужные им сервисы на своём оборудовании. В результаты множество серверов и компонент призрачно работают над поставленной задачей.

Juju готова к производству?
По состоянию на сегодняшний стабильный, долгоподдерживаемый релиз Ubuntu 12.04 - juju считается бета. Официально, juju не рекомендуется для использования в продакшн. Однако, опытным пользователям предлагается оценить возможности juju, начать изучать juju, писать свои charms.

На каком языке разработан juju?
Сам juju написан на Python. Тем не менее, создать charm для juju можно на любой языке программирования. Заботу о нахождении и вызове нужных файлов juju берёт на себя.

Juju использует преднастроенные Amazon Machine Images (AMI)?
Нет, juju использует обычные образы операционной системы Ubuntu. Все необходимые компоненты устанавливаются в режиме реального времени. Если вам нужны образы AMI, то вы можете указать это в файле environments.yaml.

Можно развернуть несколько служб (сервисов) на одной машине?
В настоящее время каждая служба разворачивается на отдельную машину, что помогает создавать связи с другими службами, работающими на разных узлах. Это было сделано для того, чтобы получить рабочий juju как можно быстрее. Juju в будущем будет поддерживать несколько сервисов на одной машине.

Можно ли передавать параметры juju charms?
Такая "настраиваемость" скоро появится в juju. Как только это будет реализовано, вы сможете использовать juju set service key=value. Это позволит динамически управлять поведением charm.

Juju разворачивает службы только в облаках Amazon EC2?
Нет. Juju работает с EC2, OpenStack и локальными контейнерами LXC или Orchestra. Используя LXC (LinuX Containers - Контейнерная виртуализация Linux), можно работать с juju charms на одиночной локальной машине. Это рекомендуемый метод для создания и тестирования нового charm.

Можно переключаться между окружениями?
У вас может быть множество окружений (environments) в environments.yaml и одно из них указано как дефолтное: default: default-env-name. Можно указать так же через переменную окружения JUJU_ENV. Так же у juju есть параметр -e через который можно указать требуемое окружение.

Juju в действии.

Вернуться к оглавлению цикла статей о Juju.

Немає коментарів:

Дописати коментар

HyperComments for Blogger

comments powered by HyperComments