Top.Mail.Ru
поддержка 24/7
поддержка 24/7

Использование CI/CD в облаках. Применение DevOps и передача части задач и компетенций облачному провайдеру

Экспертный материал

Михаил Сергеев | Ведущий инженер

CI/CD расшифровывается как Continuous Integration / Continuous Delivery, что переводится как «непрерывная интеграция / непрерывная доставка». CI подразумевает частую интеграцию кода в общую ветку проекта с автоматической сборкой и тестированием, а CD — еще и деплой, то есть развертывание и запуск прошедшего интеграцию кода в рабочей среде.

Эта методология была разработана с целью автоматизировать процессы тестирования программных продуктов и доставки новых версий приложений. Такой подход увеличивает скорость разработки ПО и выпуск новых версий, сокращая трудозатраты и одновременно делая код более качественным.

Этапы CI/CD

CI/CD подразумевает поэтапную работу над проектом и включает в себя следующие этапы:

  1. Сборка. Сборка новой версии производится в определенную ветку с помощью коммитов. Это делается в интерфейсе веб-сервиса для совместной разработки проектов — например, в GitHub или GitLab.

  2. Тестирование. Работоспособность собранной версии сначала тестируется сервисом автоматически, затем наступает время ручной проверки со стороны DevOps. В крупных компаниях за тестирование отвечает QA-инженер.

  3. Релиз. После успешного завершения тестирования и необходимой коррекции кода наступает время релиза новой версии.

  4. Развертывание. Финализированная версия отправляется на рабочий сервер, где с ней уже начинают работать пользователи.

  5. Поддержка. Отдельная команда разработчиков, отвечающая за взаимодействие с пользователями, занимается мониторингом и аналитикой.

Этапы 1-3 — это CI-процессы, а 4-й этап относится к CD. А мониторинг и аналитика также являются важной частью CI/CD, поскольку позволяют отслеживать процессы непрерывной интеграции и доставки и оптимизировать их по мере необходимости.

Инструменты для CI/CD

Автоматизировать тестирование и доставку кода позволяет ряд специальных инструментов. Часть из них будут полезны для стартапов, а из каких-то смогут извлечь пользу разработчики проектов, находящихся на продвинутых стадиях.

Для начала несколько полезных CI-решений:

  • Travis-CI. Облачный сервис непрерывной интеграции, который легко интегрируется с репозиториями GitHub. Travis-CI очень прост в настройке, а кроме того он бесплатный для проектов, развивающихся по модели open source.

  • Circle CI. Позволяет отслеживать репозитории GitHub и имеет ряд инструментов для автоматического тестирования в облаке, в том числе с использованием контейнеров Docker.

  • Jenkins. Старый и надежный продукт, избавляющий разработчиков от головной боли по автоматизации сборок и тестированию кода. Jenkins имеет широкую поддержку со стороны сообщества, поэтому разработчики могут выбирать из почти 1,5 тыс. плагинов, создавая оптимальные конфигурации под свои требования. Существует также коммерческая версия Jenkins под названием CloudBees, которая отличается большей надежностью.

  • GitLab CI. Позволяет полноценно управлять репозиториями, вести историю разработки, включая тестирование и мониторинг ошибок. Например, можно настроить GitLab CI таким образом, что код будет собираться после каждого коммита без использования других сервисов или плагинов.

  • Bamboo CI. Удобное решение для одновременной сборки, тестирования и развертывания нескольких продуктов. Bamboo CI совместим с другими инструментами: например, поддерживается импорт из Jenkins.

Из CD-решений отметим:

  • Buddy. Незаменимый CD-инструмент для команд, работающих с такими сервисами, как GitHub и GitLab. Buddy предназначен для создания конвейеров доставки, которые облегчают сборку, тестирование и развертывание ПО. Конвейеры создаются из модулей, что позволяет формировать оптимальные цепочки доставки версий.

  • CodeShip. Облегчает развертывание кода, делая это прямо из GitHub. CodeShip имеет широкую совместимость с другими продуктами и поддерживает различные языки программирования.

И, конечно, не забудем про платформы контейнеризации и оркестрации:

  • Docker. Упрощает и ускоряет процесс развертывания кода. При помощи Docker приложение легко упаковывается в образ и разворачивается в контейнер вместе с окружением и всеми зависимостями в контейнер. Также Docker облегчает создание кластеров версий, распределение нагрузки и сбор статистики.

  • Kubernetes. Один из главных инструментов для автоматизации процесса непрерывного развертывания. Этот оркестратор существенно расширяет возможности управления контейнер изолированными приложениями, решая задачи по управлению большим количеством контейнеров.

Kubernetes в облаке

CI/CD в Corpsoft24

Corpsoft24 предлагает всё необходимое для управления CI/CD‑процессами и организации полного цикла разработки программных продуктов в облаке. Так, при использовании Kubernetes есть возможность подключения серверов, расположенных за пределами нашей виртуальной инфраструктуры.

Преимущества Corpsoft24:

  • все необходимые инструменты для организации CI- и CD‑процессов в облаке;

  • вам не придется думать об обновлении версий ПО и обеспечении безопасности, поскольку эти задачи лягут на плечи команды Corpsoft24;

  • отказоустойчивая инфраструктура — современные технологии репликации обеспечивают нашим клиентам постоянный доступ к данным.

Автор: Роман Андреев

Размещение данных в защищенном отказоустойчивом облаке Corpsoft24


Загрузка ...