Вы используйте облака Azure и хотите автоматизировать процессы интеграции и развертывания, но не знаете с чего начать и какие инструменты использовать. Или, быть может, Вы только планируете использовать Azure и хотите понять, что Вам потребуется для комфортной разработки и обслуживания?n
Обращайтесь [email protected] и мы Вам поможем.
Как мы это сделаем рассмотрим в этой статье.nnНа сегодняшний день облачные технологии – это тренд и многие программные решения, которые используются для разработки и обслуживания ИТ проектов имеют инструменты для интеграции с облачными сервисами. Сразу появляется масса вопросов, по сути стекающая в один «Что же выбрать?». Поскольку в этой статье мы говорим об Azure, то обратимся за рекомендациями ресурс-первоисточник.nnИтак, для решения задач DevOps сам Microsoft Azure предлагает 5 инструментов:n
- Visual Studio Team Services
- Jenkins
- TravisCI
- Ansible
- Spinnaker
Для каждого из этих продуктов есть сценарии использования в 3х направлениях:n
- Заготовки (Provision)
- Непрерывная интеграция (Continuous Integration)
- Непрерывная доставка (Continuous Delivery)
Давайте рассмотрим назначение каждого продукта и сценарии использования, которые предлагает нам Azure.n
Visual Studio Team Services
Облачное решение для команды разработчиков. Позволяет планировать работу, вести разработку на различных языках, подключать модули для различных сред, частные репозитарии, отслеживать ошибки и отзывы, автоматизировать развертывание и тестирование. Бесплатно для команд до 5ти человек.n
Шаблоны, предлагаемые Azure:
- Provision:n
- Развертывание рабочего места разработчика.
- Развертывание VM для тестирования в Azure DevTest Labs.
- CI:n
- из Visual Studio Team Services оповещение Jenkins о необходимости запуска сборки приложения.
- Настройка непрерывной интеграции для приложения Service Fabric (распределенная платформа для простого управления и масштабирования Вашего решения).
- Сборка приложения на java, node.js, asp.net и развертывание его в azure.
- CD:n
- Развертывание и выпуск в продуктивную среду NET приложения
- Управление слотами в Azure web apps
Jenkins
О нем мы уже говорили ЗДЕСЬ (link на статью про jenkins).n
Шаблоны, предлагаемые Azure:
- Provision:n
- Развертывание хоста Jenkins в VM.
- CI:n
- Загрузка и выгрузка файлов с Хранилища Azure с помощью Jenkins.
- CI с помощью агентов Jenkins. Для этого на сервере устанавливается плагин, который позволяет создавать в Azure агентов Jenkins по требованию или для масштабирования, то есть если Дженкинс замечает, что существующие виртуальные машины перегружены, это создаст новые VM в Azure с помощью Azure Resource Manager (ARM) и автоматически подключит их в качестве агентов Jenkins
- из Visual Studio Team Services оповещение Jenkins о необходимости запуска сборки приложения.
Travis-CI
Сервис для тестирования и развертывания, иными словами – хостинг непрерывной интеграции. Делает упор на конфиденциальность. Поддерживает большое количество языков разработки, интегрируется с github.n
Шаблоны, предлагаемые Azure:
- CI:n
- Развертывание приложения в Azure с помощью Travis-CI
Ansible
Система управления конфигурациями написанная на Pyton. Используется для автоматизации развертывания и настройки ПО. Может управлять как Linux так и Windows системами. Отличается низким «порогом вхождения», обусловленным простотой эксплуатации в сравнении с аналогами. При этом имеет достаточно широкий функционал и гибкость настроек.n
Шаблоны, предлагаемые Azure:
- Provision:n
- Управление виртуальными машинами Azure с помощью Ansible.
- Установка Ansible для управления N Linux VM
- CD:n
- Преднастройка и развертывание ПО на VM с помощью Ansible.
- Создание и удаление шаблонов развертываний Azure Resource Manager с помощью Ansible.
Spinnaker
Continuous Delivery платформа от Netflix. Является открытой мульти-облачной платформой, с высокой производительностью и степенью доверия. Продукт разрабатывался, как легко расширяемый. Его целью ставилось упрощение расширения и совершенствования моделей развертывания облачных сущностей. Например, Spinnaker из коробки умеет разворачивать и управлять кластерами в Amazon и Google Cloud.n
Шаблоны, предлагаемые Azure:
- CI:n
- Подготовка образа Azure VM с помощью Packer для
- CD:n
- Развертывание масштабируемых наборов VM с помощью Spinnaker.
Конечно, есть и другие инструменты DevOps, способные интегрироваться с Azure, например, TeamCity. На худой конец есть Azure CLI и PowerShell. При использовании этих средств вся ответственность за качественное взаимодействие ложится на разработчика инструмента интеграции. В этой статье мы говорили о продуктах, которые обеспечивают высокое качество интеграции, подтвержденное как со стороны продукта, так и со стороны Azure.nnНаши специалисты могут проконсультировать Вас по конкретным сценариям использования вышеперечисленных продуктов, а также их аналогов. Обращайтесь к нам. Наиболее интересующие вопросы будут освящены в будущих публикациях.