Гибридная архитектура: разделяемый на микросервисы монолит

Архитектуры, масштабируемость

Доклад принят в программу конференции

Тезисы

Пусть нам дана задача разработать решение, способное работать 24/7 под большой нагрузкой, динамически реагируя на эту нагрузку со всеми вытекающими. И как результат мы выбираем микросервисную архитектуру.

Однако позже к нам приходят и говорят, что есть много-много заказчиков, которые очень возбуждены и хотят купить наше решение. Но вот проблема: нагрузка у них не та. И необходимо работать на одном сервере.

И тут возникает проблема: микросервисная архитектура пусть даже в докерах или как-то ещё задеплоенная на один сервер хорошо работать не сможет.

Решение: разработать утилиту, соединяющую избранные микросервисы в одну программу: в монолит. Ну а дальше сами решайте: это разделяемый монолит или соединяемые микросервисы :)

Попутно:
* автозамена вызова через RMQ на прямой;
* автозамена вызова через HTTP на прямой;
* автосокращение используемой памяти в 6 раз;
* снижение нагрузки на CPU в 2 раза;
* разные деплои: один для слитого варианта, один для раздельного — на Kubernetes;
* и прочее-прочее-прочее.

Разработчик с 15-летним опытом как .NET-разработки, так и C++, C, Asm, Groovy. Архитектор по должности.

ЦРТ

Семинары по платформе .NET: Garbage Collector, Concurrency, Parallelism, прочие вопросы.

Видео

Другие доклады секции

Архитектуры, масштабируемость