SlideShare a Scribd company logo
1 of 27
Continuous Deployment & Delivery end to end: what, why, how
• Андрей Морозовский
Andrey.Morozovsky@VIAcode.com
• http://www.viacode.com
• Software Developer in Testing
• Тестовая инфраструктура, автоматизация
тестов, виртуализация, Application Lifecycle
Management
• «Радикальный путь» в автоматизации развертываний
Качество:
Функциональность
Производительность
Безопасность
...
Внедряемость
+ + =
Инфраструктура:
Физические или
виртуальные
сервера
- hardware
- OS
- network
- 3rd party soft
Компоненты:
Актуальные
версии ПО
(дистрибутив)
- web sites
- services
- databases
- binaries
Конфигурация:
Настройки,
специфичные
для экземпляра
- addresses
- names
- credentials
- parameters
Экземпляр
Системы
Внедренный
продукт
- тест лаба
- devbox
- staging
- production
Разработка Бой
DevBoxes
& автобилды
Тест лабы
& QA
Обслуживание
& staging версии
Боевые сервера
& управление релизами
SCRUM демо
& приемочные тесты
Автотесты
& CI
→ Сложно
→ Слабо документирован
→ Выполняется вручную
→ Занимает много времени
→ Слабо контролируем
→ Непредсказуем
→ Опасен ошибками
→ Дорого network
конфликты версий,
легко ошибиться
при обновлениях
снижение
производительности
“Sharing” стендов
и взаимное
влияние лаб
сложно и дорого
развернуть новый
экземпляр системы
использование существующей
инфраструктуры, пока она
хоть как-то работает
сложность проддержки,
обслуживания, обновления
масштабирования
костыли и
сложная
архитектура
потери $ 465.000.000 за 45 минут
это $172.222 в минуту
+ $ 12.000.000 штраф
подробнее:
http://tinyurl.com/sqa15-knight
• «Внедряемость» не включена в требования в
качестве обязательной функциональности
(нужно формализовать)
• Команда не контролирует процесс
развертывания своего продукта
(нужно требовать как при TDD)
• Попытки решить проблему бессистемно
(нужен системный подход)
• Полностью автоматизировать все три основных
этапа развертывания (с помощью облаков)
• Отказаться от обновления ПО и конфигурации
• Сделать так, чтобы коплект поставки продукта
содержал всѐ необходимое для работы
• Интегрировать автоматическое развертывние в
жизненный цикл продукта, от начала до конца
+ +
Инфраструктура Установка компонентов Конфигурация
Входные данные:
- шаблон окружения
- облако или хосты
- необходимые ресурсы
На выходе:
- набор подготовленных
виртуальных машин (ОС,
домен, сеть, стороннее ПО)
готовых для установки
экземпляра системы
Входные данные:
- посление версии исходного
кода или готовые пакеты
- Сопоставление ролей ВМ
и пакетов для установки
На выходе:
- Актуальные версии систем
установлены на машины в
соответсвии с их ролями
Входные данные:
- набор скриптов
- способ запустить их
на каждой машине и
передать параметры
На выходе:
- Готовый к работе,
настроенный, запущенный
экземпляр системы
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
Виртуальная инфраструктура:
• Настроить окружение на базе хостов Hyper-V
и System Center Virtual Machine Manager
• Подготовить базоыве образы ОС (sysprepped
VHD) с нужными ролями, настройками, ПО
Логика развертывания и конфигурации:
• Подготовить скрипты cmd/ps1 в библиотеке:
‒ Подготовка инфраструктуры (join domain)
‒ Развертывание (copy binaries, install service)
‒ Конфигурирование (deployment specific)
Подготовить шаблон (Service Template):
‒ профили оборудования (HW profiles),
‒ роли виртуальных машин (Tiers),
‒ масштабируемый размер лаб (Min/Max/Def),
‒ соответствие облачным ресурсам (Mapping),
‒ скрипты для каждой роли ВМ (App Config)
‒ задаваемые параметры для скриптов (@, #)
Проще «переналить» новый экземпляр стенда с новой версией ПО или
конфигурацией, чем обновлять существующий или менять что-то вручную
Service template
dev-1
main-2
prod-3
Параметры развертывания
Запуск процесса создания нового экземпляра может быть включен в
глобальную процедуру BUILD-DEPLOY-TEST.
• Собрать билд
• Создать лабу
• Залить продукт
• Настроить лабу
• Установить агентов
• Снять snapshot
• Прогнать автотесты
• Собрать результаты
• Сохранить в TFS
• Удалить лабу (или нет)
VMM Service Template?
VMware App Blueprint?
...
физические сервера?
VMware vFabric Applcation Director:
(vCloud Automation Suite)
Application BluePrints
Microsoft System Center
(Virtual Machine Manager)
Service Templates
<=>
изоляция
стендов
всегда «чистая»
системаокружение,
аналогичное
боевому
сокрытие логики
преимущества ALMпросто поддерживать
быстро развернуть
легко можно
контролировать
• Управление жизненным циклом релизов (и
развертываний): Dev – Test – Staging – Prod
• Возможность продвигать очередной релиз
автоматически (по условиям) и/или по
согласованию с ответственными лицами
• В итоге: путь к внедрению Continuous Delivery
• Система виртуализации, хосты и облака
• Способ развертывать ВМ по шаблонам
• Возможность логически группировать ВМ
• Способ выполнять свой код на машинах
• Возможность масштабировать развертывания
• Интеграция процесса в жизненный цикл / ALM
• Орекстратор для управления системой CD
• Удобные интерфейсы для работы с системой
🚲
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
Есть много путей решения проблемы
Не важно «как» будет выглядеть ваш
Вы можете пойти радикальным путем
или использовать отдельные приемы
Главное - начать смотреть в эту сторону
Четко понять, что внедряемость продукта
ТРЕБУЕТ ВНИМАНИЯ
Это обязательная «фича» продукта
Но многие об этом не помнят...
Не надо так 
Andrey.Morozovsky@VIAcode.com
http://ru.linkedin.com/in/amorozovsky
Вопросы?
Спасибо за внимание!

More Related Content

What's hot

CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан КупреевCRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан КупреевOpenVZ
 
автоматизированная сборка Flash приложений (as2, as3). андрей жданов. зал 4
автоматизированная сборка Flash приложений (as2, as3). андрей жданов. зал 4автоматизированная сборка Flash приложений (as2, as3). андрей жданов. зал 4
автоматизированная сборка Flash приложений (as2, as3). андрей жданов. зал 4rit2011
 
Новые возможности CUCM 9.0.
 Новые возможности CUCM 9.0. Новые возможности CUCM 9.0.
Новые возможности CUCM 9.0.Cisco Russia
 
Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)
Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)
Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)Cisco Russia
 
