Получите бесплатно — все материалы с наших курсов и тренингов
Тренинги, Курсы, Обучение — Agile, Scrum, OKR
Тренинги, Курсы, Обучение — Agile, Scrum, OKR
Тренинги, Курсы, Обучение — Agile, Scrum, OKR
Ключевые аспекты непрерывного развертывания: эффективные правила и инструменты. Изучите, как ускорить и оптимизировать процесс разработки и внедрения ПО.

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

10 апреля, 2024 г.
20 отзывов, в среднем 4 из 5
В чем суть непрерывного развертывания — передача клиенту нового или измененного фрагмента кода в момент завершения полного цикла проверки и тестирования с одновременным обеспечением обратной связи при обнаружении ошибок потребителем. Таким образом достигается максимизация скорости доставки обновленной функциональности с сохранением качества продукта.
Нравится
7
Редактировать
Дополнить

В чем заключается суть непрерывного развертывание простым языком?

Передача клиенту нового или измененного фрагмента кода в момент завершения полного цикла проверки и тестирования (т.е. полная автоматизация процесса передачи обновления ПО в производство) с одновременным обеспечением обратной связи при обнаружении ошибок потребителем. Таким образом достигается максимизация скорости доставки обновленной функциональности с сохранением качества продукта.

Нравится В чем заключается суть непрерывного развертывание простым языком?
2
Комментарий В чем заключается суть непрерывного развертывание простым языком?
0
Редактировать В чем заключается суть непрерывного развертывание простым языком?
Редактировать
Mikhail Ряженка
Founder, Executive Partner

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

ПРАВИЛА: Уверенность в тестах, верный выбор контролируемого объекта, создание культуры сотрудничества, контроль выпуска, контроль производства, контроль паплайна. ИНСТРУМЕНТЫ: Контроль версий, автоматизация сборки, развертывание.

Нравится Главные правила процесса непрерывного развертывания и инструменты
4
Комментарий Главные правила процесса непрерывного развертывания и инструменты
0
Редактировать Главные правила процесса непрерывного развертывания и инструменты
Редактировать
Mikhail Ряженка
Founder, Executive Partner

Почему же выбирают непрерывное развертывание?

полная автоматизация цикла развертывания, обеспечение обратной связи, возможность расширения тестирования

Нравится Почему же выбирают непрерывное развертывание?
5
Комментарий Почему же выбирают непрерывное развертывание?
0
Редактировать Почему же выбирают непрерывное развертывание?
Редактировать
Mikhail Ряженка
Founder, Executive Partner

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

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

В этих целях используется три основных стратегии автоматизации и управления:

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

И сегодня попробуем разобраться, что же из себя представляет непрерывное развертывание.

Непрерывное развертывание (CD) на текущий момент нашло свое максимальное развитие в DevOps–технологии.

НР по сути автоматизирует, делает непрерывным весь процесс. Предположим, изменение успешно проходит все предыдущие стадии (см. выше). В момент фиксации кода автоматически, без чьего–либо вмешательства, срабатывает триггер и обновления отправляются в производство (потребителям, клиентам, пользователям) в режиме реального времени. Таким образом, моментом доступности «улучшения» является момент завершения проверки и тестирования изменения кода.

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

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

Нравится Непрерывное развертывание
7
Комментарий Непрерывное развертывание
0
Редактировать Непрерывное развертывание
Редактировать
Mikhail Ряженка
Founder, Executive Partner

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

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

Уверенность в тестах. Здесь нужно отдавать приоритетность исправлению проблем сборок и паплайнов перед разработкой новых функций.

Верный выбор контролируемого объекта. Для снижения рисков потерь преимуществ непрерывной интеграции, а также для возможности продолжения процесса разработки ПО следует контролировать и ограничивать «поле зрения» потребителя.

Нравится Главные правила и инструменты непрерывного развертывания
8
Комментарий Главные правила и инструменты непрерывного развертывания
0
Редактировать Главные правила и инструменты непрерывного развертывания
Редактировать
Mikhail Ряженка
Founder, Executive Partner

Создание культуры сотрудничества

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

Нравится Создание культуры сотрудничества
5
Комментарий Создание культуры сотрудничества
0
Редактировать Создание культуры сотрудничества
Редактировать
Mikhail Ряженка
Founder, Executive Partner

Контроль выпуска

Как уже говорилось, CD предполагает предварительную проверку и тестирование. Возникает ложное ощущение потери контроля над последующим автоматическим процессом доставки обновления. Быть уверенными в себе нам позволяет, например, тестирование на группе клиентов (Релизы Canary) или же управление переходом на обновленный продукт (сине–зеленое развертывание).

