Skip to content

Материалы вебинара «Как распилить монолит на микросервисы с помощью Yandex API Gateway и Yandex Cloud Functions».

License

Notifications You must be signed in to change notification settings

yandex-cloud-examples/yc-webinar-split-monolith-into-microservices

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Как перейти от монолитной архитектуре к микросервисной при помощи Yandex API Gateway и Yandex Cloud Functions

Структура проекта:

.
├── demo                    # Демонстарция работы 
│   ├── migrate.sh          # Фиксация канареечного релиза
│   ├── rollback.sh         # Откат канареечного релиза
│   └── shoot.sh            # 100 последовательных обращений к ресурсу 
├── deploy                  # Развертывание инфраструктуры
│   ├── microservices       # Развертывание 2х микросервисов: Posts и Users
│   │   └── ...
│   ├── monolith            # Развертывание инраструктуры монолита
│   │   └── ...
│   └── registry            # Развертывание Container registry и публикация образа монолита
│       └── ...
├── microservices
│   ├── post                # Микросервис Posts
│   │   └── ...
│   └── user                # Микросервис Users (отвечат 502 на любой запрос)
│       └── ...
├── monolith                # Монолитное приложение с 2 сервисами: Posts и Users
│   └── ...
└── README.md    

Инструкция по запуску примера

0. Настройте инструменты

Установите и настройте следующие инструменты: YC CLI, Terraform, Docker

1. Подготовьте образ монолитного приложения

Проинициализируйте terraform:

cd deploy/registry/ ; ./init.sh

Создайте Container registry:

cd deploy/registry/ ; ./tf.sh apply

Сконфигурируйте Docker:

cd deploy/registry/ ; ./docker_configure.sh apply

Соберите образ и загрузите его в созданный реестр:

cd deploy/registry/ ; ./push_image.sh apply

2. Разверните монолитное приложение

Проинициализируйте terraform:

cd deploy/monolith/ ; ./init.sh

Разверните инфраструктуру:

cd deploy/monolith/ ; ./tf.sh apply

Проверьте результат, обратитесь к балансировщику:

cd demo/ ; ./shoot.sh

3. Разверните микросервисы

Запакуйте исходный код микросервисов в архив:

cd deploy/microservices/resources/ ; ./build.sh

Проинициализируйте terraform:

cd deploy/microservices/ ; ./init.sh

Разверните инфраструктуру:

cd deploy/microservices/ ; ./tf.sh apply

Проверьте результат, обратитесь к ресурсу /api/posts API Gateway:

cd demo/ ; ./shoot.sh

Зафиксируйте канареечный релиз:

cd demo/ ; ./migrate.sh

4. (Опционально) Выкатите сломанный релиз и откатите его

Для этого замените API Gateway в спецификации на закомментирвоанный шлюз. Примените изменения:

cd deploy/microservices/ ; ./tf.sh apply

Убедитесь, что новый сервис возвращает код 502, обратившись к /api/users?id=1 API Gateway:

cd demo/ ; ./shoot.sh

Откатите канареечный релиз:

cd demo/ ; ./rollback.sh

About

Материалы вебинара «Как распилить монолит на микросервисы с помощью Yandex API Gateway и Yandex Cloud Functions».

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published