Web deployment
Web deploymentWeb deployment
Web deploymentGetDev.NET
 
Cisco Collaboration Prime 10.5
Cisco Collaboration Prime 10.5Cisco Collaboration Prime 10.5
Cisco Collaboration Prime 10.5Cisco Russia
 
RAD на Java: как устроена CUBA Platform?
RAD на Java: как устроена  CUBA Platform?RAD на Java: как устроена  CUBA Platform?
RAD на Java: как устроена CUBA Platform?Aleksey Stukalov
 
Обзор распределенной системы самообслуживания на базе Cisco Customer Voice Po...
Обзор распределенной системы самообслуживания на базе Cisco Customer Voice Po...Обзор распределенной системы самообслуживания на базе Cisco Customer Voice Po...
Обзор распределенной системы самообслуживания на базе Cisco Customer Voice Po...Cisco Russia
 
50 оттенков play!
50 оттенков play!50 оттенков play!
50 оттенков play!Andrei Solntsev
 
Azure web apps - designing and debugging
Azure web apps  - designing and debuggingAzure web apps  - designing and debugging
Azure web apps - designing and debuggingAlexey Bokov
 
Windows Server 2008 новинки
Windows Server 2008   новинкиWindows Server 2008   новинки
Windows Server 2008 новинкиAlexander Babich
 
Особенности лицензирования облачных решений vCloud, vFabric, vShield
Особенности лицензирования облачных решений vCloud, vFabric, vShieldОсобенности лицензирования облачных решений vCloud, vFabric, vShield
Особенности лицензирования облачных решений vCloud, vFabric, vShieldareconster
 