Нравится Контроль выпуска
3
Комментарий Контроль выпуска
0
Редактировать Контроль выпуска
Редактировать
Mikhail Ряженка
Founder, Executive Partner

Контроль производства

Вам предстоит осуществлять постоянный мониторинг статистики. Любые отклонения должны быть оперативно и пристально рассмотрены до их обнаружения клиентом.

Нравится Контроль производства
8
Комментарий Контроль производства
0
Редактировать Контроль производства
Редактировать
Mikhail Ряженка
Founder, Executive Partner

Контроль пайплайна

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

Нравится Контроль пайплайна
8
Комментарий Контроль пайплайна
0
Редактировать Контроль пайплайна
Редактировать
Mikhail Ряженка
Founder, Executive Partner

Эффект от CD

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

Нравится Эффект от CD
2
Комментарий Эффект от CD
0
Редактировать Эффект от CD
Редактировать
Mikhail Ряженка
Founder, Executive Partner

Как выпускаются изменения при CD

Итак, основа для начала CD — автоматизация сборки, качественные тестирование и развертывание. Далее следует сам процесс выпуска изменений. Об этом мы уже вскользь говорили в прошлом пункте в разделе «контроля выпуска».

Так как же будут выпускаться изменения? Здесь могут использоваться плавающие релизы, может быть расширена процедура автотестирования.

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

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

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

Нравится Как выпускаются изменения при CD
7
Комментарий Как выпускаются изменения при CD
0
Редактировать Как выпускаются изменения при CD
Редактировать
Mikhail Ряженка
Founder, Executive Partner

5 инструментов Continuous Deployment

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

Контроль версий. Контроль версий (КВ) позволяет регистрировать историю обновлений и дает возможность «откатиться» к исходному коду. Благодаря КВ создаются ветки кода для возможности изменения кода без риска потерь.

Наиболее популярным инструментом контроля версий является система управления версиями Git и веб–сервис GitHub. Его основная идея — возможность регистрирации кода в репозитории и дальнейшим пользованием типовыми функциями инструмента контроля версий.

Автоматизация сборки. Регистрация кода в системе контроля требует последующей сборки кода. Этот инструмент требует автоматизации и должен иметь функцию тестирования. Выбор инструмента автоматизации сборки диктуется самим проектом. Например, MSBuild для ПО Microsoft, Team Foundation Server и Visual Studio Team Services (VSTS), Jenkins, TravisCI и TeamCity актуальны для проектов с открытым кодом.

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

Нравится 5 инструментов Continuous Deployment
4
Комментарий 5 инструментов Continuous Deployment
0
Редактировать 5 инструментов Continuous Deployment
Редактировать
Mikhail Ряженка
Founder, Executive Partner

Дополнительные инструменты Continuous Deployment

Инструменты СD за счет скриптов развертывают код, интегрируют и обязательно тестируют его в производственной системе. Инструменты тестирования дают возможность самому разработчику совершить запуск и тестирование кода. Обычно для этого используют Jenkins, AWS CodeDeploy, Octopus Deploy и VSTS.

Также, используются следующие инструменты:

  • управления автоматизацией и настройкой Puppet и Ansible при развертывании и конфигурирование обычно;

  • мониторинг изменений, вызванных кодом (например, AppDynamics и Splunk)

  • реагирования и администрирования инцидентов (например, PagerDuty).

Нравится Дополнительные инструменты Continuous Deployment
4
Комментарий Дополнительные инструменты Continuous Deployment
0
Редактировать Дополнительные инструменты Continuous Deployment
Редактировать
Mikhail Ряженка
Founder, Executive Partner

Почему же непрерывное развертывание выбирают?

Главным преимуществам CD является полная автоматизация цикла развертывания того, что прошло полную проверку и тестирование. Одновременно с этим функции и исправления передаются в производство. По этой причине многие клиенты СВ считают этот процесс опасным и боятся отказаться от контроля над релизами.

Также преимуществом CD является возможность расширения тестирования. Но здесь же код должен быть добросовестно спроектирован, а тесты – своевременны.

CD обеспечивает постоянную обратную связь в формате «обновление пользователям – быстрое информирование о дефектах на ранних стадиях».

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

Нравится Почему же непрерывное развертывание выбирают?
5
Комментарий Почему же непрерывное развертывание выбирают?
0
Редактировать Почему же непрерывное развертывание выбирают?
Редактировать
Mikhail Ряженка
Founder, Executive Partner