Spring Boot «fat» JAR: Тонкие части толстого артефакта

День 2 /  / Зал 2  /  RU /

Одна из известнейших фич Spring Boot — упаковка целого приложения в т.н. «толстый» JAR, который потом «just runs». Это реально работает, и для многих ситуаций этого достаточно. Но если вы не доверяете магии и/или столкнулись с проблемами при развертывании «толстого» JAR, то вам пора вникнуть в устройство этого механизма.

И тут выясняется, что «just runs» обходится далеко не бесплатно: есть ограничения по загрузке классов, вопросы к скорости запуска, конфликты со встроенными утилитами JDK, отличия в режимах dev/test/prod, а в некоторых случаях применение этой фичи и вовсе излишне.

В этих и других тонкостях «толстого» JAR мы и разберемся в докладе. Заглянем в его устройство и поймём, в каких случаях он хорош, а в каких лучше обойтись без него (и что тогда выбрать вместо). Особое внимание уделим развертыванию в контейнерах.

Доклад рассчитан на практикующих инженеров, поставляющих приложения на Spring Boot в production.


Почему этот доклад в программе

Чем хорош спикер: Владимир отлично систематизирует и излагает знания полученные на практике, дополняя их до полной картины пруфами из источников, которым можно доверять. Все доклады несут исключительную практическую пользу.

Чем хороша тема: Мы привыкли, что вары не нужны, а джары толстые, но, кажется, так и не разобрались до конца: а что там внутри, как работает и какие у нас есть альтернативы тому, что работает по умолчанию. Доклад призван устранить этот пробел.

Кому будет полезно: Все, кто практикует разработку с применением Spring Boot, чтобы наконец разобраться как устроено то, что вы запускаете на рабочей машине и в продакшене.

Почему здесь и сейчас: Доклад готовится непосредственно к конференции, аккумулируя опыт за несколько лет и то, что мы узнали в последние месяцы.

Спикер(ы)

Владимир Плизга
ЦФТ

Владимир со школьной скамьи увлечён программированием и с тех пор успел покодировать на многом: от советских программируемых калькуляторов до современных станков с ЧПУ. Однако последние 8+ лет погружен в разработку бэкенда на Java для интернет-банков в ЦФТ (преимущественно на Spring). Регулярно заморачивается идеями оптимизации повседневных задач разработки/тестирования бэкенда, вынашивает для них решения на пробежках и в бассейне, а затем воплощает в жизнь, бессовестно испытывая на собственных коллегах. Периодически пишет статьи и выступает с докладами по Java, да и сам причастен к организации сибирской Java-конференции SnowOne.

Приглашенные Эксперты

Андрей Беляев
Haulmont

Developer Advocate в компании Haulmont. С Java начал плотно работать с 2006 года. Долго работал в аутсорсинге, где попробовал себя почти во всех ролях, кроме, пожалуй, дизайнера. Был разработчиком, тимтехлидом, ПМом, архитектором. В настоящее время работает над фреймворком CUBA в компании Haulmont — делает RnD и представляет компанию на разных мероприятиях.