2. План
• Что такое OpenStack?
• Что такое Workflow?
• Что такое Mistral?
• Q & A
2
3. • Должно быть интересно:
• DevOps инженерам
• Разработчикам распределенных систем
• Администраторам облаков
• Ценителям прекрасного
• Скорее всего будет интересно
• Любому программисту
3
Для кого эта презентация
4. • Задачи:
• Интеграция систем
• Управление ресурсами облака
• Автоматизация
• Построение отчётов
• Разные способы запуска (таймер, CPU 100%)
• Одна точка управления и мониторинга
4
Зачем?
8. • OpenSource ПО для
построения облаков
• Одно из самых
быстрорастущих сообществ
8
OpenStack
9. • Возраст ~ 5 лет
• Несколько работающих публичных облаков
• Десятки работающих приватных облаков
• Сотни миллионов долларов ежегодно
9
Текущий статус OpenStack
10. on crash
• Создать VM
• Настроить VM
• Извлечь ssh pub key
• Создать block storage
• Добавить в DNS
• Добавить в LB
• Добавить в App Group
10
Задача 1: Автомасштабирование
12. Nova
1. создать(имя, образ)
2. VM id
> 30 sec
3. найти образ
• OS в процессе загрузки
• Внешний IP не присвоен
12
Секундочку: а что значит“создать VM”?
13. • Ожидание создания VM
• Регистрация в Nova
• Готовая к работе OS
• Присвоить внешний IP
• Добавить block storage
• Обработка ошибок
• Удаление VM
• Оповещение
13
Чего не хватает?
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
Из Википедии:
“A workflow engine is a software application that defines a
process, the rules governing process decisions, and routes
information.”
А если серьёзно?
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” **
А если серьёзно?
24. 24
Workflow это:
• Задачи
• Переходы
• Граф
• Состояние
• Результат
• Данные
• Асинхронность
Попробуем проще
25. 25
• REST API
• Язык Workflow
• Запуск
• По требованию
• По событию
• Управление Workflow
• Наблюдение
• Вызов сервисов облака
• Управление состоянием
Ключевые идеи Workflow сервиса
26. 26
Task 1
Task 2
Task 3
• Прогресс
• История выполнения
• Наглядность
• Хранение результата
• Эффективное исправление ошибок
Почему состояние так важно?
27. • jBPM
• Activiti
• BizTalk Server
• Amazon Simple Workflow
• Mac OS Automator
27
Примеры Workflow движков
29. 29
• Простой язык Workflow на YAML
• Гибкая архитектура:
• Пополняемая библиотека Actions
• Повторное использование Workflow и Actions
• Параллельность (fork)
• Синхронизация (join)
• Политики запуска задач (retry, timeout и т.д.)
• Способы запуска
• По требованию
• По событию
Ключевые особенности Mistral
31. 31
• Workflow
• состояние и результат
• Task
• вызов action или workflow
• состояние и результат
• Action
• std.http url=“http://my.website.org”
• Trigger
Основные понятия Mistral
34. 34
Создать
VM 1
Создать
VM 2
Создать
VM 50
Настроить
VM 1
Настроить
VM 2
Настроить
VM 50
Вычислить
Вычислить
Вычислить
Построить
отчёт
Отослать
email
Join
А что же с задачей?
35. 35
• Mistral работает как “клей”:
• Надёжное связывание скриптов
• Передача данных
• Состояние
• Параллелизм
• Синхронизация
Скрипты всё же можно использовать!
36. 36
• Интеграция систем
• Оркестрация
• Управление ресурсами облака
• Автоматизация
• Алгоритмы развёртывания ПО
• Distributed/Cloud Cron
Когда нужно использовать Mistral
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