Современная архитектура системы унифицированных коммуникаций Cisco.
Современная архитектура системы унифицированных коммуникаций Cisco. Современная архитектура системы унифицированных коммуникаций Cisco.
Современная архитектура системы унифицированных коммуникаций Cisco. Cisco Russia
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_haElena Ometova
 
Dev & test на windows azure
Dev & test на windows azureDev & test на windows azure
Dev & test на windows azureMicrosoft
 

What's hot (20)

CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан КупреевCRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан Купреев
 
автоматизированная сборка Flash приложений (as2, as3). андрей жданов. зал 4
автоматизированная сборка Flash приложений (as2, as3). андрей жданов. зал 4автоматизированная сборка Flash приложений (as2, as3). андрей жданов. зал 4
автоматизированная сборка Flash приложений (as2, as3). андрей жданов. зал 4
 
Новые возможности CUCM 9.0.
 Новые возможности CUCM 9.0. Новые возможности CUCM 9.0.
Новые возможности CUCM 9.0.
 
Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)
Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)
Web-конференции в частном облаке предприятия (c Cisco Webex Meetings Server)
 
Web deployment
Web deploymentWeb deployment
Web deployment
 
Cisco Collaboration Prime 10.5
Cisco Collaboration Prime 10.5Cisco Collaboration Prime 10.5
Cisco Collaboration Prime 10.5
 
RAD на Java: как устроена CUBA Platform?
RAD на Java: как устроена  CUBA Platform?RAD на Java: как устроена  CUBA Platform?
RAD на Java: как устроена CUBA Platform?
 
Обзор распределенной системы самообслуживания на базе Cisco Customer Voice Po...
Обзор распределенной системы самообслуживания на базе Cisco Customer Voice Po...Обзор распределенной системы самообслуживания на базе Cisco Customer Voice Po...
Обзор распределенной системы самообслуживания на базе Cisco Customer Voice Po...
 
50 оттенков play!
50 оттенков play!50 оттенков play!
50 оттенков play!
 
Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)
 
Azure web apps - designing and debugging
Azure web apps  - designing and debuggingAzure web apps  - designing and debugging
Azure web apps - designing and debugging
 
Microsoft Virtualization(Plex)
Microsoft Virtualization(Plex)Microsoft Virtualization(Plex)
Microsoft Virtualization(Plex)
 
Windows Server 2008 новинки
Windows Server 2008   новинкиWindows Server 2008   новинки
Windows Server 2008 новинки
 
Особенности лицензирования облачных решений vCloud, vFabric, vShield
Особенности лицензирования облачных решений vCloud, vFabric, vShieldОсобенности лицензирования облачных решений vCloud, vFabric, vShield
Особенности лицензирования облачных решений vCloud, vFabric, vShield
 
Современная архитектура системы унифицированных коммуникаций Cisco.
Современная архитектура системы унифицированных коммуникаций Cisco. Современная архитектура системы унифицированных коммуникаций Cisco.
Современная архитектура системы унифицированных коммуникаций Cisco.
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_ha
 
Управление версиями в TFS 2008
Управление версиями в TFS 2008Управление версиями в TFS 2008
Управление версиями в TFS 2008
 
Управление версиями в TFS 2008
Управление версиями в TFS 2008Управление версиями в TFS 2008
Управление версиями в TFS 2008
 
Dev & test на windows azure
Dev & test на windows azureDev & test на windows azure
Dev & test на windows azure
 
Управление версиями TFS 2010
Управление версиями TFS 2010Управление версиями TFS 2010
Управление версиями TFS 2010
 

Viewers also liked

CI: Автоматизация сборки, развёртывания и тестирования
CI: Автоматизация сборки, развёртывания и тестированияCI: Автоматизация сборки, развёртывания и тестирования
CI: Автоматизация сборки, развёртывания и тестированияSQALab
 
Практические аспекты организации процесса тестирования в государственных учре...
Практические аспекты организации процесса тестирования в государственных учре...Практические аспекты организации процесса тестирования в государственных учре...
Практические аспекты организации процесса тестирования в государственных учре...SQALab
 
