Книга: Руководство по DevOps
Интегрируйте развертывание кода в конвейер развертывания
Интегрируйте развертывание кода в конвейер развертывания
После того как процесс развертывания кода автоматизирован, мы можем сделать его частью конвейера развертывания. В связи с этим наша автоматизация развертывания должна обеспечивать следующие возможности:
• убедиться, что пакеты, созданные во время непрерывного процесса интеграции, подходят для развертывания в производство;
• с одного взгляда показать готовность производственных сред;
• обеспечить запускаемый одним нажатием кнопки и самообслуживаемый метод развертывания в производство любой подходящей версии упакованного кода;
• автоматически записывать для аудита и обеспечения соответствия требованиям, какие команды были выполнены и на какой машине, когда, кто санкционировал и каков был результат;
• выполнить smoke-тест, чтобы убедиться, что система работает правильно и параметры конфигурации, в том числе такие элементы, как строки подключений к базам данных, корректны;
• обеспечить быструю обратную связь для работника, чтобы он мог быстро определить, осуществилось ли развертывание (например, успешно ли оно прошло, работает ли приложение в производственной среде в соответствии с ожиданиями и так далее).
Цель — обеспечить, чтобы развертывание выполнялось быстро, мы не хотим ждать часами, пока сможем определить, успешно ли развертывание нашего кода или нет, а затем еще столько же времени тратить на развертывание кода, исправляющего обнаруженные ошибки. Сейчас мы имеем такие технологии, как контейнеры, и можем завершить развертывание даже в самых сложных средах в течение нескольких секунд или минут. Данные, опубликованные в докладе 2014 State of DevOps Report, подготовленном компанией Puppet Labs, свидетельствуют, что при высокой производительности время развертывания измеряется несколькими минутами или часами, в то время как при низкой производительности — месяцами.
Рис. 18. Компании с высокой производительностью выполняют развертывание гораздо быстрее и также гораздо быстрее восстанавливают работу производственных сервисов после инцидентов (источник: доклад 2014 State of DevOps Report, подготовленный компанией Puppet Labs)
Создав такую возможность, мы используем кнопку «развернуть код», позволяющую быстро и безопасно вносить изменения, сделанные в нашем коде и наших средах, в производство с помощью нашего конвейера развертывания.
- Количество разработчиков в неделю, развертывающих свой код
- Автоматизируем процесс развертывания
- Практический пример
- Ежедневное развертывание в компании CSG International (2013 г.)
- Включите автоматизированное самообслуживание развертываний
- Интегрируйте развертывание кода в конвейер развертывания
- Практический пример
- Самообслуживаемое развертывание разработчиками в компании Etsy — пример непрерывного развертывания (2014 г.)
- Отделить развертывания от релизов
- Шаблоны релиза на основе среды
- Шаблон Blue-Green развертывания
- Управление сменой баз данных
- Практический пример
- Blue-Green развертывание для системы торговых точек компании Dixons Retail (2008 г.)
- Шаблоны канареечных релизов и cluster immune systems
- Шаблоны релиза на основе приложений обеспечивают более безопасный релиз
- Реализация переключателей функциональности
- Выполняйте теневые запуски
- Практический пример
- Теневой запуск чата Facebook (2008 г.)
- Обзор непрерывной доставки и непрерывного развертывания на практике
- Заключение
- Шаблон Blue-Green развертывания
- Глава 5 Агрессивные формы кода и борьба с ними
- Стиль написания исходного кода
- Развертывание на сервере
- Анализ CIL-кода
- Исправление ранее написанного кода
- Преобразование WSDL-кода в программный код агента для клиента
- Агрессивный и консервативный варианты производственного конвейера
- Вызов окна программного кода
- Строки кода и комментарии
- 2.4.3. Генерация кода в Power Builder
- Обращение к окнам из программного кода