Настройка DevOps Pipeline в AWS

В этой статье мы расскажем, как настроить конвейер DevOps в AWS. Однако давайте начнем с определения того, что такое DevOps на самом деле.

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

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

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

Итак, как конвейеры связаны с DevOps? Если мы посмотрим на прошлый способ работы в командах, разделенный между разработкой и эксплуатацией, выпуск, как правило, будет следовать разновидности процесса, описанного ниже.

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

С помощью DevOps и объединенной группы разработки и эксплуатации мы можем вместо этого быстрее выпускать небольшие функции. Задачи, связанные с операциями, могут выполняться параллельно с обычными разработками. Чтобы сделать это еще быстрее, мы можем автоматизировать задачи выпуска и тестирования с помощью конвейера DevOps. Размещение пакетов выпуска внутри серверной среды и выполнение сценариев затем можно запускать автоматически одним нажатием кнопки или просто путем отправки изменений кода в определенную ветку.

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

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

Начиная

Мы автоматизируем развертывание простого статического сайта с помощью следующих сервисов AWS:

  • CodePipeline — инструмент оркестровки, который помогает нам запускать развертывание, нажимая в репозиторий исходного кода или нажимая кнопки вручную.
  • CodeBuild — контейнер сборки, который может запускать скрипты, необходимые для задач развертывания.
  • S3 — Служба хостинга статических файлов, на которой будет размещаться наш статический сайт.

Статический сайт, который мы развернем, состоит из простого HTML-файла, доступ к которому осуществляется по URL-адресу S3. Чтобы развернуть это, нам нужно вручную загрузить HTML-файл в корзину из консоли AWS. Хотя это может быть не так уж сложно, мы всегда можем сэкономить пару минут, автоматизируя эту задачу.

Целью конвейера является объединение вышеупомянутых сервисов AWS для достижения следующего:

Хостинг статических сайтов на S3

1. Создайте корзину

Чтобы запустить наш статический сайт, мы начинаем с создания корзины S3. Это можно сделать, перейдя в Консоль AWS → Сервисы → S3 → Создать корзину. Убедитесь, что к этому ведру открыт общий доступ, чтобы к нашему сайту можно было получить доступ через Интернет. Оставьте для остальных параметров значения по умолчанию.

2. Включите статический хостинг сайтов.

Теперь пришло время сделать наши HTML-файлы в корзине доступными как статический сайт. Для этого перейдите в корзину S3 → Свойства → Хостинг статических веб-сайтов → Используйте эту корзину для размещения статического веб-сайта. Обязательно введите index.html качестве индексного документа и нажмите «Сохранить». Теперь ваш сайт должен быть запущен и работать, если вы перейдете на URL-адрес конечной точки, который отображается в диалоговом окне статического хостинга веб-сайтов.

Большой! Теперь у нас есть статический сайт. Чтобы обновить его, вам необходимо загрузить новую версию файла index.html в корзину. Давайте автоматизируем это!

Создание конвейера

1. Создайте репозиторий CodeCommit.

Чтобы разместить код, нам нужен репозиторий для наших файлов. Это может быть GitHub или любой другой сервис репозитория, который вы предпочитаете. Для простоты мы будем использовать сервис репозитория AWS CodeCommit.

Создайте репозиторий, перейдя в Консоль AWS → CodeCommit → Создать репозиторий. Введите имя и нажмите Сохранить. Наконец, отправьте HTML-код, подключившись к репозиторию через SSH или HTTPS. Если у вас нет каких-либо идей для создания файла, вы можете использовать следующий:

<p>Hello from Linuxize.com!</p>

2. Создайте конвейер CodePipeline.

Пришло время создать конвейер, который будет управлять процессом развертывания нашего статического сайта. Чтобы начать создание конвейера, перейдите в Консоль AWS → CodePipeline → Создать новый конвейер.

Шаг 1

  • Введите название конвейера.
  • Выберите «Новая служебная роль».
  • Остальное оставьте по умолчанию.

Шаг 2

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

Шаг 3

  • Нажмите Пропустить этап сборки — нам не нужно создавать наши файлы в этом конвейере, поскольку это просто статический HTML.

Шаг 4

  • Выберите Amazon S3 в качестве этапа развертывания.
  • Выберите ведро, которое вы создали ранее, как ведро.
  • Оставьте ключ объекта S3 пустым.
  • Установите флажок Извлечь файл перед развертыванием.
  • Разверните панель «Дополнительная конфигурация» и выберите «Общедоступный для чтения» в качестве стандартного ACL.
  • Нажмите "Сохранить".

Шаг 5

Тада! Теперь ваш конвейер должен запустить и развернуть HTML-файл в репозитории CodeCommit на S3. Отправьте изменение в файл, и конвейер должен снова запуститься автоматически.

Выводы

Хотя это одна из самых простых настроек, которые у вас могут быть, основные принципы одинаковы даже для очень сложных серверных приложений. Им может потребоваться больше шагов в конвейере, но основной поток должен быть таким же. Настройка конвейера развертывания один раз и автоматизация рабочего процесса экономит много времени в долгосрочной перспективе, а отказ от ручных задач всегда означает более безопасный и меньший человеческий фактор.

Удачи в использовании ваших новых навыков DevOps!

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии ниже.

Об авторах

Карл Эрикссон

Основатель mock-инструмента API Mocki .

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