Как общаться с коллегами удалённо, чтобы не было мучительно больно?
Как общаться с коллегами удалённо, чтобы не было мучительно больно?Как общаться с коллегами удалённо, чтобы не было мучительно больно?
Как общаться с коллегами удалённо, чтобы не было мучительно больно?SQALab
 
Практически о виртуализации сервисов
Практически о виртуализации сервисовПрактически о виртуализации сервисов
Практически о виртуализации сервисовSQALab
 
Тестирование в опенсорс
Тестирование в опенсорсТестирование в опенсорс
Тестирование в опенсорсSQALab
 
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...SQALab
 
Подход доктора Хауса в тестировании оптимизации запросов (5 серия)
Подход доктора Хауса в тестировании оптимизации запросов (5 серия)Подход доктора Хауса в тестировании оптимизации запросов (5 серия)
Подход доктора Хауса в тестировании оптимизации запросов (5 серия)SQALab
 
Тестовая инфраструктура в облаке
Тестовая инфраструктура в облакеТестовая инфраструктура в облаке
Тестовая инфраструктура в облакеSQALab
 
Теория и практика сокращения релизного цикла
Теория и практика сокращения релизного циклаТеория и практика сокращения релизного цикла
Теория и практика сокращения релизного циклаSQALab
 
Инструменты тестирования, или хочешь сделать хорошо - сделай это сам
Инструменты тестирования, или хочешь сделать хорошо - сделай это самИнструменты тестирования, или хочешь сделать хорошо - сделай это сам
Инструменты тестирования, или хочешь сделать хорошо - сделай это самSQALab
 
VIQA - Тестирование UI с помощью Виртуального интеллекта
VIQA - Тестирование UI с помощью Виртуального интеллектаVIQA - Тестирование UI с помощью Виртуального интеллекта
VIQA - Тестирование UI с помощью Виртуального интеллектаSQALab
 
Автоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщикамиАвтоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщикамиSQALab
 
Обеспечение качества: Практические советы
Обеспечение качества: Практические советыОбеспечение качества: Практические советы
Обеспечение качества: Практические советыSQALab
 
Особенности тестирования облачных сервисов
Особенности тестирования облачных сервисовОсобенности тестирования облачных сервисов
Особенности тестирования облачных сервисовSQALab
 
Миссия тест-менеджера
Миссия тест-менеджераМиссия тест-менеджера
Миссия тест-менеджераSQALab
 
Организация времени в тестировании
Организация времени в тестированииОрганизация времени в тестировании
Организация времени в тестированииSQALab
 
Первоклассное тестирование
Первоклассное тестированиеПервоклассное тестирование
Первоклассное тестированиеSQALab
 
Waterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестированияWaterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестированияSQALab
 
Безопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применениеБезопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применениеSQALab
 
Успешный тестировщик. Путь профессионала
Успешный тестировщик. Путь профессионалаУспешный тестировщик. Путь профессионала
Успешный тестировщик. Путь профессионалаSQALab
 

Viewers also liked (20)

CI: Автоматизация сборки, развёртывания и тестирования
CI: Автоматизация сборки, развёртывания и тестированияCI: Автоматизация сборки, развёртывания и тестирования
CI: Автоматизация сборки, развёртывания и тестирования
 
Практические аспекты организации процесса тестирования в государственных учре...
Практические аспекты организации процесса тестирования в государственных учре...Практические аспекты организации процесса тестирования в государственных учре...
Практические аспекты организации процесса тестирования в государственных учре...
 
Как общаться с коллегами удалённо, чтобы не было мучительно больно?
Как общаться с коллегами удалённо, чтобы не было мучительно больно?Как общаться с коллегами удалённо, чтобы не было мучительно больно?
Как общаться с коллегами удалённо, чтобы не было мучительно больно?
 
Практически о виртуализации сервисов
Практически о виртуализации сервисовПрактически о виртуализации сервисов
Практически о виртуализации сервисов
 
Тестирование в опенсорс
Тестирование в опенсорсТестирование в опенсорс
Тестирование в опенсорс
 
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
 
