Всем привет!
В статье пойдет речь об облачном сервисе Microsoft Azure DevTest Labs. Данный сервис позволяет решить вопрос настройки среды для разработки, тестирования и лабораторных занятий. Тема лабораторных от меня далека, поэтому я расскажу про настройку сред для разработки и автоматического тестирования.
Среда разработки
Исходная постановка задачи: Входные данные для настройки среды разработки представлены в виде документа с последовательным списком действий. Каждое действие описывает установку инструмента заданной версии с последующей настройкой. Пример действия: установить Visual Studio 2017 и прописать пути к Nuget. Если таких действий несколько десятков, то процедура настройки превращается в крайне утомительное занятие.
Способ решения
1. Открываем портал
2. Находим сервис DevTest Labs в списке сервисов
3. Создаем формулу. Формула позволяет задать базовый образ виртуалки, размер виртуалки, артефакты для установки, креды для доступа.
Например: базовый образ с десяткой и студией, размер Standard_DS2_v2. Артефакты для установки: Chrome, 7zip, Notepad++.
4. Создаем виртуалку, используя формулу.
5. Стартуем созданную виртуалку.
6. Заходим на виртуалку по RDP, используя креды для доступа.
7. Донастраиваем созданную виртуалку, выполняя необходимый список действий из входных данных.
8. Останавливаем виртуалку.
9. Создаем кастомный образ с остановленной виртуалки.
На этом процесс создания среды разработки закончен. С кастомного образа мы теперь можем быстро поднять требуемое количество экземпляров среды разработки.
Цена вопроса: за восьмичасовой рабочий день одна виртуалка Standard_DS2_v2 съедает около 500 рублей.
Среда для автоматического тестирования
Исходная постановка задачи: Автоматическое создание виртуалки с необходимой средой, запуск виртуалки, удаленный запуск тестового скрипта через Powershell, удаление виртуалки.
Способ решения
1. Создаем кастомный образ среды тестирования по аналогии со средой для разработки.
2. Cоздаем виртуальную машину с помощью API. К кастомному образу добавляем возможность удаленного управления через Powershell с помощью артефакта windows-winrm.
3. Стартуем виртуальную машину с помощью API.
4. Выполняем тест, используя доступный WinRM.
5. Удаляем машину после теста с помощью API.
Выводы
За счет удобного UI, большого выбора базовых образов, доступных артефактов, возможностей по конфигурации, рассмотренный облачный сервис отлично решает задачи построения сред разработки\тестирования. К минусам решения можно отнести стоимость облачных сервисов.
Ссылки
1. Azure DevTest Labs
2. Azure DevTest Labs API
3. An Overview of Azure DevTest Labs