0Pricing
Docker & DevOps Fundamentals · Урок

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

Различайте непрерывную доставку (CD) и непрерывное развёртывание, а также понимайте их преимущества для быстрых выпусков.

«Непрерывная доставка и развёртывание» — бесплатный урок Docker & DevOps Fundamentals на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Docker & DevOps Fundamentals, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Docker & DevOps Fundamentals содержит 4 уроков всего.

За пределами интеграции: готовность к выпуску

На прошлом уроке мы рассмотрели непрерывную интеграцию (CI), при которой изменения кода часто объединяются и тестируются. Но что происходит после интеграции и тестирования кода?

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

Непрерывная доставка и развёртывание — иллюстрация 1

Что такое непрерывная поставка (CD)

Непрерывная поставка (CD) — это практика разработки программного обеспечения, при которой изменения кода автоматически собираются, тестируются и подготавливаются к выпуску в рабочую среду.

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

Рабочий процесс CD: готовность к выпуску

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

  • Фиксация кода: Разработчик отправляет код.
  • Конвейер непрерывной интеграции: Код собирается, проходит модульные тесты и интегрируется.
  • Автоматизированные тесты: Дополнительные тесты (интеграционные и сквозные) запускаются автоматически.
  • Создание артефакта: Создаётся пакет, готовый к развёртыванию (например, образ Docker).
  • Развёртывание в тестовую среду: Пакет автоматически развёртывается в тестовой среде для финальных проверок.
  • Ручной выпуск: Участник команды вручную подтверждает и запускает развёртывание в рабочую среду.

Преимущества непрерывной поставки

CD даёт процессу разработки значительные преимущества:

  • Снижение рисков: Каждое изменение небольшое, поэтому проблемы проще находить и исправлять.
  • Более быстрая обратная связь: Команды быстрее получают информацию об изменениях, что помогает повышать качество.
  • Более высокое качество: Строгое автоматизированное тестирование уменьшает количество ошибок до ручного подтверждения.
  • Ускорение выхода на рынок: Программное обеспечение всегда готово к выпуску, что ускоряет релизы.

Что такое непрерывное развёртывание (CDep)

Непрерывное развёртывание (CDep) развивает идею непрерывной поставки. Это означает, что каждое изменение, успешно прошедшее все автоматизированные тесты, автоматически выпускается в рабочую среду.

  • Перед развёртыванием для пользователей отсутствует этап ручного подтверждения.
  • Для этого требуется исключительно высокий уровень доверия к автоматизированному тестированию и мониторингу.

Рабочий процесс CDep: полная автоматизация

Представьте полностью автономную фабрику, где продукты собираются, тестируются и сразу отправляются без участия человека.

  • Фиксация кода: Разработчик отправляет код.
  • Конвейер непрерывной интеграции: Код собирается, проходит модульные тесты и интегрируется.
  • Автоматизированные тесты: Все интеграционные, сквозные тесты и тесты производительности запускаются автоматически.
  • Создание артефакта: Создаётся пакет, готовый к развёртыванию.
  • Развёртывание в тестовую среду: Пакет автоматически развёртывается в тестовой среде.
  • Автоматизированное развёртывание в рабочую среду: Если все тесты пройдены, пакет автоматически развёртывается в рабочей среде.

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

CDep максимально ускоряет выпуск и получение обратной связи:

  • Сверхбыстрые выпуски: Новые функции и исправления ошибок доходят до пользователей почти мгновенно.
  • Мгновенная обратная связь: Данные реального использования и отчёты об ошибках поступают быстрее.
  • Настоящая гибкость: Команды могут с беспрецедентной скоростью вносить итеративные изменения и реагировать на изменения рынка.
  • Снижение накладных расходов: Устраняются затраты времени и усилий на координацию ручных выпусков.

CD и CDep: ключевое различие

Главное различие между непрерывной поставкой и непрерывным развёртыванием заключается в том, кто или что принимает решение о развёртывании в рабочей среде:

  • Непрерывная поставка: Автоматизация обеспечивает постоянную готовность программного обеспечения к выпуску, но человек решает, когда нажать кнопку запуска развёртывания в рабочей среде.
  • Непрерывное развёртывание: Автоматизация выполняет всё; программное обеспечение автоматически развёртывается в рабочей среде сразу после успешного прохождения всех тестов. Для финального выпуска вмешательство человека не требуется.

Выбор подхода: CD или CDep

Выбор между CD и CDep зависит от зрелости Вашей команды, уверенности в автоматизации и допустимого уровня риска.

  • Начните с CD: Это более безопасная отправная точка, позволяющая укрепить доверие к Вашему конвейеру.
  • Переходите к CDep: Только когда Ваши стратегии автоматизированного тестирования, мониторинга и отката станут исключительно надёжными.
  • Учитывайте контекст: В отраслях с жёстким регулированием (например, в финансах и здравоохранении) часто предпочитают CD из-за требований к соблюдению нормативов.

Проверьте свои знания

Какое утверждение лучше всего описывает основное различие между непрерывной поставкой и непрерывным развёртыванием?

Повторение: CD и CDep

Теперь Вы узнали о важнейшем различии между непрерывной поставкой и непрерывным развёртыванием!

  • Непрерывная поставка (CD): Программное обеспечение всегда готово к выпуску, но финальное развёртывание в рабочей среде запускает человек.
  • Непрерывное развёртывание (CDep): Программное обеспечение автоматически выпускается в рабочую среду сразу после успешного прохождения всех автоматизированных тестов.

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

Часто задаваемые вопросы

Урок «Непрерывная доставка и развёртывание» бесплатный?

Да — полный текст урока «Непрерывная доставка и развёртывание» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Docker & DevOps Fundamentals, подпишись на CoddyKit PRO. Курс Docker & DevOps Fundamentals содержит 4 уроков всего.

Чему я научусь в уроке «Непрерывная доставка и развёртывание»?

Различайте непрерывную доставку (CD) и непрерывное развёртывание, а также понимайте их преимущества для быстрых выпусков. Ты практикуешь Docker & DevOps Fundamentals с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Docker & DevOps Fundamentals?

Предыдущий опыт не требуется. Docker & DevOps Fundamentals на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Непрерывная доставка и развёртывание»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Docker & DevOps Fundamentals?

Да. Каждый урок Docker & DevOps Fundamentals включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Мышление DevOps
  2. Объяснение непрерывной интеграции
  3. Непрерывная доставка и развёртывание
  4. Основы инфраструктуры как кода
← Назад к Docker & DevOps Fundamentals