Подход доктора Хауса в тестировании оптимизации запросов (5 серия)
Подход доктора Хауса в тестировании оптимизации запросов (5 серия)Подход доктора Хауса в тестировании оптимизации запросов (5 серия)
Подход доктора Хауса в тестировании оптимизации запросов (5 серия)
 
Тестовая инфраструктура в облаке
Тестовая инфраструктура в облакеТестовая инфраструктура в облаке
Тестовая инфраструктура в облаке
 
Теория и практика сокращения релизного цикла
Теория и практика сокращения релизного циклаТеория и практика сокращения релизного цикла
Теория и практика сокращения релизного цикла
 
Инструменты тестирования, или хочешь сделать хорошо - сделай это сам
Инструменты тестирования, или хочешь сделать хорошо - сделай это самИнструменты тестирования, или хочешь сделать хорошо - сделай это сам
Инструменты тестирования, или хочешь сделать хорошо - сделай это сам
 
VIQA - Тестирование UI с помощью Виртуального интеллекта
VIQA - Тестирование UI с помощью Виртуального интеллектаVIQA - Тестирование UI с помощью Виртуального интеллекта
VIQA - Тестирование UI с помощью Виртуального интеллекта
 
Автоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщикамиАвтоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщиками
 
Обеспечение качества: Практические советы
Обеспечение качества: Практические советыОбеспечение качества: Практические советы
Обеспечение качества: Практические советы
 
Особенности тестирования облачных сервисов
Особенности тестирования облачных сервисовОсобенности тестирования облачных сервисов
Особенности тестирования облачных сервисов
 
Миссия тест-менеджера
Миссия тест-менеджераМиссия тест-менеджера
Миссия тест-менеджера
 
Организация времени в тестировании
Организация времени в тестированииОрганизация времени в тестировании
Организация времени в тестировании
 
Первоклассное тестирование
Первоклассное тестированиеПервоклассное тестирование
Первоклассное тестирование
 
Waterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестированияWaterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестирования
 
Безопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применениеБезопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применение
 
Успешный тестировщик. Путь профессионала
Успешный тестировщик. Путь профессионалаУспешный тестировщик. Путь профессионала
Успешный тестировщик. Путь профессионала
 

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

Вячеслав Смирнов - Инструменты нагрузочного тестирования
Вячеслав Смирнов - Инструменты нагрузочного тестированияВячеслав Смирнов - Инструменты нагрузочного тестирования
Вячеслав Смирнов - Инструменты нагрузочного тестированияElias Fofanov
 
6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remotingKewpaN
 
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктуройdddpaul
 
Организация автоматизированного развертывания ПО и создание тестовых сред
Организация автоматизированного развертывания ПО и создание тестовых средОрганизация автоматизированного развертывания ПО и создание тестовых сред
Организация автоматизированного развертывания ПО и создание тестовых средEkaterina Shelest
 
Использование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияИспользование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияSQALab
 
Оптимизация производительности среды VDI
Оптимизация производительности среды VDIОптимизация производительности среды VDI
Оптимизация производительности среды VDIKhamzet Shogenov
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - ПроизводительностьAlexander Demidov
 
Совместные решения Citrix и Dell для правильной организации рабочих мест
Совместные решения Citrix и Dell для правильной организации рабочих местСовместные решения Citrix и Dell для правильной организации рабочих мест
Совместные решения Citrix и Dell для правильной организации рабочих местDell_Russia
 
Развитие вычислительной платформы Cisco UCS
Развитие вычислительной платформы Cisco UCSРазвитие вычислительной платформы Cisco UCS
Развитие вычислительной платформы Cisco UCSCisco Russia
 
Развитие вычислительной системы Cisco UCS
Развитие вычислительной системы Cisco UCSРазвитие вычислительной системы Cisco UCS
Развитие вычислительной системы Cisco UCSCisco Russia
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesAliaksandr Ikhelis
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовSQALab
 
Использование технологий виртуализации Vmware
Использование технологий виртуализации VmwareИспользование технологий виртуализации Vmware
Использование технологий виртуализации VmwareКРОК
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаMikhail Chinkov
 
Tfs Overview And Architecture (www.cmcons.com)
Tfs Overview And Architecture (www.cmcons.com)Tfs Overview And Architecture (www.cmcons.com)
Tfs Overview And Architecture (www.cmcons.com)Alexander Novichkov
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusCisco Russia
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayAndrey Rebrov
 
