Автоматизация процессов развертывания

от автора

Друзья, доброго времени суток.

Хочу поделиться опытом работы в среде автоматизации процесса развертывания софта – Serena Deployment Automation (SDA).

Используя эту среду можно автоматизировать и объединить под одно «крышей» такие операции как:
1. Получение исходного кода из различных источников – файловая система, среды версионного контроля (Git, Subversion и т.д.), среды сборки (популярная Jenkins, Apache Maven и другие) и т.д.
2. Объединение кода из разных источников в общий набор для последующего развертывания.
3. Создание сценариев развертывания. Разнообразие возможностей должно впечатлить. Сюда могут быть включены как простые задачи, вроде переноса файлов, так и более сложные, типа запуска скриптов обновления данных в БД, установки веб-приложений на IIS, Aphache и другие веб-сервера, запуск различных скриптов, снятие снэпшотов виртуальных машин и т.д.

В состав входит тонна пакетов для взаимодействия с различными системами. Если интересно, с полным списком можно ознакомится здесь.

4. Ручной и отложенный запуск развертывания, отслеживание прогресса установки, просмотр логов.
5. Последовательная установка на несколько сред (например, на тестовую и боевую).

И так далее. Возможности достаточно обширны.
Важно, что абсолютно вся настройка происходит через общий веб-интерфейс системы.

Я буду описывать создание процесса развертывания небольшого ASPX-отчета. Отчет выдает информацию из базы данных на MS SQL и хостится на веб-сервере IIS.

Также у нас есть SQL Update скрипт для обновления данных, который нужно выполнить после установки свежей версии.

Начнем с того, что настроим получение кода из репозитория Git’a. Для этого создадим новую компоненту, дадим ей имя, укажем ветку и путь к клиенту Git:
Screen 1
В отдельном репозитории хранятся SQL скрипты. Аналогичным образом создадим для них компоненту.
Далее переходим к описанию процесса установки каждой компоненты. Процесс установки aspx-отчета представлен ниже:
Screen 2
Первый шаг загружает все артефакты (файлы) в нужную мне директорию на сервере, второй шаг перезапускает веб-сервер через команду строку.
Отдельный процесс описывает запуск SQL скриптов. Схема похожая – скрипты загружаются на сервер и затем запускаются (через sqlcmd):
Screen 3
Каким образом SDA осуществляет все эти действия на удаленном сервере? Через отдельную программу-агента, доступную для различных платформ. Доступна и так называемая «agentless» конфигурация, когда развертывание происходит без участия агентов, но возможности такой схемы сильно ограничены.
Объединяющим элементом будет конфигурационные объект, который в системе называется «Application». Создадим такой и начнём его настройку с добавления наших компонент:
Screenn 4
Далее настроим окружение (слово «окружение» здесь больше подходит, т.к. серверов может быть много), на котором будем проводить развертывание:
Screen 5
И последнее. Создадим процесс, объединяющий процедуры установки обоих наших компонент (application process):
Screen 6
На этом всё, теперь запустим процесс. Можно отслеживать состояние развертывания в режиме real-time:
Screen 7
Или посмотреть результаты после завершения:
Screen 8
Внутри каждого шага храняться логи выполнения. Если что-то пошло не так, это сразу будет видно. Например, вот логи выполнения SQL-update скрипта:
Screen 9
Напоследок должен отменить чрезвычайно, на мой взгляд, важную деталь – продукт абсолютно бесплатен при условии использования не более 5 серверов.
Посмотреть на красивые картинки, почитать описание производителя и скачать всё это добро можно здесь (http://www.serena.com/index.php/en/products/deployment-configuration-automation/serena-deployment-automation/overview).

Собственно, на этом всё. Надеюсь, тема автоматизации процессов развертывания кому-то интересна. Задавайте, пожалуйста, вопросы в комментариях. Очень интересно, что вы об этом думаете.

ссылка на оригинал статьи https://habrahabr.ru/post/276437/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *