Руководство по непрерывной интеграции и развертыванию приложения Dockerised Node в AWS Elastic Beanstalk с помощью AWS CodePipeline

Вступление

У этого произведения две цели:

  • Быть самостоятельным руководством по созданию конвейера CI / CD с AWS CodePipeline
  • Чтобы стать частью большой серии статей, в которых сравниваются различные услуги CI / CD.

Репозиторий, в котором размещен проект, протестированный и развернутый с помощью CodePipeline, можно найти на GitHub. Это небольшое приложение Node / Express, Dockerized и имеющее единственный тест. Я рекомендую вам клонировать это приложение и перенести его в свою учетную запись GitHub, чтобы вы могли построить конвейер, читая это руководство.

Прочтите мои другие руководства CI / CD с этим же приложением ниже:









Статья, сравнивающая эти сервисы:



Обзор конвейера

Диаграмму, показывающую шаги, выполняемые в нашем конвейере CI / CD, можно увидеть ниже. Обратите внимание, как мы используем Docker Hub для хранения наших образов Docker и Elastic Beanstalk для извлечения и запуска этих образов:

Предварительные шаги

Затем нам нужно создать приложение на Elastic Beanstalk, в котором можно будет развернуть CodePipleline. В моем руководстве (ниже) объясняется, как это сделать (вам будут предоставлены AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY переменные):



Последний шаг - создание репозитория Docker Hub. Опять же, смотрите мое руководство о том, как это сделать:



Настройка AWS CodePipeline:

Войдите в AWS и перейдите к сервису CodePipeline. Затем нажмите Создать конвейер:

Затем вам будет предложено назвать свой конвейер (я назвал свое сравнение CI) перед тем, как нажать Далее:

Затем вам нужно будет добавить источник конвейера. Выберите GitHub, следуйте инструкциям по входу в систему, подключите свой репозиторий, выберите основную ветку и нажмите Далее:

Затем нам нужно добавить этап сборки. Выберите AWS CodeBuild в качестве поставщика сборки и нажмите «Создать проект». Это откроет новую вкладку, где вы настроите этап сборки.

Назовите свою сборку (я назвал свое сравнение CI) и прокрутите страницу вниз.

Выберите «Управляемый образ», «Операционная система Ubuntu», «Стандартная среда выполнения» и «Образ 2.0». Кроме того, включите флаг Privileged, так как мы хотим создавать образы Docker перед дальнейшей прокруткой вниз:

Затем добавьте переменные среды DOCKER_USER и DOCKER_PASS, в которые вы вводите свои учетные данные Docker Hub.

Выберите использовать файл buildspec, поскольку мы будем использовать файл buildspec.yml в корневом каталоге нашего репозитория для определения шагов сборки. Наконец, нажмите «Перейти к CodePipeline».

Вкладка закроется, и вы вернетесь к конфигурации CodePipeline. Нажмите "Далее:

Наконец, нам нужно добавить этап развертывания. Выберите AWS Elastic Beanstalk в качестве поставщика развертывания и найдите свое приложение, прежде чем нажимать Далее. Для других служб CI / CD вам потребуется создать пользователя программно, чтобы его можно было развернуть на этом этапе.

Просмотрите свой конвейер и нажмите Создать конвейер:

Теперь просмотрите файл buildspec.yml в корне нашего каталога:

Давайте разберемся, что происходит во время выполнения этой сборки:

  1. Указана версия узла.
  2. Сборка входит в нашу учетную запись Docker с переменными среды.
  3. Пакеты установлены.
  4. Испытания запущены.
  5. Затем образ Docker создается и отправляется в Docker Hub.

Наконец, нажмите «Выпустить изменение», , и оно должно успешно протестировать, построить и развернуть ваше приложение.

Заключение

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

👋 Присоединяйтесь к нам сегодня !!

️ Подписывайтесь на нас в LinkedIn, Twitter, Facebook и Instagram

Если этот пост был полезен, пожалуйста, нажмите несколько раз кнопку хлопка 👏 ниже, чтобы выразить свою поддержку! ⬇