Непрерывное развертывание

menu icon

Непрерывное развертывание

В этом руководстве рассматривается концепция непрерывного развертывания и обсуждается ее вклад в обеспечение гибкости предприятия.

Что такое непрерывное развертывание ?

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

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

Для этого необходимо автоматизировать регрессионные тесты, отказавшись тем самым от дорогостоящего регрессионного тестирования в ручном режиме. Кроме того, большинство изменений могут идти в обход систем, внедряемых организациями для управления большими объемами производственных изменений, включая совещания, проводимые с целью планирования и утверждения выпусков.

Сравнение непрерывного развертывания

Непрерывное развертывание и непрерывная доставка

Несмотря на то, что термины «непрерывное развертывание» и «непрерывная доставка» имеют похожее звучание, они обозначают два разных подхода к ускорению процесса выпуска.

Непрерывная доставка — это методика разработки, в рамках которой программное обеспечение создается таким образом, что оно может быть выпущено в производственную среду в любой момент времени. Для достижения этой цели среды тестирования в модели непрерывной доставки создаются по аналогии с производственными средами. Новые компоновки, выполняемые решением для непрерывной доставки, автоматически развертываются в среде тестирования и контроля качества с автоматизированными средствами поиска ошибок и несоответствий. После прохождения всех тестов непрерывной доставки оператор должен в вручную разрешить развертывание нового кода в производственной среде. Само развертывание выполняется в автоматическом режиме.

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

Непрерывное развертывание — это естественный результат эволюции непрерывной доставки. Фактически, утверждение в ручном режиме только замедляет процесс, не принося практически никакой значимой пользы. Как только оно становится ненужным, непрерывная доставка превращается в непрерывное развертывание.

В следующем видео Эрики Миник более подробно объясняет различия между непрерывным развертыванием и непрерывной доставкой:

Непрерывная доставка и непрерывное развертывание (07:36)

Непрерывное развертывание и непрерывная интеграция

Непрерывная интеграция — это еще один ключевой элемент, необходимый для обеспечения беспрепятственного и непрерывного развертывания. Чтобы обеспечить эффективную автоматизацию процессов развертывания, важно наладить надежный обмен информацией о вносимых изменениях между всеми разработчиками, работающими над проектом. Непрерывная интеграция делает это возможным.

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

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

Если вы хотите более детально разобраться в различиях между непрерывной интеграцией и непрерывным развертыванием, обратитесь к публикации в блоге «Непрерывная интеграция и непрерывная доставка: краткое сравнение» и видеоролику «Что такое непрерывная интеграция?»:

Что такое непрерывная интеграция (06:20)

Инструменты непрерывного развертывания

Чтобы обеспечить непрерывную разработку и развертывание высококачественных улучшений программного обеспечения, в распоряжении разработчиков должны быть эффективные инструменты, предназначенные для реализации методик DevOps. Помимо организации эффективного взаимодействия между отделами разработки и эксплуатации, такой подход помогает свести к минимуму или полностью исключить ошибки в конвейере доставки программного обеспечения.

Ниже перечислены наиболее важные инструменты, задействованные в рабочем процессе непрерывной интеграции:

  • Управление версиями: управление версиями способствует внедрению непрерывной интеграции за счет отслеживания ревизий ресурсов проектов. Управление версиями (другие названия — управление ревизиями или исходным кодом) помогает повысить уровень прозрачности обновлении и изменений проекта, а также наладить плодотворное сотрудничество коллективов вне зависимости от того, где и когда они работают.
  • Проверка кода: согласно названию, «проверка кода» представляет собой процесс тестирования текущего исходного кода. Проверка кода помогает поддерживать целостность программного обеспечения за счет поиска дефектов и ошибок в коде, а также их устранения перед развертыванием обновлений.
  • Непрерывная интеграция (CI): непрерывная интеграция входит в число важнейших составляющих непрерывного развертывания — именно она помогает устранить основные препятствия, с которыми сталкиваются разработчики, одновременно работающие над одним проектом. Существует множество специализированных и открытых инструментов непрерывной интеграции, каждый из которых предназначен для решения уникальных задач, характерных для развертывания программного обеспечения в масштабах предприятия.
  • Управление конфигурациями: это стратегия и дисциплина поддержания согласованного состояния программного и аппаратного обеспечения. Она предусматривает настройку и автоматизацию всех серверов, систем хранения данных, сетевых компонентов и программного обеспечения.
  • Автоматизация выпуска: автоматизация выпуска приложений (или оркестрация выпуска приложений) играет очень важную роль в процессе автоматизации всех операций, необходимых для реализации непрерывного развертывания. Инструменты оркестрации обеспечивают взаимодействие процессов, помогая разработчикам выполнять все нужные действия перед производственным использованием новых изменений. Эти инструменты тесно взаимодействуют с процессами управления конфигурациями, гарантируя надлежащую подготовку и максимальную эффективность всех сред проекта.
  • Мониторинг инфраструктуры: в ходе внедрения и эксплуатации модели непрерывного развертывания важно иметь возможность визуализации данных, расположенных в средах тестирования. Поскольку инструменты мониторинга инфраструктуры помогают анализировать производительность приложений, вы сможете определить, имеют ли внесенные изменения положительное или отрицательное влияние.

