Построение облачных процессов с помощью mistral
TRANSCRIPT
![Page 1: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/1.jpg)
© MIRANTIS 2014
Построение облачных процессов с помощью Mistral
Ренат Ахмеров
![Page 2: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/2.jpg)
План
• Что такое OpenStack? • Что такое Workflow? • Что такое Mistral? • Q & A
2
![Page 3: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/3.jpg)
• Должно быть интересно: • DevOps инженерам • Разработчикам распределенных систем • Администраторам облаков • Ценителям прекрасного
• Скорее всего будет интересно • Любому программисту
3
Для кого эта презентация
![Page 4: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/4.jpg)
• Задачи: • Интеграция систем • Управление ресурсами облака • Автоматизация • Построение отчётов
• Разные способы запуска (таймер, CPU 100%) • Одна точка управления и мониторинга
4
Зачем?
![Page 5: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/5.jpg)
5
Что такое OpenStack?
![Page 6: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/6.jpg)
6
Серьёзные люди видят это так
![Page 7: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/7.jpg)
Физический Сервер 1
7
Физический Сервер 2 Физический Сервер 2
Ключевое слово “виртуализация”
![Page 8: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/8.jpg)
• OpenSource ПО для построения облаков
• Одно из самых быстрорастущих сообществ
8
OpenStack
![Page 9: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/9.jpg)
• Возраст ~ 5 лет • Несколько работающих публичных облаков • Десятки работающих приватных облаков • Сотни миллионов долларов ежегодно
9
Текущий статус OpenStack
![Page 10: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/10.jpg)
on crash
• Создать VM
• Настроить VM
• Извлечь ssh pub key
• Создать block storage
• Добавить в DNS
• Добавить в LB
• Добавить в App Group
10
Задача 1: Автомасштабирование
![Page 11: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/11.jpg)
Создать VM1
Создать VM2
Создать VM50
НастроитьVM1
НастроитьVM2
НастроитьVM50
Вычислить
Вычислить
Вычислить
Построить отчёт
Отослать email
11
Задача 2: “Тяжёлые” вычисления
![Page 12: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/12.jpg)
Nova1. создать(имя, образ)
2. VM id
> 30 sec
3. найти образ
• OS в процессе загрузки • Внешний IP не присвоен
12
Секундочку: а что значит “создать VM”?
![Page 13: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/13.jpg)
• Ожидание создания VM • Регистрация в Nova • Готовая к работе OS
• Присвоить внешний IP • Добавить block storage • Обработка ошибок • Удаление VM • Оповещение
13
Чего не хватает?
![Page 14: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/14.jpg)
14
Как насчёт скриптов?
![Page 15: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/15.jpg)
15
![Page 16: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/16.jpg)
16
• Обработка ошибок • Начинать сначала накладно • Оповещение
• Прогресс (состояние) • Передача и сохранение данных • Устойчивость • Возможность вмешаться
Проблемы кустарных решений
![Page 17: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/17.jpg)
17
Что же делать?
![Page 18: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/18.jpg)
Может нам поможет Workflow и Mistral?
18
![Page 19: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/19.jpg)
19
Что такое Workflow?
![Page 20: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/20.jpg)
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).” *
А если серьёзно?
![Page 21: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/21.jpg)
21
Из Википедии:
“A workflow engine is a software application that defines a process, the rules governing process decisions, and routes information.”
А если серьёзно?
![Page 22: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/22.jpg)
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” **
А если серьёзно?
![Page 23: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/23.jpg)
23
Сложно?
![Page 24: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/24.jpg)
24
Workflow это: • Задачи • Переходы • Граф • Состояние • Результат • Данные • Асинхронность
Попробуем проще
![Page 25: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/25.jpg)
25
• REST API • Язык Workflow • Запуск
• По требованию • По событию
• Управление Workflow • Наблюдение • Вызов сервисов облака • Управление состоянием
Ключевые идеи Workflow сервиса
![Page 26: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/26.jpg)
26
Task 1
Task 2
Task 3
• Прогресс • История выполнения • Наглядность • Хранение результата • Эффективное исправление ошибок
Почему состояние так важно?
![Page 27: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/27.jpg)
• jBPM • Activiti • BizTalk Server • Amazon Simple Workflow • Mac OS Automator
27
Примеры Workflow движков
![Page 28: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/28.jpg)
Что такое Mistral?
Mistral = Workflow сервис для OpenStack (и не только!)
28
![Page 29: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/29.jpg)
29
• Простой язык Workflow на YAML • Гибкая архитектура:
• Пополняемая библиотека Actions • Повторное использование Workflow и Actions
• Параллельность (fork) • Синхронизация (join) • Политики запуска задач (retry, timeout и т.д.) • Способы запуска
• По требованию • По событию
Ключевые особенности Mistral
![Page 30: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/30.jpg)
30
Общая картина
![Page 31: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/31.jpg)
31
• Workflow • состояние и результат
• Task • вызов action или workflow
• состояние и результат
• Action • std.http url=“http://my.website.org”
• Trigger
Основные понятия Mistral
![Page 32: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/32.jpg)
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=[‘[email protected]’]
…
Domain Specific Language (DSL)
![Page 33: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/33.jpg)
33
Scheduler
Executor
API ServerEngine
Executor...
workflows executions
tasks events
Workflow Queue
Task Queue
Engine API Server
Кратко об архитектуре
![Page 34: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/34.jpg)
34
Создать VM 1
Создать VM 2
Создать VM 50
Настроить VM 1
Настроить VM 2
Настроить VM 50
Вычислить
Вычислить
Вычислить
Построить отчёт
Отослать email
Join
А что же с задачей?
![Page 35: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/35.jpg)
35
• Mistral работает как “клей”: • Надёжное связывание скриптов • Передача данных • Состояние • Параллелизм • Синхронизация
Скрипты всё же можно использовать!
![Page 36: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/36.jpg)
36
• Интеграция систем • Оркестрация • Управление ресурсами облака • Автоматизация • Алгоритмы развёртывания ПО • Distributed/Cloud Cron
Когда нужно использовать Mistral
![Page 37: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/37.jpg)
Текущий Статус Mistral
37
![Page 38: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/38.jpg)
Технические данные
• Возраст проекта 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
![Page 39: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/39.jpg)
Компании
39
![Page 40: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/40.jpg)
А можно и мне поучаствовать?
40
![Page 41: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/41.jpg)
Да!41
![Page 42: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/42.jpg)
Как?42
![Page 43: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/43.jpg)
43
Подписать OpenStack
CLA
Купить компьютер
Выучить Python
Launchpad accountPython, Git
git clone mistral repos
Сделать изменения
Отослать патч
нет
Устал?
Кофеда
Жизненный
цикл
разработчика
Как поучаствовать в Mistral?
![Page 44: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/44.jpg)
44
Или
http://docs.openstack.org/infra/manual/developers.html
![Page 45: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/45.jpg)
Спасибо!45
![Page 46: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/46.jpg)
46
Q & A
![Page 47: Построение облачных процессов с помощью Mistral](https://reader033.vdocuments.net/reader033/viewer/2022050805/55a78d3a1a28ab1a6e8b488c/html5/thumbnails/47.jpg)
47
• Launchpad (blueprints, tarballs etc.)
• https://launchpad.net/mistral
• Wiki (use cases, screencasts, DSL/API specifications):
• https://wiki.openstack.org/wiki/Mistral
Ссылки