Создание контейнеров на выделенной и стационарной инфраструктуре

#java #tomcat #containers #micronaut

Вопрос:

Недавно я разрабатываю план перехода на контейнеры. Я изучил спотовые экземпляры AWS EC2 и вижу экономическую выгоду от использования AWS ECS для развертывания отдельных микросервисов micronaut в контейнерах, которые используют AWS ECS. Учитывая, что инфраструктура бесконечна, я могу позволить себе роскошь распределять ресурсы на микросервисы, не беспокоясь о том, что какие-либо микросервисы могут быть изменены.

Однако для приложений, развернутых в моем центре обработки данных, где моя инфраструктура ограничена и исправлена, я не могу решить, будет ли развертывание отдельных микросервисов micronaut, каждый из которых работает со своей собственной JVM, лучше, чем объединение этих отдельных микросервисов в веб-сервер tomcat 9, гарантируя, таким образом, что работает только одна JVM. Я склоняюсь к подходу tomcat, поскольку он предполагает более простое распределение памяти в объеме и обеспечит справедливое распределение памяти в зависимости от использования. С другой стороны, контейнерный подход, по-видимому, не способствует справедливому совместному использованию, и поэтому, если один контейнер простаивает, другие контейнеры не могут использовать его память. Из-за этого я вижу, что если я использую первый подход, у меня возникнут проблемы с выделением достаточного количества памяти кучи для каждого микросервиса, учитывая, что моя инфраструктура исправлена, и мои контейнеры не могут совместно использовать память, если они простаивают так эффективно, если я выделяю минимум оперативной памяти контейнеру, это выходит за рамки для других контейнеров.

Это может привести к тому, что мои модули будут убиты, снизив производительность, и для преодоления этого мне, возможно, потребуется добавить больше инфраструктуры, что увеличит затраты по сравнению с использованием стратегии развертывания с использованием tomcat и совместного использования одной JVM между микросервисами.

Верен ли мой подход и мышление, или я что-то упускаю здесь ?