Виртуализация настольных ПК с VMware View
Виртуализация настольных ПК с VMware ViewВиртуализация настольных ПК с VMware View
Виртуализация настольных ПК с VMware Viewareconster
 

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

Вячеслав Смирнов - Инструменты нагрузочного тестирования
Вячеслав Смирнов - Инструменты нагрузочного тестированияВячеслав Смирнов - Инструменты нагрузочного тестирования
Вячеслав Смирнов - Инструменты нагрузочного тестирования
 
6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting
 
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктурой
 
Automation Compliance Checks
Automation Compliance ChecksAutomation Compliance Checks
Automation Compliance Checks
 
Организация автоматизированного развертывания ПО и создание тестовых сред
Организация автоматизированного развертывания ПО и создание тестовых средОрганизация автоматизированного развертывания ПО и создание тестовых сред
Организация автоматизированного развертывания ПО и создание тестовых сред
 
Использование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияИспользование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестирования
 
Оптимизация производительности среды VDI
Оптимизация производительности среды VDIОптимизация производительности среды VDI
Оптимизация производительности среды VDI
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - Производительность
 
Совместные решения Citrix и Dell для правильной организации рабочих мест
Совместные решения Citrix и Dell для правильной организации рабочих местСовместные решения Citrix и Dell для правильной организации рабочих мест
Совместные решения Citrix и Dell для правильной организации рабочих мест
 
Развитие вычислительной платформы Cisco UCS
Развитие вычислительной платформы Cisco UCSРазвитие вычислительной платформы Cisco UCS
Развитие вычислительной платформы Cisco UCS
 
Citrix on VMware
Citrix on VMwareCitrix on VMware
Citrix on VMware
 
Развитие вычислительной системы Cisco UCS
Развитие вычислительной системы Cisco UCSРазвитие вычислительной системы Cisco UCS
Развитие вычислительной системы Cisco UCS
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practices
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
 
Использование технологий виртуализации Vmware
Использование технологий виртуализации VmwareИспользование технологий виртуализации Vmware
Использование технологий виртуализации Vmware
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
 
Tfs Overview And Architecture (www.cmcons.com)
Tfs Overview And Architecture (www.cmcons.com)Tfs Overview And Architecture (www.cmcons.com)
Tfs Overview And Architecture (www.cmcons.com)
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
 
Виртуализация настольных ПК с VMware View
Виртуализация настольных ПК с VMware ViewВиртуализация настольных ПК с VMware View
Виртуализация настольных ПК с VMware View
 

More from SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

