juju и maas - эффективные инструменты развёртывания...

40
Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках" Владислав Клячин, Canonical 14 июня 2014

Upload: sydney

Post on 21-Mar-2016

99 views

Category:

Documents


7 download

DESCRIPTION

Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках". Владислав Клячин, Canonical 14 июня 2014. План доклада. Проблемы эффективности IT инфраструктуры MAAS – система быстрой инициализации “ железа ” - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Juju и MaaS - эффективные инструменты

развёртывания масштабных систем на "железе" и в

"облаках"Владислав Клячин, Canonical

14 июня 2014

Page 2: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

План доклада

• Проблемы эффективности IT инфраструктуры• MAAS – система быстрой инициализации “железа”• OpenStack и вклад Canonical в его разработку• Juju – система оркестрации сервисов• Charms – строительные кубики для Juju• Язык программирования Go и Juju

Page 3: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Мысль дня:

• Компании Facebook потребовалось 10 лет и несколько $100M, чтобы масштабировать сервис до 1 миллиарда пользователей.

• Следующие 2 web-сервиса, которые достигнут 1 миллиарда пользователей, сделают это менее чем за 3 года в рамках начального финансирования, имея менее 100 сотрудников.

• Как по вашему мнению должна выглядит “умная” инфраструктура?

Page 4: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Вы и Google

Вы Google

Page 5: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Эффективность расходов

Page 6: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Автоматическое масштабирование поможет Вам быть почти как Google

Page 7: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

OpenStack: основа “масштабируемого Linux”.

Приложения

ПамятьДиски

Процессоры

Ядро Linux

Page 8: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

OpenStack: основа “масштабируемого Linux”.

ПриложенияПамятьДиски

ПроцессорыOpenStack

сотни или тысячи Linux-серверов

Page 9: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Проблема №1

• Подготовка “голого железа”• Что выбрать?

– MAAS (Metal as a service)– Ironic (часть OpenStack)– Razor– Другие решения, основанные на множественных скриптах

Page 10: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Демонстрация...

• Давайте используем MAAS для инициализации «голого железа» и построим на нем облако OpenStack или установим Hadoop.

MAAS

Page 11: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Знакомьтесь, Ubuntu Orange Box

Page 12: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Orange Box, спецификация

• 10 узлов– i5-3427U CPU– 16GB DDR3 RAM– 120GB SSD– 4 node with extra SSD drive– 1 node with 2TB HDD & Wi-FI card

• вес: 17 кг• цена: $10000

Page 13: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Быстрая инициализация масштабируемого облака в три

простых шага• Установка MААS на первый сервер• Обнаружение остальных серверов

– Автоматически обнаруженные узлы через PXE– Узлы внесённые в список при инсталяции Linux– Ручной ввод MAC-адресов

• Включение серверов– Linux и/или гипервизоры устанавливаются автоматически

Page 14: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Последовательность инициализации

• Включение в список (enlistment)– загрузка временного окружения через DHCP– регистрация на контроллере кластера– добавление временных идентификационных данных IPMI MAAS в BMC

• Ввод в эксплуатацию (commissioning)– загрузка временного окружения через DHCP– инвентаризация железа (CPU, RAM, disks, NICs, IPMI)– добавления постоянных идентификационных данных IPMI MAAS в BMC

• Инициализация (provisioning)– происходит когда это требуется– инициализирует требуемую версию Ubuntu (precise или trusty)

Page 15: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Высокая масштабируемость архитектуры MAAS

• Инициализация и “видимость” – между несколькими дата-центрами

• Развертывание в режиме высокой доступности (HA).

• Поддержка групповых операций для поддержки большого количества серверов

Page 16: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Высокая масштабируемость архитектуры MAAS

• API• Интерфейс командной строки• Графический интерфейс• Интеграция с Landscape для

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

Page 17: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Большинство облаков OpenStack использует Ubuntu

• http://www.openstack.org/blog/2013/11/openstack-user-survey-october-2013/

• Ubuntu – 55%• CentOS – 24%• RHEL – 10%• другие – 11%

Page 18: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Архитектура OpenStack

Page 19: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Поддержка OpenStack в Ubuntu 14.04

