Red Hat и сообщество проекта Quarkus анонсировали Quarkus 1.0 — Kubernetes-ориентированный Java-стек, собранный из лучших библиотек и стандартов Java и заточенный для контейнерных и облачных сред развертываний. Цель этого проекта —актуализировать Java в свете перспектив разработки облачных приложений и превратить ее в ведущую платформу для облачных сред, а также сред serverless, и Kubernetes. Мы уверены, что в рамках проекта Quarkus нам удастся увеличить масштабируемость Java до необходимого уровня в соответствии с современными требованиями к разработке приложений и ускорить развитие и совершенствование этой технологии.
Quarkus 1.0, выпуск которого запланирован на конец ноября, станет кульминацией совместных усилий Red Hat и сообщества Quarkus по реализации новых функций, исправлению ошибок и оптимизации производительности, которые осуществлялись с момента первого релиза проекта в марте 2019 года.
Проект Quarkus был разработан в качестве ответа на вызовы, произошедшие в виду фундаментальных изменений в области разработки приложений, и призван устранить определенные недостатки Java при работе с облачно-ориентированными архитектурами, такие как контейнеры, микросервисы и serverless-вычисления. Благодаря Quarkus Java-разработчики могут создавать приложения, которые быстрее запускаются и потребляют меньше памяти по сравнению с традиционные микросервисными Java-платформами. Quarkus имеет гибкие и простые в использовании API, позволяющие разработчикам создавать собственные облачные приложения, а также включает в себя ведущие фреймворки, хорошо знакомые большинству разработчиков.
Quarkus штатно поддерживает работу с популярными стандартами, платформами и библиотеками Java, такими как Eclipse MicroProfile, Apache Kafka, RESTEasy (JAX-RS), Hibernate ORM (JPA), CDI, Spring, Infinispan, Camel и многими другими. При этом разработчики могут самостоятельно выбрать Java-фреймворк для своего приложения Quarkus, работающего на виртуальной машине JVM.
В состав Quarkus входит модуль MicroProfile OpenTracing для отслеживания трафика между сервисами, модуль MicroProfile Metrics для интеграции метрик JVM и Quarkus runtime, а также метрик пользовательских приложений в составе платформ мониторинга наподобие Prometheus.
Quarkus предлагает более 80 расширений для различных Java-фреймворков, поддерживающих компиляцию приложений в двоичный код, что позволяет без лишних усилий охватить как текущие, так и будущие сценарии использования.
Режим программирования на лету (live coding), когда изменения в коде автоматически применяются в составе запущенного приложения, значительно упрощает итеративную разработку и повышает производительность труда. Quarkus также объединяет модели реактивного и императивного программирования, позволяя разработчикам выбирать ту из них, которая лучше подходит для каждого конкретного случая, и легче интегрировать свой код с другими компонентами в рамках реактивной системы, такими как реактивные потоки в Vert.x и Kafka, API-интерфейсы реактивной БД и т. д.
По сравнению с предыдущими версиями Quarkus 1.0 предлагает следующие возможности:
- реактивное ядро на основе Vert.x для полноценной реализации модели реактивного программирования в составе Quarkus;
- новый неблокирующий уровень безопасности для реактивной аутентификации и авторизации, а также для реактивных операций безопасности при интеграции с Vert.x;
- улучшенная совместимость с Spring API, включая Spring Web, Spring Data JPA и Spring DI;
- поддержка Java 8, 11 и 13 при использовании Quarkus на JVM. В будущих версиях планируется реализовать нативную компиляцию для Java 11.
Относительно будущего этого проекта: сообщество разработки сейчас активно занимается созданием новых расширений для Quarkus, например, для расширения совместимости с Spring API, повышения уровня наблюдаемости и поддержки длительных транзакций.