Автоматизація розгортання NodeJS на TypeScript за допомогою CodePipeline до Elastic Beanstalk

pic
Безперервні розгортання з GitHub, AWS CodePipeline та AWS Elastic Beanstalk

Що

Якщо ви ще не ознайомились з першою частиною цього посібника, обов'язково перегляньте посилання нижче.

[

Процес розгортання NodeJS TypeScript Docker додатка з AWS EBS

Як пакувати NodeJS TypeScript додаток, будувати і розгортати Docker-образ в AWS Elastic Beanstalk

medium.com

](https://medium.com/@codingwithmanny/nodejs-typescript-docker-deployment-process-with-aws-ebs-14796cd78392?source=post_page-----79664321ab91--------------------------------)

У цій статті ми розглянемо процес налаштування AWS CodePipeline для автоматичного розгортання нашого коду з GitHub в нашому існуючому Docker-середовищі на Elastic Beanstalk.

Ми пропустимо процес збірки і зосередимось на іншому посібнику, але основна мета цього — автоматизувати наші розгортання.

Чому

Якщо ви ще не здогадались, основною перевагою є те, що нам не доведеться вручну розгортати кожен раз, коли нова функція додається в наш репозиторій GitHub. Elastic Beanstalk також має перевагу безперервних розгортань, тому наш додаток завжди буде працювати, а коли буде розгорнутий новий код, перерв не буде.

Оскільки ручне розгортання повинно бути застарілим

Також є інші переваги від використання CodePipeline, які ми зможемо налаштувати пізніше, наприклад, створення Docker-образу, збереження його в реєстрі, запуск тестів і навіть можливі сповіщення про розгортання.

Вимоги

Налаштування CodePipeline

Наступні кроки включають створення нового CodePipeline, асоціацію з існуючим репозиторієм GitHub і підключення до існуючого Elastic Beanstalk інстансу.

Перший крок — перейдіть до CodePipeline.

pic

Консоль управління AWS — Code Pipeline

Після цього на панелі CodePipeline натискаємо Створити пайплайн у верхньому правому куті.

pic

Панель управління AWS Code Pipeline

Це ініціює майстра налаштування або серію кроків для налаштування нашого CodePipeline.

1. Вибір налаштувань пайплайна

Цей перший крок включає налаштування імені, дозволів і параметрів зберігання для пайплайна.

Виберіть Ім’я пайплайна, яке вам подобається, але, ймовірно, щось, що схоже на ім’я додатка, який ви розгортаєте.

Оберіть Нова роль сервісу, якщо у вас ще немає такої ролі, яка автоматично створить Ім’я ролі та надасть дозволи на виконання всіх необхідних дій для розгортання нашого інстансу.

pic

AWS CodePipeline — Крок 1 — Налаштування пайплайна

Для додаткових налаштувань ви можете залишити значення за замовчуванням для Місце зберігання артефактів та Ключі шифрування.

Для контексту, Місце зберігання артефактів — це місце для зберігання кожного результату на кожному кроці пайплайна. Якщо один крок вносить зміни, результат цього кроку зберігається в S3, і цей результат може бути використаний для наступного кроку.

Після завершення натискаємо Далі.

pic

AWS CodePipeline — Крок 1 — Додаткові налаштування
Додати етап джерела

Крок 2 має на меті асоціювати кодовий репозиторій, з якого пайплайн буде витягувати код, та визначити, як він буде виявляти зміни для активації пайплайна.

Для Постачальника джерела ми використовуватимемо GitHub.

pic

AWS CodePipeline — Крок 2 — Джерело

Після вибору з'явиться кнопка Підключити, натискайте та надайте AWS дозвіл для доступу до репозиторію GitHub.

pic

Надання авторизації AWS CodePipeline до репозиторію GitHub

Після підключення виберіть Репозиторій, шукаючи його за назвою.

Основною гілкою, яку ми використовуватимемо для активації нашого пайплайна, буде master, що є загальноприйнятою практикою.

Для Опцій виявлення змін вибираємо Webhook-и GitHub, щоб щоразу, коли ми зливаємо код до нашої гілки master або безпосередньо пушимо в master, це спровокувало активацію пайплайна.

Натискаємо Далі.

pic

AWS CodePipeline — Крок 2 — Джерело — GitHub

3. Додати етап збірки

Цей крок буде швидким, оскільки ми вибираємо Пропустити етап збірки, бо не будемо використовувати його в цьому посібнику.

Натискаємо Пропустити етап збірки.

pic

AWS CodePipeline — Крок 3 — Збірка

4. Етап розгортання

Цей крок полягає у визначенні, куди буде розгорнуто наш код, або який AWS сервіс ми використаємо для роботи з нашим кодом.

У нашому випадку вибираємо AWS Elastic Beanstalk для нашого Постачальника розгортання.

Оберіть Регіон, в якому розгорнуто ваш Elastic Beanstalk.

Пошукайте та виберіть Назву додатка в цьому регіоні.

⚠️Примітка: Якщо ви не бачите назву свого додатка, перевірте, чи вірний регіон вибрано у верхньому правому куті вашої консолі AWS. Якщо це не так, вам потрібно вибрати правильний регіон і, можливо, почати цей процес з самого початку.

Пошукайте та виберіть Назву середовища вашого додатка.

Натискаємо Далі.

pic

AWS CodePipeline — Крок 4 — Розгортання
Огляд

Цей крок має на меті переглянути всі налаштування нашого пайплайна, щоб підтвердити перед його створенням.

pic

AWS CodePipeline — Крок 4 — Огляд Частина 1

Натискаємо Створити пайплайн.

pic

AWS CodePipeline — Крок 4 — Огляд — Створити пайплайн

Пайплайн ініційовано

Після того як ви створите пайплайн, процес автоматично витягне код з репозиторію GitHub і розгорне його безпосередньо на Elastic Beanstalk.

pic

AWS CodePipeline — Витягування з GitHub

pic

AWS CodePipeline — Розгорнуто на EBS

Підтвердження розгортання

Якщо ми перейдемо до нашого додатка Elastic Beanstalk, ми повинні побачити, як сервіс починає розгортання, а потім переходить до стану успішного розгортання.

pic

Додаток Elastic Beanstalk — Розгортання

pic

Додаток Elastic Beanstalk — Успішно розгорнуто

Якщо ми перейдемо за URL-адресою додатка, ми повинні побачити щось подібне до нашого першого розгортання з попереднього посібника.

pic

Додаток Elastic Beanstalk — Додаток розгорнуто

Перегляд розгортання в дії

Наступна частина полягає в тому, щоб внести зміни до нашого репозиторію GitHub і побачити, як зміни автоматично розгортаються.

Зміна коду

Ви можете використовувати свій власний репозиторій, але для цієї частини ми будемо використовувати цей репозиторій:

[

codingwithmanny/nodets-docker-app

Contribute to codingwithmanny/nodets-docker-app development by creating an account on GitHub.

github.com

](https://github.com/codingwithmanny/nodets-docker-app/tree/master?source=post_page-----79664321ab91--------------------------------)

Зміна, можливо, вже є в репозиторії, але новий рядок, який ми додаємо, щоб показати назву середовища в кінцевій точці:

const ENVIRONMENT = process.env.NODE_ENV || 'development';...app.get('/', (_req, res) => res.send({ version: VERSION, environment: ENVIRONMENT }));

Внесіть зміни та або зробіть commit і push безпосередньо в master, або створіть новий pull request і потім злийте цей запит у гілку master.

Після того, як зміни будуть запушені або злиті, ви зможете побачити, як CodePipeline автоматично витягне та розгорне цей новий код.

pic

Новий код розгорнуто

Що далі

Наступним кроком буде впровадження та автоматизація процесу збірки, передача додаткових змінних середовища, впровадження логування, додавання доступу через ssh та, можливо, сповіщення.

Якщо ви ще не читали першу частину цієї статті, ознайомтеся з наступним:

[

NodeJS TypeScript Docker Deployment Process With AWS EBS

How To Package A NodeJS TypeScript App, Build & Deploy The Docker Image To AWS Elastic Beanstalk

medium.com

](https://medium.com/@codingwithmanny/nodejs-typescript-docker-deployment-process-with-aws-ebs-14796cd78392?source=post_page-----79664321ab91--------------------------------)

Якщо ця стаття була корисною для вас, будь ласка, поділіться нею в Twitter 🐦 або інших соціальних мережах. Дякую за увагу.
🙏

Будь ласка, також підписуйтесь на мене в Twitter: @codingwithmanny та в Instagram на @codingwithmanny.

Інші статті, які я написав

[

Як автоматизувати збірки Docker за допомогою GitHub

Створіть NodeJS додаток, завантажте його до репозиторію GitHub і налаштуйте автоматичну збірку на Docker Hub

medium.com

](https://medium.com/yellowcode/how-to-automate-docker-builds-with-github-470cb272babf?source=post_page-----79664321ab91--------------------------------)

[

Розгортання ReactJS з Docker

Як упакувати ReactJS в Docker і розгорнути його на Digital Ocean

medium.com

](https://medium.com/@codingwithmanny/deploying-reactjs-with-docker-ac16728c0896?source=post_page-----79664321ab91--------------------------------)

[

Розгортання React на Firebase за допомогою CircleCI

Як автоматично розгорнути React на Firebase Hosting з CircleCI

medium.com

](https://medium.com/@codingwithmanny/deploy-react-to-firebase-with-circleci-b8f16c17a28c?source=post_page-----79664321ab91--------------------------------)

pic

Перекладено з: Automating NodeJS TS Deployments With CodePipeline To Elastic Beanstalk

Leave a Reply

Your email address will not be published. Required fields are marked *