Page 20: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Поддержка OpenStack

• 35% поддержки Ubuntu приходится на облачные сервисы

• В настоящее время сотни обращений в месяц

• С 1 января по 10 июня:– 184 ошибки исправлено– 199 новых ошибок обнаружено

Page 21: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Проблема №2

• Установка и конфигурирование сервисов• Опции:

– Juju– Heat– Cloudify– Всё больше новых сервисов каждый день

Page 22: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

“Зоопарк” технологий

Page 23: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Juju – лучшее решение для оркестрации сервисов

Page 24: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Преимущества Juju• Лёгкость развёртывания сервисов

– от одного сервера до целого облака• Реакция на события

– автоматическое изменение конфигурации при изменениях в окружении

– поддержание минимального количества копий для сервиса• Масштабируемость

– charms разработаны с учётом возможности добавления дополнительных копий сервисов “на лету”

• Поддержка любых языков программирования– для написания charms может быть использован любой язык

программирования

Page 25: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Провайдеры Juju

• Облачные сервисы:– Amazon Web Service (EC2)– Windows Azure– OpenStack– HP Public Cloud– Joyent

• “Голое железо”– MAAS

• Контейнеры– LXC– KVM

• Установка на уже работающие системы (Manual provider)

Page 26: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Легкость изучения Jujuна http://learnjuju.com

Page 27: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Charm – пакет для установки сервиса

• Charm:– включает в себя конфигурацию приложения– описывает процедуру инициализации сервиса– определяет “точки перехвата” (hooks) для связи сервисов

• Bundle:– несколько charm вместе со специальной конфигурацией– связи уже настроены– все charm устанавливаются одновременно в “один шаг”

Page 28: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Внутри charm

Page 29: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Внутри charm - продолжение

Page 30: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Внутри charm – metadata.yaml

name: wordpresssummary: "WordPress is a full featured web blogging tool, this charm deploys it."maintainer: Marco Ceppi <[email protected]>description: | This will install and setup WordPress optimized to run in the cloud. This install, in particular, will place Ngnix and php-fpm configured to scale horizontally with Nginx's reverse proxycategories: ["applications"]requires: db: interface: mysql nfs: interface: mount cache: interface: memcacheprovides: website: interface: httppeers: loadbalancer: interface: reversenginx

Page 31: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Мгновенная установка сервисов

• Инициализация сервисов$ juju deploy wordpress$ juju deploy mysql

• Создание связей$ juju add-relation wordpress mysql

• Окрытие сервиса для внешнего мира$ juju expose wordpress

• Масштабирование сервиса$ juju add-unit –n 5 wordpress

Page 32: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Растущая экосистема Charm

• публичный магазин для сharm• доступны более 100 сharm• все сharm тестируются

отделом контроля Canonical• поддержка приватных

магазинов для сharm

Page 33: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Возможность установки Charms на любую платформу

Page 34: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Архитектура Juju

Juju client (HTML5

GUI, CLI)

Deployment Environment

Juju state server (in HA mode)

Provisioning server

API serverMongo

Provisioning server

API serverMongo

Juju agent Workload

Compute instance

Juju agent LXC

Compute KVM

LXC

Workload

Page 35: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Juju – проект с открытым исходным кодом

• Теперь на GitHub: https://github.com/juju

Page 36: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Язык программирования Go

Page 37: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Juju – крупнейший проект с открытым кодом на Go

Число строк в файлах на языке Go:--------------------------------------------------------------------------------Go Language                   files          blank        comment           code--------------------------------------------------------------------------------juju-core + mgo + goamz + ...  1212          29702          26677         198562juju-core                      1040          25103          21749         172277docker                          605          11491           8532         101881camlistore                      471          10365          11552          64180vitess                          226           6240           5746          41787

juju-core (w/o tests)           532          10766          14811          75596docker (w/o tests)              442           7772           7227          62935camlistore (w/o tests)          360           8329           9917          51030

Page 38: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Спасибо

Page 39: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"

Вопросы и ответы

Page 40: Juju и MaaS - эффективные инструменты развёртывания масштабных систем на "железе" и в "облаках"