В этом учебном пособии вы выполните развертывание монолитного приложения Node.js в контейнере Docker и разделите это приложение на микросервисы, не прерывая его работу. Это приложение node.js размещает простую доску объявлений, которая поддерживает потоки и обмен сообщениями между пользователями.
Традиционные монолитные архитектуры очень трудно масштабировать. По мере роста базы кода ее обновление и обслуживание усложняются. Добавление новых возможностей, языков, платформ и технологий становится очень трудным, что ограничивает возможности инновации и внедрения новых идей.
В архитектуре микросервисов каждый компонент приложения становится отдельным сервисом, который взаимодействует с другими сервисами через четко определенные API. Микросервисы основываются на конкретных возможностях бизнеса, и каждый из них имеет одну конкретную функцию. Для разных микросервисов можно использовать разные среды и (или) языки программирования, а также их можно развертывать независимо друг от друга, по одному или группами.
В этом учебном пособии мы продемонстрируем размещение простого монолитного приложения в контейнере Docker, развертывание аналогичного приложения в формате микросервисов и переключение трафика на микросервисы без прерывания работы. Завершив работу, вы можете применить это пособие и созданный в нем код в качестве шаблона для создания и развертывания собственных микросервисов в контейнерах на AWS.


Монолитная архитектура
Полное приложение node.js выполняется в контейнере как один сервис, а все его контейнеры выполняют одни и те же функции.. Если повысится нагрузка на один из элементов такого приложения, придется масштабировать всю архитектуру.

Архитектура микросервисов
Каждая функция приложения node.js выполняется как отдельный сервис в собственном контейнере. Эти сервисы можно масштабировать и обновлять независимо друг от друга.
Навыки работы с AWS: средний уровень
Время выполнения: 2 часа
Стоимость выполнения: все сервисы этой архитектуры входят в уровень бесплатного пользования AWS. Если вы уже превысили лимиты, установленные для уровня бесплатного пользования, работа с этой схемой обучения обойдется вам не более чем в 0,25 USD*.
Требуемые инструменты. Для выполнения этого учебного пособия вам потребуются:
- Активный аккаунт AWS**
- Текстовый редактор: AWS рекомендует Atom
- Браузер: AWS рекомендует Chrome
- Amazon EC2
- Amazon Elastic Container Service
- Amazon Elastic Container Registry
- Amazon VPC
- AWS CloudFormation
- Elastic Load Balancing
- Docker
- Github
- node.js
* Предполагается, что вы будете использовать рекомендуемые конфигурации на протяжении всего учебного курса и завершите работу всех ресурсов в течение 24 часов.
** Аккаунты, созданные в течение последних 24 часов, могут еще не иметь доступа к ресурсам, необходимым для выполнения этого проекта.