Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
© MIRANTIS 2014
Построение облачных
процессов с помощью
Mistral
Ренат Ахмеров
План
• Что такое OpenStack?
• Что такое Workflow?
• Что такое Mistral?
• Q & A
2
• Должно быть интересно:
• DevOps инженерам
• Разработчикам распределенных систем
• Администраторам облаков
• Ценителям пр...
• Задачи:
• Интеграция систем
• Управление ресурсами облака
• Автоматизация
• Построение отчётов
• Разные способы запуска ...
5
Что такое OpenStack?
6
Серьёзные люди видят это так
Физический Сервер 1
7
Физический Сервер 2 Физический Сервер 2
Ключевое слово“виртуализация”
• OpenSource ПО для
построения облаков
• Одно из самых
быстрорастущих сообществ
8
OpenStack
• Возраст ~ 5 лет
• Несколько работающих публичных облаков
• Десятки работающих приватных облаков
• Сотни миллионов доллар...
on crash
• Создать VM
• Настроить VM
• Извлечь ssh pub key
• Создать block storage
• Добавить в DNS
• Добавить в LB
• Доба...
Создать
VM1
Создать
VM2
Создать
VM50
Настроить
VM1
Настроить
VM2
Настроить
VM50
Вычислить
Вычислить
Вычислить
Построить
от...
Nova
1. создать(имя, образ)
2. VM id
> 30 sec
3. найти образ
• OS в процессе загрузки
• Внешний IP не присвоен
12
Секундоч...
• Ожидание создания VM
• Регистрация в Nova
• Готовая к работе OS
• Присвоить внешний IP
• Добавить block storage
• Обрабо...
14
Как насчёт скриптов?
15
16
• Обработка ошибок
• Начинать сначала накладно
• Оповещение
• Прогресс (состояние)
• Передача и сохранение данных
• Уст...
17
Что же делать?
Может нам поможет Workflow и Mistral?
18
19
Что такое Workflow?
20
Из Википедии:
“… A workflow manages and monitors the state of activities,
such as the processing and approval of a loan ...
21
Из Википедии:
“A workflow engine is a software application that defines a
process, the rules governing process decision...
22
Из Википедии:
“A workflow management system (WfMS) is a software
system for the set-up, performance and monitoring of a...
23
Сложно?
24
Workflow это:
• Задачи
• Переходы
• Граф
• Состояние
• Результат
• Данные
• Асинхронность
Попробуем проще
25
• REST API
• Язык Workflow
• Запуск
• По требованию
• По событию
• Управление Workflow
• Наблюдение
• Вызов сервисов об...
26
Task 1
Task 2
Task 3
• Прогресс
• История выполнения
• Наглядность
• Хранение результата
• Эффективное исправление ошиб...
• jBPM
• Activiti
• BizTalk Server
• Amazon Simple Workflow
• Mac OS Automator
27
Примеры Workflow движков
Что такое Mistral?
Mistral = Workflow сервис для OpenStack
(и не только!)
28
29
• Простой язык Workflow на YAML
• Гибкая архитектура:
• Пополняемая библиотека Actions
• Повторное использование Workfl...
30
Общая картина
31
• Workflow
• состояние и результат
• Task
• вызов action или workflow
• состояние и результат
• Action
• std.http url=“...
32
my_workflow:
…
tasks:
ping_my_website:
action: std.http url=“http://my.website.org”
on-error:
- report_downtime
report_...
33
Scheduler
Executor
API ServerEngine
Executor...
workflows
executions
tasks
events
Workflow Queue
Task Queue
Engine API ...
34
Создать
VM 1
Создать
VM 2
Создать
VM 50
Настроить
VM 1
Настроить
VM 2
Настроить
VM 50
Вычислить
Вычислить
Вычислить
Пос...
35
• Mistral работает как “клей”:
• Надёжное связывание скриптов
• Передача данных
• Состояние
• Параллелизм
• Синхронизац...
36
• Интеграция систем
• Оркестрация
• Управление ресурсами облака
• Автоматизация
• Алгоритмы развёртывания ПО
• Distribu...
Текущий Статус
Mistral
37
Технические данные
• Возраст проекта 1 год и 3 месяца
• ~ 100 000 строк кода
• 4 подпроекта
o https://github.com/stackforg...
Компании
39
А можно и мне
поучаствовать?
40
Да!
41
Как?
42
43
Подписать
OpenStack
CLA
Купить
компьютер
Выучить
Python
Launchpad
account
Python, Git
git clone
mistral
repos
Сделать
и...
44
Или
http://docs.openstack.org/infra/manual/developers.html
Спасибо!
45
46
Q & A
47
• Launchpad (blueprints, tarballs etc.)
• https://launchpad.net/mistral
• Wiki (use cases, screencasts, DSL/API specifi...
Prochain SlideShare
Chargement dans…5
×

Построение облачных процессов с помощью Mistral

792 vues

Publié le

Ренат Ахмеров, Mirantis, Backend-секция CodeFest 2015

Publié dans : Logiciels
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Построение облачных процессов с помощью Mistral

  1. 1. © MIRANTIS 2014 Построение облачных процессов с помощью Mistral Ренат Ахмеров
  2. 2. План • Что такое OpenStack? • Что такое Workflow? • Что такое Mistral? • Q & A 2
  3. 3. • Должно быть интересно: • DevOps инженерам • Разработчикам распределенных систем • Администраторам облаков • Ценителям прекрасного • Скорее всего будет интересно • Любому программисту 3 Для кого эта презентация
  4. 4. • Задачи: • Интеграция систем • Управление ресурсами облака • Автоматизация • Построение отчётов • Разные способы запуска (таймер, CPU 100%) • Одна точка управления и мониторинга 4 Зачем?
  5. 5. 5 Что такое OpenStack?
  6. 6. 6 Серьёзные люди видят это так
  7. 7. Физический Сервер 1 7 Физический Сервер 2 Физический Сервер 2 Ключевое слово“виртуализация”
  8. 8. • OpenSource ПО для построения облаков • Одно из самых быстрорастущих сообществ 8 OpenStack
  9. 9. • Возраст ~ 5 лет • Несколько работающих публичных облаков • Десятки работающих приватных облаков • Сотни миллионов долларов ежегодно 9 Текущий статус OpenStack
  10. 10. on crash • Создать VM • Настроить VM • Извлечь ssh pub key • Создать block storage • Добавить в DNS • Добавить в LB • Добавить в App Group 10 Задача 1: Автомасштабирование
  11. 11. Создать VM1 Создать VM2 Создать VM50 Настроить VM1 Настроить VM2 Настроить VM50 Вычислить Вычислить Вычислить Построить отчёт Отослать email 11 Задача 2:“Тяжёлые”вычисления
  12. 12. Nova 1. создать(имя, образ) 2. VM id > 30 sec 3. найти образ • OS в процессе загрузки • Внешний IP не присвоен 12 Секундочку: а что значит“создать VM”?
  13. 13. • Ожидание создания VM • Регистрация в Nova • Готовая к работе OS • Присвоить внешний IP • Добавить block storage • Обработка ошибок • Удаление VM • Оповещение 13 Чего не хватает?
  14. 14. 14 Как насчёт скриптов?
  15. 15. 15
  16. 16. 16 • Обработка ошибок • Начинать сначала накладно • Оповещение • Прогресс (состояние) • Передача и сохранение данных • Устойчивость • Возможность вмешаться Проблемы кустарных решений
  17. 17. 17 Что же делать?
  18. 18. Может нам поможет Workflow и Mistral? 18
  19. 19. 19 Что такое Workflow?
  20. 20. 20 Из Википедии: “… A workflow manages and monitors the state of activities, such as the processing and approval of a loan application form, and determines which new activity to transition to according to defined processes (workflows).” * А если серьёзно?
  21. 21. 21 Из Википедии: “A workflow engine is a software application that defines a process, the rules governing process decisions, and routes information.” А если серьёзно?
  22. 22. 22 Из Википедии: “A workflow management system (WfMS) is a software system for the set-up, performance and monitoring of a defined sequence of tasks, arranged as a workflow” ** А если серьёзно?
  23. 23. 23 Сложно?
  24. 24. 24 Workflow это: • Задачи • Переходы • Граф • Состояние • Результат • Данные • Асинхронность Попробуем проще
  25. 25. 25 • REST API • Язык Workflow • Запуск • По требованию • По событию • Управление Workflow • Наблюдение • Вызов сервисов облака • Управление состоянием Ключевые идеи Workflow сервиса
  26. 26. 26 Task 1 Task 2 Task 3 • Прогресс • История выполнения • Наглядность • Хранение результата • Эффективное исправление ошибок Почему состояние так важно?
  27. 27. • jBPM • Activiti • BizTalk Server • Amazon Simple Workflow • Mac OS Automator 27 Примеры Workflow движков
  28. 28. Что такое Mistral? Mistral = Workflow сервис для OpenStack (и не только!) 28
  29. 29. 29 • Простой язык Workflow на YAML • Гибкая архитектура: • Пополняемая библиотека Actions • Повторное использование Workflow и Actions • Параллельность (fork) • Синхронизация (join) • Политики запуска задач (retry, timeout и т.д.) • Способы запуска • По требованию • По событию Ключевые особенности Mistral
  30. 30. 30 Общая картина
  31. 31. 31 • Workflow • состояние и результат • Task • вызов action или workflow • состояние и результат • Action • std.http url=“http://my.website.org” • Trigger Основные понятия Mistral
  32. 32. 32 my_workflow: … tasks: ping_my_website: action: std.http url=“http://my.website.org” on-error: - report_downtime report_downtime: action: std.email to_addrs=[‘admin@mistral.org’] … Domain Specific Language (DSL)
  33. 33. 33 Scheduler Executor API ServerEngine Executor... workflows executions tasks events Workflow Queue Task Queue Engine API Server Кратко об архитектуре
  34. 34. 34 Создать VM 1 Создать VM 2 Создать VM 50 Настроить VM 1 Настроить VM 2 Настроить VM 50 Вычислить Вычислить Вычислить Построить отчёт Отослать email Join А что же с задачей?
  35. 35. 35 • Mistral работает как “клей”: • Надёжное связывание скриптов • Передача данных • Состояние • Параллелизм • Синхронизация Скрипты всё же можно использовать!
  36. 36. 36 • Интеграция систем • Оркестрация • Управление ресурсами облака • Автоматизация • Алгоритмы развёртывания ПО • Distributed/Cloud Cron Когда нужно использовать Mistral
  37. 37. Текущий Статус Mistral 37
  38. 38. Технические данные • Возраст проекта 1 год и 3 месяца • ~ 100 000 строк кода • 4 подпроекта o https://github.com/stackforge/mistral o https://github.com/stackforge/python-mistralclient o https://github.com/stackforge/mistral-extra o https://github.com/stackforge/mistral-dashboard • ~ 60 блюпринтов на Launchpad 38
  39. 39. Компании 39
  40. 40. А можно и мне поучаствовать? 40
  41. 41. Да! 41
  42. 42. Как? 42
  43. 43. 43 Подписать OpenStack CLA Купить компьютер Выучить Python Launchpad account Python, Git git clone mistral repos Сделать изменения Отослать патч нет Устал? Кофе да Ж изненный цикл разработчика Как поучаствовать в Mistral?
  44. 44. 44 Или http://docs.openstack.org/infra/manual/developers.html
  45. 45. Спасибо! 45
  46. 46. 46 Q & A
  47. 47. 47 • Launchpad (blueprints, tarballs etc.) • https://launchpad.net/mistral • Wiki (use cases, screencasts, DSL/API specifications): • https://wiki.openstack.org/wiki/Mistral Ссылки

×