Что такое непрерывная доставка?
Здесь вы будете следовать команде Tailspin, как они обсуждают, как конвейер непрерывной доставки (CD) может помочь им в их предстоящем выпуске.
Команда Tailspin начинает чувствовать себя лучше в процессе сборки. У них есть автоматизированный процесс, выполняемый в Azure Pipelines, что означает, что среда сборки стабильна. Амита сразу же знает, когда ей нужно протестировать артефакт. Она находит меньше ошибок, потому что Энди и Мара начали добавлять модульные тесты и тесты качества кода. Жизнь выглядит хорошо. Давайте выясним, как дела у команды.
Утреннее собрание
Команда находится в комнате собраний, ожидая Irwin, менеджер по продуктам, который хочет поговорить с ними. Они с нетерпением ждут того, чтобы рассказать ему о своем прогрессе. Но когда Ирвин заходит, он не выглядит счастливым. Он начинает говорить сразу.
Ирвин: я встречалась сегодня утром с командой управления. Они хотят знать, почему мы так долго выпускаем наши игры и веб-сайты. Наши ближайшие конкуренты получают новые функции и новые игры там гораздо быстрее, чем мы делаем. Нам нужно ускорить вещи. Я не оповещаю только тебя. Я оповещаю всех команд. Что мы можем сделать, чтобы помочь вашей команде развертываться быстрее?
Энди: Это немного внезапно, но мы немного впереди вас. Мы автоматизируем процесс создания наших веб-сайтов. Может быть, пришло время расширить нашу автоматизацию до нашего процесса выпуска.
Ирвин: Как бы вы это сделали?
Мара: Мы создали автоматизированный конвейер сборки с помощью Azure Pipelines. Он создает артефакт, который Амита может протестировать. Мы также можем создать конвейер непрерывной доставки (CD).
Irwin: Что такое конвейер CD?
Мара начинает объяснять, но ее прерывает сигнал сотового телефона Ирвина. Ирвин читает текстовое сообщение и бормотает под дыханием.
Ирвин: мне жаль, но это срочно. Мне нужно идти. Почему бы вам всем не разобраться с этим CD-дописом и не связаться со мной как можно скорее?
Энди смотрит на свою команду.
Энди: кофе?
Энди и остальная часть команды направляются в кафе, чтобы создать план.
Что такое непрерывная доставка?
Команда встречается за чашечкой кофе, чтобы обсудить, как настроить рабочий процесс непрерывной доставки.
Энди: Мара, вы можете рассказать нам, что вы знаете о непрерывной поставке?
Мара: Для меня, CD и DevOps неразделимы. Помните, что мы определили DevOps как объединение людей, процессов и продуктов, чтобы обеспечить непрерывную доставку ценности нашим конечным пользователям.
Cd само по себе представляет собой набор процессов, инструментов и методов, которые обеспечивают быструю, надежную и непрерывную доставку программного обеспечения. Поэтому CD не только о настройке конвейера, хотя эта часть важна. CD подразумевает настройку рабочей среды, в которой:
- У нас есть надежный и повторяемый процесс для выпуска и развертывания программного обеспечения.
- Мы автоматизируем как можно больше.
- Мы не откладываем делать что-то, что трудно или больно; Вместо этого мы чаще делаем это так, чтобы мы узнали, как сделать его рутиной.
- Мы сохраняем всё в системе контроля версий.
- Мы все согласны с тем, что сделано означает, что выпущен.
- Мы встраиваем качество в процесс. Качество никогда не является второстепенным.
- Мы все отвечаем за процесс выпуска. Мы больше не работаем в силосах.
- Мы всегда стараемся улучшить.
Мы уже поставили на место многие из этих идей, и мы все согласны, что они улучшили то, как мы работаем. CD — это расширение того, что мы уже начали.
Зачем мне нужна непрерывная доставка?
CD помогает командам программного обеспечения предоставлять надежные обновления программного обеспечения своим клиентам в быстром темпе. CD также помогает гарантировать, что клиенты и заинтересованные лица имеют новейшие функции и исправления быстро.
Продолжим подслушивать команду, пока они это обсуждают.
Энди: спасибо, Мара. Нам нужен CD, потому что, как мы все знаем, мир изменился. Новые функции выпускаются быстрее. Исправления обновлений и ошибок должны быть доступны сразу. Это не только наше управление, которое хочет ускорить наши выпуски. Управление просто реагирует на требования наших клиентов. Если клиенты не могут получить то, что они хотят от нас, они уйдут к другим.
Тим: Согласен! Я не могу ждать начала работы.
Энди: Спасибо, все. Я собираюсь предложить, чтобы мы вместе с Марой разработали простой прототип (POC). Я думаю, что все будет гораздо проще понять, если вы можете увидеть конвейер CD в действии.
Амита: Удачи, вы двое.
Команда покидает Энди и Мару, чтобы разобраться в деталях.
Как непрерывная интеграция и доставка соотносятся с публикацией с помощью правой кнопки мыши?
Многие средства разработки предоставляют способы публикации приложения непосредственно в определенной целевой среде, например Microsoft Internet Information Services (IIS) или Azure. Например, вы можете опубликовать приложение ASP.NET Core в Azure, используя Visual Studio. Этот процесс иногда называется публикации правой кнопкой мыши.
Публикация правой кнопкой мыши — отличный способ быстро создать прототип. Например, вы можете щелкнуть правой кнопкой мыши публикацию приложения в Azure, чтобы поделиться новой идеей с командой. Однако этот метод имеет ограничения.
Непрерывная доставка обеспечивает согласованный способ для вас и вашей команды постоянно тестировать, развертывать и мониторить ваше приложение при каждом внесении изменений в код. Щелкнув правой кнопкой мыши публикацию приложения, не гарантируется, что код был правильно протестирован или будет работать должным образом при реальном использовании.
В этом коротком видео Abel Wang, защитник облака в Корпорации Майкрософт, объясняет больше.
Как непрерывные поставки сравниваются с непрерывным развертыванием?
В сообществе DevOps вы часто слышите термины непрерывная доставка и непрерывное развертывание. Означает ли эти термины то же самое? В этом коротком видео Абель объясняет разницу.
Какие средства непрерывной доставки можно использовать?
После завершения собрания Энди и Мара планируют следующие шаги. Они используют Azure Pipelines для создания программного обеспечения. Они хотят рассмотреть, какие средства, включая Azure Pipelines, доступны, чтобы помочь им в процессе выпуска.
Мара: С чего ты хочешь начать?
Энди: Сначала нам нужно согласиться с нашим средством управления выпусками. Давайте убедимся, что средство, которое мы выберем:
- Поддерживает нашу систему управления версиями.
- Могут разворачиваться в нескольких средах, чтобы мы могли протестировать и проверить нашу работу.
- Упрощает определение задач развертывания.
- Легко расширить.
Мара: Azure DevOps интегрируется с несколькими другими решениями непрерывной интеграции и CD. Существует много решений, и мы не привязаны ни к одному из них. Если бы это было так, имело бы смысл использовать это. Популярные системы CI и CD включают Jenkins, Circle CI, GitLab, Travis CI и Azure Pipelines.
Эти инструменты имеют сходство, но каждый из них также имеет определенные преимущества. Некоторые из этих инструментов являются открытым исходным кодом, некоторые из них бесплатны, и некоторые из них необходимо платить. Они также предоставляют встроенные интеграции с другими инструментами программного обеспечения.
Например, Jenkins является открытым исходным кодом. Он имеет много подключаемых модулей, и многие компании используют его. Вы можете запустить Circle CI в облаке или на собственной инфраструктуре. Я думаю, что нам нужно было бы настроить его. GitLab — это одно приложение для всего жизненного цикла разработки программного обеспечения. Это может быть больше, чем мы хотим прямо сейчас. Мы можем продолжать использовать Azure Pipelines.
Вот краткое видео, в котором Abel рассказывает об использовании рекомендаций DevOps для развертывания кода в Azure.
Мара: Я голосую за то, чтобы остаться в Azure Pipelines.
Энди: я согласен. Azure Pipelines хорошо работал для нас до сих пор, и нам не нужно изучать другую новую технологию.
Мара: Отлично. Давайте разберёмся в деталях конвейера.
Энди и Мара переместятся в конференц-зал для планирования конвейера CD.