Работа с Kubernetes

Kubernetes — это решение с открытым исходным кодом, отлично подходящее для разработки конвейера непрерывного развертывания. Гибкое и логичное решение Kubernetes с интуитивно понятным пользовательским интерфейсом позволяет избавиться от распространенных проблем, связанных с ограничениями использования и простоями серверов в современных инфраструктурах и мультиоблачных средах.

Kubernetes помогает повысить гибкость процессов DevOps. Благодаря модульной архитектуре Kubernetes позволяет изменять отдельные поды внутри сервиса, а также обеспечивает беспрепятственные переходы между подами. Высокий уровень гибкости позволяет коллективам разработчиков избежать простоев серверов и с максимальной эффективностью задействовать ресурсы в ходе выполнения микросервисов. Кроме того, платформа Kubernetes отличается высочайшей надежностью и может определять готовность и общую работоспособность приложений и сервисов перед их развертыванием в общедоступной среде.

Непрерывное развертывание разнородных приложений

При создании инфраструктуры непрерывной доставки или непрерывного развертывания важно выбрать правильное корпоративное решение, которое позволит вашей компании с уверенностью автоматизировать процессы тестирования и развертывания программного обеспечения. IBM UrbanCode Deploy — это платформа автоматизации развертывания приложений, совмещающая надежные средства просмотра, отслеживания и контроля в одном оптимизированном пакете.

Возможность развертывания в мультиоблачных средах

UrbanCode Deploy предоставляет функции Easy Process и Blueprint Designer, с помощью которых организации могут создавать пользовательские модели облачных сред для визуализации развертывания приложений в общедоступных, частных и гибридных облачных средах. Blueprint Designer позволяет пользователям создавать, обновлять и анализировать комплексные вычислительные среды, обладая при этом широкими возможностями оркестрации облачных сред. Все среды можно инициализировать с целью развертывания компонентов приложений в автоматическом режиме или по запросу.

Распределенная автоматизация

UrbanCode Deploy — это высокомасштабируемое решение, поддерживающее динамическое развертывание всех критически важных приложений и сервисов. Решение UrbanCode Deploy, опирающееся на уникальный опыт предприятий, развертывающих приложения в нескольких центрах обработки данных, поддерживает кластеры главных серверов и использует простые операции развертывания для обеспечения мгновенной доступности сервисов.

Шлюзы качества и утверждения

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

Проверенные интеграции

Несмотря на то, что UrbanCode Deploy позволяет вам использовать собственные сценарии, готовые модули упрощают разработку процессов развертывания и управление ими. С помощью проверенных интеграций разработчики могут задействовать готовые средства автоматизации, уже доказавшие свою эффективность. В этом случае вам не потребуется создавать пользовательские сценарии специально для UrbanCode Deploy.

IBM UrbanCode Deploy предоставляет расширенные инструменты оркестрации процессов и инструменты для совместной работы, позволяющие предприятиям объединить все потребности развертывания с помощью единой, настраиваемой сводной панели, отличающейся простотой использования. Вы можете развертывать приложения в локальных средах, в удаленных средах или на тысячах управляемых серверов — в любых сценариях UrbanCode Deploy имеет в своем распоряжении все решения, необходимые для непрерывной доставки и быстрого развертывания в масштабе всего предприятия.

Для просмотра дополнительной информации о решении IBM UrbanCode Deploy и оптимизации вашего процесса развертывания обратитесь к описанию решения IBM для автоматизации развертывания.

Непрерывное развертывание и IBM Cloud

Возможность автоматического выпуска изменений кода в производственную среду может существенно повысить скорость выхода на рынок. Для этой цели можно использовать инструменты IBM, а также интеграции с системами сторонних поставщиков и модулями с открытым исходным кодом. IBM располагает процессами и инструментами, которые могут помочь реализовать одну из самых сложных инициатив DevOps, с которыми сталкиваются современные организации — создание и модернизацию приложений в процессе перехода в облако.

Сделайте следующий шаг:

Начните работу с учетной записью IBM Cloud прямо сегодня.