Red Hat выпустила Quarkus, собственный Java-фреймворк Kubernetes, адаптированный для GraalVM и OpenJDK HotSpot. Идея состоит в том, чтобы упростить создание Java-приложений для бессерверных сред и системы оркестровки контейнеров с открытым исходным кодом Kubernetes.
GraalVM-это виртуальная машина для запуска приложений, написанных на языках JavaScript, Python, Ruby, R, JVM, таких как Java, Scala, Kotlin и LLVM, таких как C и C++. HotSpot-это кроссплатформенная реализация виртуальной машины Java в OpenJDK.
Разработчики Quarkus скромно описывают его как сверхзвуковую субатомную Java. Red Hat говорит, что Quarkus «создан из лучших в своем роде библиотек и стандартов Java”. С практической точки зрения Quarkus-это стек Java, который объединяет библиотеки, включая Hibernate ORM, Vert.x, Netty, RESTEasy и Apache Camel, а также API-интерфейсы из инициативы Eclipse MicroProfile. Он предназначен для значительного сокращения потребления памяти и увеличения времени запуска.
Как выразился Эммануэль Бернард, архитектор платформы данных для портфолио JBoss в Red Hat:, Quarkus:
«создает инфраструктуру для фреймворков, позволяющую обнаруживать метаданные во время сборки (например, аннотации), объявлять, какие классы нуждаются в отражении во время выполнения, загружаться во время сборки и, как правило, предлагать много оптимизации GraalVM бесплатно (или, по крайней мере, дешево)…Quarkus делает GraalVM удобным для разработчиков фреймворков.»
Согласно тестам Red Hat, время запуска составляет десятки миллисекунд, что позволяет автоматически масштабировать микросервисы в контейнерах и Kubernetes, а также выполнять FaaS на месте. В то время как цифры Red Hat могут быть взяты с щепоткой соли (они сказали бы это, не так ли), сообщение в блоге Debezium об использовании Quarkus для доступа к данным Debezium показывает впечатляющее время запуска по сравнению с эквивалентными тестами с использованием сервисов Thorntail. Время запуска службы Quarkus составило 260 миллисекунд по сравнению с 5746 мс для эквивалента Thorntail.
Хотя время запуска может показаться незначительной частью запуска Java-приложения, Бернард Эммануэль указывает, что способ работы микросервисов на платформах развертывания, таких как Kubernetes, означает, что вы можете развертывать множество экземпляров своего приложения в сочетании с микросервисами:
«Идея о том, что Java потребует 100 МБ, 200 МБ или даже больше затрат на исправление, прежде чем ваше приложение сделает что-либо полезное, является недопустимой при развертывании 20-кратных или даже 200-кратных процессов Java.»
«Хорошая новость заключается в том, что когда вы можете запустить полное приложение менее чем за секунду с холодной загрузки и еще быстрее с теплой загрузки, перед вами открывается множество интересных возможностей.»
Вы можете попробовать Quarkus онлайн, чтобы увидеть, является ли все это шумихой или это действительно следующая большая вещь.