Elastic Beanstalk — це надзвичайно потужний сервіс від AWS, який автоматично розгортає, масштабує і налаштовує ваші застосунки. Якщо вам цікаво дізнатися більше, подивіться мій попередній посібник про те, як розгорнути Docker-контейнер за допомогою Elastic Beanstalk! Розгортання через Elastic Beanstalk є надзвичайно простим, якщо ви використовуєте CLI, API або консоль управління на вашій панелі AWS. Однак з цими методами, кожного разу, коли ви хочете розгорнути ваш додаток, потрібно вручну запускати CLI або входити в консоль управління, що може бути дуже часозатратним.
У цьому посібнику я покажу, як додати інтеграцію з Travis CI, яка автоматично розгорне ваш додаток через Elastic Beanstalk щоразу, коли ви робите пуш в свою гілку master на GitHub. Ця інтеграція допоможе вам наблизитися до моделі безперервного розгортання!
Якщо ви вже налаштували Travis CI для свого додатку, можете пропустити першу частину посібника.
Необхідні умови:
- У вас є додаток з налаштованою конфігурацією для Elastic Beanstalk. Я припускаю, що ви можете вручну розгорнути додаток на Elastic Beanstalk. Ви можете клонути мій простий додаток на Node.js і Docker з попереднього посібника, де вже налаштована конфігурація Travis CI, щоб слідувати за прикладом. Ви не зобов'язані використовувати Node.js чи Docker, це просто технології, які я використовував у цьому прикладі.
- Ваш додаток має бути на GitHub, оскільки в цьому посібнику ми будемо використовувати конфігурацію Travis CI для GitHub.
- Налаштуйте свій улюблений текстовий редактор. Я використовую Visual Studio Code
Частина 1: Додавання інтеграції Travis CI до вашого додатку
Щоб додати інтеграцію з Travis CI до вашого додатку, перейдіть на вкладку налаштувань на сторінці вашого репозиторію на GitHub:
На сторінці налаштувань перейдіть до розділу «Інтеграції та сервіси»:
Натисніть на випадаюче меню «Додати сервіс», потім знайдіть і виберіть «Travis CI». Вам буде показано форму, де запитуються User, Token, Domain. Вам не потрібно нічого заповнювати, просто натискайте на кнопку «Додати сервіс». Тепер на сторінці ваших сервісів має з'явитися Travis CI в списку.
Тепер, коли ми додали Travis до репозиторію, увійдіть на https://travis-ci.org/. Додайте новий репозиторій, натиснувши на знак «+» у списку репозиторіїв. Переконайтеся, що ви синхронізували свій акаунт на GitHub, якщо ваш репозиторій не видно в списку. Знайдіть ваш репозиторій і включіть перемикач репозиторію. Тепер Travis активовано! Тепер щоразу, коли ви пушите код у ваш репозиторій, буде запущено збірку через Travis.
Наступне, що нам потрібно зробити, — це додати файл .travis.yml
, який вказує Travis CI, як будувати наш додаток. Спочатку додамо дуже простий .travis.yml
і перевіримо, що наші збірки запускаються. Додайте файл .travis.yml
до кореневої директорії вашого репозиторію. Нижче наведено стартову конфігурацію Travis, яку я додав. Сервіс Docker не є обов'язковим, якщо ви не використовуєте Docker. Якщо ви не використовуєте Node.js, ваш .travis.yml
повинен містити правильні конфігурації для мови, яку ви використовуєте.
Тепер зафіксуйте та запуште ваш файл .travis.yml
. Ви можете стежити за тим, чи почалась збірка, перейшовши на сторінку репозиторію на сайті Travis CI.
Нижче наведено приклад збірки, що триває:
Якщо ваша збірка пройшла успішно, ми можемо додати конфігурацію Elastic Beanstalk для автоматичного розгортання вашого додатку.
Частина 2: Інтеграція Elastic Beanstalk з вашою збіркою Travis CI
Тепер ми можемо додати конфігурацію Elastic Beanstalk до нашого файлу .travis.yml. Додайте наступну конфігурацію до вашого файлу .travis.yml:
Перед тим, як запушити оновлений файл .travis.yml, потрібно зробити кілька речей:
- Відредагуйте параметри region, app, env і bucketname, щоб вони відповідали конфігураціям вашого додатку. Параметр bucketname відповідає за S3-бакет, до якого додається ваш вихідний код кожного разу, коли ви розгортаєте додаток.
- Змініть конфігурацію "on branch", щоб вона відповідала гілці, яку ви хочете використовувати як гілку для розгортання. У цьому прикладі я використовую master, щоб, коли ви робите пуш у master, відбулося розгортання, а на інших гілках — ні. Якщо ви пропустите цей розділ, ваш додаток буде розгортатися кожного разу, коли ви пушите код в будь-яку гілку.
- Для access key id та secret access key я додав змінні середовища в налаштуваннях мого репозиторію на Travis через інтерфейс користувача і посилаюся на них у файлі .travis.yml, щоб уникнути того, що ці ключі потраплять у систему контролю версій. Ви можете отримати свої ключі доступу, перейшовши на вкладку IAM у вашій консолі управління AWS, де ви можете або створити нового користувача, або використати ключі вже існуючого користувача, яких ви зберегли. Додайте ці ключі як захищені змінні середовища в налаштуваннях вашого репозиторію на панелі керування Travis CI.
Тепер запуште оновлений файл .travis.yml і чекайте, поки розпочнеться збірка!
Якщо ваша збірка завершиться успішно, в журналі повинна з'явитися інформація про розгортання вашого додатку:
Якщо ви перейдете на панель керування Elastic Beanstalk і подивитеся на ваш додаток, має бути вказано, що додаток оновлюється, і цей процес має завершитись через кілька хвилин.
Заключні думки:
З кількома кліками миші та рядками коду ми додали автоматичне розгортання в середовище Elastic Beanstalk! Загалом, Travis CI робить дуже легким додавання безперервної інтеграції/безперервного розгортання до процесу розробки вашого додатку, надаючи чудові інтеграції, такі як Elastic Beanstalk, які дозволяють автоматично розгортати додатки. Це лише один простий приклад використання Travis CI, але не соромтесь досліджувати розгортання Elastic Beanstalk з іншими інструментами, такими як Circle CI, Jenkins і багатьма іншими!
Щасливого кодування !! 😄
Застереження
Я є працівником IBM. Всі думки, висловлені в цьому блозі, є моїми власними і не обов'язково відображають позиції, стратегії або думки компанії.
Перекладено з: Continuous Delivery with AWS Elastic Beanstalk and Travis CI