More from SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

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

  • 1. Continuous Deployment & Delivery end to end: what, why, how
  • 2. • Андрей Морозовский Andrey.Morozovsky@VIAcode.com • http://www.viacode.com • Software Developer in Testing • Тестовая инфраструктура, автоматизация тестов, виртуализация, Application Lifecycle Management • «Радикальный путь» в автоматизации развертываний
  • 4. + + = Инфраструктура: Физические или виртуальные сервера - hardware - OS - network - 3rd party soft Компоненты: Актуальные версии ПО (дистрибутив) - web sites - services - databases - binaries Конфигурация: Настройки, специфичные для экземпляра - addresses - names - credentials - parameters Экземпляр Системы Внедренный продукт - тест лаба - devbox - staging - production
  • 5. Разработка Бой DevBoxes & автобилды Тест лабы & QA Обслуживание & staging версии Боевые сервера & управление релизами SCRUM демо & приемочные тесты Автотесты & CI
  • 6. → Сложно → Слабо документирован → Выполняется вручную → Занимает много времени → Слабо контролируем → Непредсказуем → Опасен ошибками → Дорого network
  • 7. конфликты версий, легко ошибиться при обновлениях снижение производительности “Sharing” стендов и взаимное влияние лаб сложно и дорого развернуть новый экземпляр системы использование существующей инфраструктуры, пока она хоть как-то работает сложность проддержки, обслуживания, обновления масштабирования костыли и сложная архитектура
  • 8. потери $ 465.000.000 за 45 минут это $172.222 в минуту + $ 12.000.000 штраф подробнее: http://tinyurl.com/sqa15-knight
  • 9. • «Внедряемость» не включена в требования в качестве обязательной функциональности (нужно формализовать) • Команда не контролирует процесс развертывания своего продукта (нужно требовать как при TDD) • Попытки решить проблему бессистемно (нужен системный подход)
  • 10. • Полностью автоматизировать все три основных этапа развертывания (с помощью облаков) • Отказаться от обновления ПО и конфигурации • Сделать так, чтобы коплект поставки продукта содержал всѐ необходимое для работы • Интегрировать автоматическое развертывние в жизненный цикл продукта, от начала до конца
  • 11. + + Инфраструктура Установка компонентов Конфигурация Входные данные: - шаблон окружения - облако или хосты - необходимые ресурсы На выходе: - набор подготовленных виртуальных машин (ОС, домен, сеть, стороннее ПО) готовых для установки экземпляра системы Входные данные: - посление версии исходного кода или готовые пакеты - Сопоставление ролей ВМ и пакетов для установки На выходе: - Актуальные версии систем установлены на машины в соответсвии с их ролями Входные данные: - набор скриптов - способ запустить их на каждой машине и передать параметры На выходе: - Готовый к работе, настроенный, запущенный экземпляр системы
  • 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. Виртуальная инфраструктура: • Настроить окружение на базе хостов Hyper-V и System Center Virtual Machine Manager • Подготовить базоыве образы ОС (sysprepped VHD) с нужными ролями, настройками, ПО
  • 14. Логика развертывания и конфигурации: • Подготовить скрипты cmd/ps1 в библиотеке: ‒ Подготовка инфраструктуры (join domain) ‒ Развертывание (copy binaries, install service) ‒ Конфигурирование (deployment specific)
  • 15. Подготовить шаблон (Service Template): ‒ профили оборудования (HW profiles), ‒ роли виртуальных машин (Tiers), ‒ масштабируемый размер лаб (Min/Max/Def), ‒ соответствие облачным ресурсам (Mapping), ‒ скрипты для каждой роли ВМ (App Config) ‒ задаваемые параметры для скриптов (@, #)
  • 16.
  • 17. Проще «переналить» новый экземпляр стенда с новой версией ПО или конфигурацией, чем обновлять существующий или менять что-то вручную Service template dev-1 main-2 prod-3 Параметры развертывания
  • 18. Запуск процесса создания нового экземпляра может быть включен в глобальную процедуру BUILD-DEPLOY-TEST.
  • 19. • Собрать билд • Создать лабу • Залить продукт • Настроить лабу • Установить агентов • Снять snapshot • Прогнать автотесты • Собрать результаты • Сохранить в TFS • Удалить лабу (или нет) VMM Service Template? VMware App Blueprint? ... физические сервера?
  • 20. VMware vFabric Applcation Director: (vCloud Automation Suite) Application BluePrints Microsoft System Center (Virtual Machine Manager) Service Templates <=>
  • 21. изоляция стендов всегда «чистая» системаокружение, аналогичное боевому сокрытие логики преимущества ALMпросто поддерживать быстро развернуть легко можно контролировать
  • 22. • Управление жизненным циклом релизов (и развертываний): Dev – Test – Staging – Prod • Возможность продвигать очередной релиз автоматически (по условиям) и/или по согласованию с ответственными лицами • В итоге: путь к внедрению Continuous Delivery
  • 23.
  • 24. • Система виртуализации, хосты и облака • Способ развертывать ВМ по шаблонам • Возможность логически группировать ВМ • Способ выполнять свой код на машинах • Возможность масштабировать развертывания • Интеграция процесса в жизненный цикл / ALM • Орекстратор для управления системой CD • Удобные интерфейсы для работы с системой
  • 25. 🚲
  • 26. 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 Есть много путей решения проблемы Не важно «как» будет выглядеть ваш Вы можете пойти радикальным путем или использовать отдельные приемы Главное - начать смотреть в эту сторону Четко понять, что внедряемость продукта ТРЕБУЕТ ВНИМАНИЯ Это обязательная «фича» продукта Но многие об этом не помнят... Не надо так 