Не клади все яйца в один контейнер

День 1 /  / Зал 4  /  RU / Для практикующих инженеров  /  hotspot,docker,spring,appcds,aot,performance

Как здорово деплоить микросервисы в контейнерах. Возьмём в облаке контейнеровоз за недорого и загрузим его под завязку. Только что-то сервисы не стартуют, тормозят и тихонечко идут на дно.

Правильные инструменты диагностики и новые версии Java помогают разобраться и выправить ситуацию. Микросервисная архитектура и контейнеризация стали стандартами современной разработки приложений. Вызовы, с которыми сегодня сталкиваются разработчики, отличаются от тех проблем, которые мы привыкли решать раньше. Создатели Java-рантайма реагируют на это соответствующей функциональностью в JDK. Например, недорогой облачный инстанс может быть довольно мощным. И на нём работает связка контейнеров. А JVM, запущенные в разных контейнерах, ведут борьбу за ресурсы инстанса. Начиная с Java 10 виртуальные машины уже умеют жить дружно, работа над этим продолжилась и в Java 11.

С другой стороны, нужно выбрать, какой базовый образ использовать. Это включает в себя выбор операционной системы и Java-рантайма. Образы ОС могут сильно отличаться по размеру и иметь свои особенности, которые должна учитывать и Java. Java-рантаймы тоже теперь на любой вкус. И даже в рамках OpenJDK доступны сборки от разных компаний и с разной функциональностью и размером. И кроме того, можно создавать custom runtime image.

Мы рассмотрим практическое применение функциональности Java 11 в контейнерной среде, типичной для популярных фреймворков.


Скачать презентацию
Дмитрий Чуйко
BellSoft

Дмитрий Чуйко — инженер по производительности в компании BellSoft, которая входит в топ-5 контрибьютеров OpenJDK. До того как присоединиться к BellSoft, Дмитрий программировал на Java, а затем работал над Hotspot JVM в Oracle. Ведь предыдущий опыт работы с Java показал, что наиболее интересные проблемы в приложениях получают свои решения в базовой платформе. В настоящее время Дмитрий в основном оптимизирует OpenJDK для ARM64, компания даже реализовала на эту тему собственный JEP 315 в Java 11.

BellSoft выпускает и поддерживает Liberica JDK — верифицированный дистрибутив OpenJDK. Liberica выпускается в виде бинарных сборок, инсталляторов и контейнерных образов для разных ОС и процессоров. Поэтому сейчас в фокусе внимания работа различных версий Java в контейнерах на ARM и x86.

Контакты