DevDays Moscow 2022 

Дмитрий Чуйко

Должность: Performance Architect

Компания: BellSoft

Страна: Россия

Биография

Дмитрий Чуйко работает инженером по производительности в российской компании BellSoft, одном из ведущих участников сообщества OpenJDK. До того, как присоединиться к BellSoft, Дмитрий уже работал над HotSpot JVM в компании Oracle. Его предыдущий опыт разработки на Java показал, что наиболее интересные проблемы приложений решаются на уровне базовой платформы. В настоящее время Дмитрий занимается оптимизациями OpenJDK для архитектур x86 и ARM, а также участвует в разработке JEP 386, чтобы самые маленькие Java-контейнеры были ещё лучше. Дмитрий регулярно выступает как на крупных конференциях, таких как Joker, JPoint, Oracle Code One, Devoxx, и GeeCON, так и на встречах разработчиков в разных странах.

Доклад

Не Клади Все Яйца в Один Контейнер

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

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

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

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

Ключевые слова

🔑 Containers
🔑 Microservices
🔑 OpenJDK

« Назад