Your SlideShare is downloading. ×
0
Continuous Deployment & Delivery end to end: what, why, how
• Андрей Морозовский
Andrey.Morozovsky@VIAcode.com
• http://www.viacode.com
• Software Developer in Testing
• Тестовая инф...
Качество:
Функциональность
Производительность
Безопасность
...
Внедряемость
+ + =
Инфраструктура:
Физические или
виртуальные
сервера
- hardware
- OS
- network
- 3rd party soft
Компоненты:
Актуальные...
Разработка Бой
DevBoxes
& автобилды
Тест лабы
& QA
Обслуживание
& staging версии
Боевые сервера
& управление релизами
SCRU...
→ Сложно
→ Слабо документирован
→ Выполняется вручную
→ Занимает много времени
→ Слабо контролируем
→ Непредсказуем
→ Опас...
конфликты версий,
легко ошибиться
при обновлениях
снижение
производительности
“Sharing” стендов
и взаимное
влияние лаб
сло...
потери $ 465.000.000 за 45 минут
это $172.222 в минуту
+ $ 12.000.000 штраф
подробнее:
http://tinyurl.com/sqa15-knight
• «Внедряемость» не включена в требования в
качестве обязательной функциональности
(нужно формализовать)
• Команда не конт...
• Полностью автоматизировать все три основных
этапа развертывания (с помощью облаков)
• Отказаться от обновления ПО и конф...
+ +
Инфраструктура Установка компонентов Конфигурация
Входные данные:
- шаблон окружения
- облако или хосты
- необходимые ...
FrontEnd role Appsrv role
Web UI
worker
win service
scheduler
Database
Other
services
Domain Controller
OS v1
app v1
OS v1...
Виртуальная инфраструктура:
• Настроить окружение на базе хостов Hyper-V
и System Center Virtual Machine Manager
• Подгото...
Логика развертывания и конфигурации:
• Подготовить скрипты cmd/ps1 в библиотеке:
‒ Подготовка инфраструктуры (join domain)...
Подготовить шаблон (Service Template):
‒ профили оборудования (HW profiles),
‒ роли виртуальных машин (Tiers),
‒ масштабир...
Проще «переналить» новый экземпляр стенда с новой версией ПО или
конфигурацией, чем обновлять существующий или менять что-...
Запуск процесса создания нового экземпляра может быть включен в
глобальную процедуру BUILD-DEPLOY-TEST.
• Собрать билд
• Создать лабу
• Залить продукт
• Настроить лабу
• Установить агентов
• Снять snapshot
• Прогнать автотесты...
VMware vFabric Applcation Director:
(vCloud Automation Suite)
Application BluePrints
Microsoft System Center
(Virtual Mach...
изоляция
стендов
всегда «чистая»
системаокружение,
аналогичное
боевому
сокрытие логики
преимущества ALMпросто поддерживать...
• Управление жизненным циклом релизов (и
развертываний): Dev – Test – Staging – Prod
• Возможность продвигать очередной ре...
• Система виртуализации, хосты и облака
• Способ развертывать ВМ по шаблонам
• Возможность логически группировать ВМ
• Спо...
🚲
Deploy service from template
Configuration parameters loaded from dropMP CI_20140408.6TattooParameters
Connecting to VMM s...
Andrey.Morozovsky@VIAcode.com
http://ru.linkedin.com/in/amorozovsky
Вопросы?
Спасибо за внимание!
Полная автоматизация развертываний ПО: общие концепции, пример реализации, сравнение подходов
Полная автоматизация развертываний ПО: общие концепции, пример реализации, сравнение подходов
Upcoming SlideShare
Loading in...5
×

Полная автоматизация развертываний ПО: общие концепции, пример реализации, сравнение подходов

289

Published on

Доклад Андрея Морозовского на SQA Days-15. 18-19 апреля, 2014, Москва.
www.sqadays.com

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
289
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Полная автоматизация развертываний ПО: общие концепции, пример реализации, сравнение подходов"

  1. 1. Continuous Deployment & Delivery end to end: what, why, how
  2. 2. • Андрей Морозовский Andrey.Morozovsky@VIAcode.com • http://www.viacode.com • Software Developer in Testing • Тестовая инфраструктура, автоматизация тестов, виртуализация, Application Lifecycle Management • «Радикальный путь» в автоматизации развертываний
  3. 3. Качество: Функциональность Производительность Безопасность ... Внедряемость
  4. 4. + + = Инфраструктура: Физические или виртуальные сервера - hardware - OS - network - 3rd party soft Компоненты: Актуальные версии ПО (дистрибутив) - web sites - services - databases - binaries Конфигурация: Настройки, специфичные для экземпляра - addresses - names - credentials - parameters Экземпляр Системы Внедренный продукт - тест лаба - devbox - staging - production
  5. 5. Разработка Бой DevBoxes & автобилды Тест лабы & QA Обслуживание & staging версии Боевые сервера & управление релизами SCRUM демо & приемочные тесты Автотесты & CI
  6. 6. → Сложно → Слабо документирован → Выполняется вручную → Занимает много времени → Слабо контролируем → Непредсказуем → Опасен ошибками → Дорого network
  7. 7. конфликты версий, легко ошибиться при обновлениях снижение производительности “Sharing” стендов и взаимное влияние лаб сложно и дорого развернуть новый экземпляр системы использование существующей инфраструктуры, пока она хоть как-то работает сложность проддержки, обслуживания, обновления масштабирования костыли и сложная архитектура
  8. 8. потери $ 465.000.000 за 45 минут это $172.222 в минуту + $ 12.000.000 штраф подробнее: http://tinyurl.com/sqa15-knight
  9. 9. • «Внедряемость» не включена в требования в качестве обязательной функциональности (нужно формализовать) • Команда не контролирует процесс развертывания своего продукта (нужно требовать как при TDD) • Попытки решить проблему бессистемно (нужен системный подход)
  10. 10. • Полностью автоматизировать все три основных этапа развертывания (с помощью облаков) • Отказаться от обновления ПО и конфигурации • Сделать так, чтобы коплект поставки продукта содержал всѐ необходимое для работы • Интегрировать автоматическое развертывние в жизненный цикл продукта, от начала до конца
  11. 11. + + Инфраструктура Установка компонентов Конфигурация Входные данные: - шаблон окружения - облако или хосты - необходимые ресурсы На выходе: - набор подготовленных виртуальных машин (ОС, домен, сеть, стороннее ПО) готовых для установки экземпляра системы Входные данные: - посление версии исходного кода или готовые пакеты - Сопоставление ролей ВМ и пакетов для установки На выходе: - Актуальные версии систем установлены на машины в соответсвии с их ролями Входные данные: - набор скриптов - способ запустить их на каждой машине и передать параметры На выходе: - Готовый к работе, настроенный, запущенный экземпляр системы
  12. 12. FrontEnd role Appsrv role Web UI worker win service scheduler Database Other services Domain Controller OS v1 app v1 OS v1 app v2 OS v2 app v1
  13. 13. Виртуальная инфраструктура: • Настроить окружение на базе хостов Hyper-V и System Center Virtual Machine Manager • Подготовить базоыве образы ОС (sysprepped VHD) с нужными ролями, настройками, ПО
  14. 14. Логика развертывания и конфигурации: • Подготовить скрипты cmd/ps1 в библиотеке: ‒ Подготовка инфраструктуры (join domain) ‒ Развертывание (copy binaries, install service) ‒ Конфигурирование (deployment specific)
  15. 15. Подготовить шаблон (Service Template): ‒ профили оборудования (HW profiles), ‒ роли виртуальных машин (Tiers), ‒ масштабируемый размер лаб (Min/Max/Def), ‒ соответствие облачным ресурсам (Mapping), ‒ скрипты для каждой роли ВМ (App Config) ‒ задаваемые параметры для скриптов (@, #)
  16. 16. Проще «переналить» новый экземпляр стенда с новой версией ПО или конфигурацией, чем обновлять существующий или менять что-то вручную Service template dev-1 main-2 prod-3 Параметры развертывания
  17. 17. Запуск процесса создания нового экземпляра может быть включен в глобальную процедуру BUILD-DEPLOY-TEST.
  18. 18. • Собрать билд • Создать лабу • Залить продукт • Настроить лабу • Установить агентов • Снять snapshot • Прогнать автотесты • Собрать результаты • Сохранить в TFS • Удалить лабу (или нет) VMM Service Template? VMware App Blueprint? ... физические сервера?
  19. 19. VMware vFabric Applcation Director: (vCloud Automation Suite) Application BluePrints Microsoft System Center (Virtual Machine Manager) Service Templates <=>
  20. 20. изоляция стендов всегда «чистая» системаокружение, аналогичное боевому сокрытие логики преимущества ALMпросто поддерживать быстро развернуть легко можно контролировать
  21. 21. • Управление жизненным циклом релизов (и развертываний): Dev – Test – Staging – Prod • Возможность продвигать очередной релиз автоматически (по условиям) и/или по согласованию с ответственными лицами • В итоге: путь к внедрению Continuous Delivery
  22. 22. • Система виртуализации, хосты и облака • Способ развертывать ВМ по шаблонам • Возможность логически группировать ВМ • Способ выполнять свой код на машинах • Возможность масштабировать развертывания • Интеграция процесса в жизненный цикл / ALM • Орекстратор для управления системой CD • Удобные интерфейсы для работы с системой
  23. 23. 🚲
  24. 24. Deploy service from template Configuration parameters loaded from dropMP CI_20140408.6TattooParameters Connecting to VMM server: *.viacode.com as * Self-Service Users Getting Service Template: Auto DC+SCOM12SP1 version: 8.2.1 Connecting to TFS Team Project Collection http://*.viacode.com:*/tfs/* Existing service instance Auto HDP SCOM found; restoring procedure started List of Tiers and Virtual Machines in Service Auto * SCOM - [Win2K12SCOM12SP1_1]: AUTOSCOM1.auto.local; [Win2K8DC]: autoDC.auto.local Restoring VM [autoSCOM1] to it's most recent checkpoint: autoSCOM1 - pw resest Restoring VM [autoDC] to it's most recent checkpoint: autoDC - pw resest Virutal Machine autohdpSCOM1 is in PowerOff state; starting... Running Virutal Machine autohdpDC is in PowerOff state; starting... Running Test Agent will be installed to Virutal Machine: AUTOSCOM1.auto.local Waiting AUTOSCOM1.auto.local to be up and running - Server is not responding... Ping ok Existing Lab environment found and will be destroyed: * Tattoo Lab : NotReady Lab environment has been destroyed… Creating Lab Environment: * Tattoo Lab Installing Test Agent to AUTOSCOM1.auto.local Waiting for Environment to be ready… - [State] = Preparing Environment is now Ready… Service deployment completed successfully GetLabEnvironmentUri… Run Tests on Environment Running Tests… The following Suite ID will be used to create the test run: 195 If all tests have not passed... Creating incidents Tattoo: Cleanup phase… Test MTM Environment and VMM Service are freezed Есть много путей решения проблемы Не важно «как» будет выглядеть ваш Вы можете пойти радикальным путем или использовать отдельные приемы Главное - начать смотреть в эту сторону Четко понять, что внедряемость продукта ТРЕБУЕТ ВНИМАНИЯ Это обязательная «фича» продукта Но многие об этом не помнят... Не надо так 
  25. 25. Andrey.Morozovsky@VIAcode.com http://ru.linkedin.com/in/amorozovsky Вопросы? Спасибо за внимание!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×