Рубрики
Uncategorized

Непрерывное развертывание не должно быть трудным

Введение За последнее десятилетие, непрерывная интеграция (CI) и непрерывная доставка (CD … Tagged с DevOps, WebDev, Tulcial.

Вступление

За последнее десятилетие непрерывная интеграция (CI) и непрерывная доставка (CD) стали основными продуктами жизненного цикла разработки программного обеспечения. CI автоматизирует процесс слияния кода и проверку базовых регрессий и проблем с качеством кода, освобождая часть обзора кода в вашей команде разработчиков. CD и автоматические развертывания устраняют накладные расходы каждый раз, когда необходимо развернуть новую функцию или Hotfix.

Представьте себе, что не было больше ночей и выходных, проведенных в упаковке, и развертывание вручную на серверах! Функциональная настройка CI/CD значительно облегчает наличие действительно гибкого рабочего процесса, так как вы можете развернуться так часто, как хотите.

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

Непрерывное развертывание не должно быть так трудно настроить.

Как разработчик и консультант с полным стеком, которые часто помогают командам DEV увеличить ценность, которую они доставляют каждый спринт, когда Heroku Flow Пошел на мой радар, я знал, что пришло время поближе познакомиться. Может ли это быть простое, простое решение, которое я искал?

Что такое поток Heroku?

Heroku Flow является зонтиком для нескольких различных продуктов Heroku, которые работают вместе, чтобы обеспечить полный набор инструментов CI/CD. Для CI, есть Heroku Ci . Для CD есть Хероку трубопроводы , что позволяет вам указать группу сред, в которых можно продвигать сборки, и Heroku Review Apps , которые дают вам сборку по требованию каждого запроса на притяжение. Объединить все это Интеграция GitHub , что позволяет автоматически запустить процесс, просто выдвигая ветвь по умолчанию.

Давайте настроим образец приложения и посмотрим, что оно нужно. Обратите внимание, что приложения Heroku Review в настоящее время доступны только с интеграцией GitHub.

Как настроить поток Heroku

Во -первых, вам понадобится приложение для экспериментов. Если вы просто пробуете что -то, не стесняйтесь вилка Мое пример приложения . Это базовое приложение Next.js с добавленным модульным тестом.

Если вы добавляете свое собственное приложение Next.js, обратите внимание, что вам нужно будет добавить порт ARG в команду начала, как ниже:

Оттуда, Зарегистрируйтесь Для учетной записи Heroku и давайте начнем!

Хероку трубопровод

В вашей панели управления Heroku создайте новый трубопровод:

Дайте ему любое имя, которое вам нравится.

Вы можете либо подключить его к GitHub на создании, либо вы можете сделать это после создания трубопровода:

И конвейер создан! Давайте продолжим двигаться.

Heroku Review Apps

Давайте включим приложения для просмотра:

Вы увидите ряд вариантов. В качестве конфигурации по умолчанию я рекомендую следующее:

Вау, это тоже было легко! Еще несколько шагов.

Добавление среды и CI

С созданным трубопроводом, теперь нам нужно добавить несколько приложений. Я добавлю в стационарную и производственную среду:

Сделайте это дважды, один раз для каждой среды. Вы должны получить что -то вроде скриншота ниже:

Я также рекомендую настроить автоматические развертывания в вашей первой среде. Для меня это постановка:

Наконец, давайте включим CI. Еще один щелчок, и мы закончили.

Вот и все! Что, ты мне не веришь? Не верите, что это действительно может работать так легко? Ну, давайте проверим это и посмотрим, не так ли?

Тестирование потока Heroku

Готовы все попробовать? Создайте запрос на тягу в вашем репо. Для меня я решил создать PR вокруг добавления модульных тестов. Вы должны увидеть что -то подобное, как только вы создали свой пиар в GitHub:

Нажатие «Подробности» отвезет вас на сайт Хероку, где вы можете увидеть статус CI.

Наряду с CI (или после, в зависимости от ваших настроек), также будет происходить развертывание приложения для обзора. ПРИМЕЧАНИЕ. Если вы выбрали опцию для развертывания приложения для просмотра после CI, но у вас нет тестов, оно не будет развернуться. Так что убедитесь, что у вас есть хотя бы один тест!

Нажмите «Просмотреть развертывание», и вы попадете в ваше приложение для обзора. Если вы используете мое образец приложения, вы увидите следующее:

Хорошо выглядеть. Давай пойдем вперед и объединить PR Анкет Затем вы можете проверить, какую среду вы создаете автоматические развертывания. В моем случае, это стационарная среда:

Видите этот желтый круг? Как только он зеленый, вы готовы к работе:

Нажмите «Открыть приложение» и убедитесь, что все выглядит хорошо. Готовы пойти на производство? Просто нажмите «Продвигайте для производства».

Будьте готовы, как только вы нажмете «продвигать», он будет там в одно мгновение.

Вот и все! Мы только что взяли код смены от стадии PR до производства. Давайте увеличим масштаб и подумаем об этом в контексте некоторых других конкурирующих продуктов.

Давайте поговорим о DevOps

Мое путешествие DevOps началось с Azure DevOps — хотя в то время это называлось Microsoft Application Lifecycle Management. То, что сейчас представляет собой лазурные трубопроводы, были Microsoft Release Management и это был инструмент (наряду с локальными TFS, команда сборки и Microsoft Test Manager), который сформировал центр наших усилий CI/CD. В то время я был частью небольшой компании, в которой не было стандартизированного процесса и процедур, и поэтому, с несколькими другими, я сформировал внутреннюю команду DevOps для продвижения CI/CD во всех проектах нашей компании. Тем не менее, у каждого проекта была другая установка; У некоторых были CI, у некоторых были CD, у некоторых были CD только для Dev/Test и т. Д. В общем, мы просто пытались сделать что -то, предполагая, что что -то лучше, чем ничего.

С тех пор я получил опыт как с Azure DevOps, так и с Действия GitHub Анкет Оба эти решения являются значительными улучшениями по сравнению с более старыми инструментами Microsoft, и это проще, чем когда -либо, получить базовую настройку CI/CD для вашей команды. Тем не менее, Azure DevOps по-прежнему является несколько странной смесью управления Legacy Release, а также новой настройки рабочего процесса на основе YAML, и действия GitHub достаточно новы, что иногда нет предварительно созданных действий, чтобы делать именно то, что вам нужно Анкет Обе эти проблемы делают это так, что вам нужно потратить больше времени и ресурсов на настройку и поддержание настройки CI/CD, увеличивая накладные расходы.

У меня также была возможность в последнее время использовать NetLify для Мой личный сайт , и с лишь несколькими кликами мой CI/CD был запущен, просмотреть приложения и все такое. Это заставило меня действительно хотеть найти что -то похожее для бизнес -использования, что могло бы справиться с более сложными вариантами использования за пределами приложения Jamstack.

Я рад обнаружить, что Heroku предлагает аналогичный опыт CI/CD без хранения, но с дополнительной гибкостью остальной платформы Heroku. Трудно подчеркнуть, насколько это было легко. Я уверен, что позже будут осложнения, как и практически в любой задаче DevOps, но я обычно обнаруживаю, что с DevOps, что простой использование в начале продолжает выплачивать дивиденды даже при более сложных сценариях.

Что касается обзоров, то Github Deciats вообще не встроена. Azure DevOps — это попасть туда , но это требует, чтобы вы также настроили и поддерживали Azure Kubernetes Service и связанная с ним очистка. Напротив, приложения Heroku Review обращаются с этим для вас. Review Apps — это действительно потрясающая функция, которая позволяет командам разработчиков легко получать отзывы от пользователей и тестеров, прежде чем объединиться в Master, и я очень рекомендую это.

Обзор и заключение

В целом, Heroku Flow впечатлил меня с помощью набора функций, интуитивно понятной интеграции с GitHub и легкостью настройки. Я определенно собираюсь изучать это больше как для себя, так и для своих клиентов, поскольку для небольших команд разработчиков простота настройки неоценима, и даже для более крупных команд любое снижение накладных расходов означает больше времени, чтобы сосредоточиться на реальной задаче разработки Анкет

(Опубликовано с добром разрешением Генри Джин .

Оригинал: «https://dev.to/heroku/continuous-deployment-shouldn-t-be-hard-55hi»