Как начать работу с конвейерами CI / CD AWS — CloudSavvy IT

DevOps
Shutterstock / Ribkhan

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

Что такое CI / CD?

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

Это очень широкий термин, который охватывает ядро DevOps культура — оптимизация потока нового кода из мозга вашего разработчика на ваши серверы. Обычно CI / CD реализуется с помощью инструментария, называемого трубопровод, который представляет собой набор инструментов, который автоматизирует весь процесс от источника до развертывания.

Это то, что AWS предоставляет со своими инструментами CodeSuite, и они особенно хороши для реализации такого конвейера, поскольку вы, как правило, будете запускать свои производственные серверы на EC2, что значительно упрощает и хорошо интегрирует этап развертывания.

Инструменты CodeSuite от AWS

CodeSuite состоит из нескольких различных инструментов. Он начинается с CodeCommit, службы управления исходным кодом AWS. Это немного более громоздко и менее функционально, чем у конкурентов, но достаточно легко настроить Git с несколькими пультами, так что вы можете использовать его, если планируете использовать остальную часть конвейера. CodeCommit имеет очень щедрый уровень бесплатного пользования, поэтому вы, вероятно, не будете платить за него много расходов.

Затем следует CodeBuild, который берет управление исходным кодом из CodeCommit (или GitHub / BitBucket) и строит из исходного кода, выполняя любые тесты, которые вы предоставляете в процессе. При этом для сборки используется сервер EC2, за который вы должны заплатить во время сборки. Сложные проекты могут потребовать мощной машины для быстрой сборки.

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

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

Все это объединено в единый конвейер, который контролирует управление исходным кодом и запускает конвейер автоматически, когда вы вносите изменения в ветку релиза, собираете, тестируете и внедряете свой код на всех ваших серверах.

Как настроить конвейер

Во-первых, вам нужно вставить свой код в CodeCommit. Мы рекомендуем настроить CodeCommit в качестве отдельного удаленного выпуска вместе с вашим основным источником управления. Если вы используете Github или BitBucket, вы можете вместо этого напрямую подключиться к своему хранилищу, но CodeCommit — это полностью решение AWS, позволяющее управлять организационным доступом к обновлениям сервера через консоль IAM.

Далее идите к Консоль CodePipeline для начала. Нажмите «Создать конвейер» и дайте ему имя и описание.

Каждая стадия конвейера нуждается в некоторой конфигурации. Первым является этап исходного кода, который подключается к CodeCommit, Github и BitBucket. Последние два требуют подключения ваших учетных записей через OAuth, но CodeCommit подключается напрямую. Выберите репозиторий, который вы используете, и ветку для выпусков. Если вы используете CodeCommit в качестве вторичного пульта, вы, вероятно, выберете master здесь, но если вы используете стороннего провайдера, вы можете настроить отдельную ветку релиза.

CodePipeline Исходный этап

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

Далее этап сборки. CodePipeline поддерживает Jenkins и встроенный CodeBuild для построения кода. Если вы уже используете Jenkins для сборки, вы должны установить CodePipeline плагин подключить его к AWS. В противном случае вы можете настроить CodeBuild, нажав «Создать проект», чтобы открыть диалоговое окно.

Стадия сборки Codepipeline

CodeBuild имеет много вещей для настройки, так что вы можете прочитать наше руководство по настройке, чтобы узнать больше. Как только вы закончите, диалог должен закрыться и вернуться к настройке CodePipeline.

Следующий этап — развертывание. CodePipeline поддерживает несколько различных вариантов развертывания; В частности, если вы используете AWS CloudFormation или Elastic Container Service, вы можете развертывать обновления непосредственно для них. Для общих развертываний EC2 и Lambda вам необходимо использовать CodeDeploy.

Под инструментами разработчика, CodePipeline, Pipelines, выберите CodeDeploy, чтобы добавить этап развертывания.

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

Когда вы закончите, вернитесь в CodePipeline и выберите развертывание, которое вы только что настроили. Это должно отметить все выполненные настройки, и вы можете нажать кнопку «Далее», чтобы просмотреть свой конвейер, прежде чем запускать его.

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

выпуск кода

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

Вы можете вернуться и отредактировать конвейер в любое время или настроить конфигурации CodeBuild или CodeDeploy. Если вы сталкиваетесь с ошибками сборки, вам необходимо убедиться, что ваш файл buildspec обрабатывает все правильно.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.