Java仍然是开发人员群体中最流行的编程语言之一,如果在容器和Kubernetes环境下使用它,还是有缺点的。
Quarkus为700多万Java开发人员提供了用他们熟悉的框架继续构建新应用的机会。
为什么要在红帽OpenShift上使用Quarkus?
Quarkus应用在容器中运行,而红帽OpenShift天然集成了Quarkus,从而让部署更简化。Quarkus on Red Hat OpenShift为开发人员提供熟悉的工具、使用红帽CodeReady Workspaces等IDE的集群远程开发,以及与托管配置的集成、无服务器工作负载的部署和应用存储的管理。
Quarkus还提供与Kubernetes API的集成,包括通用API客户端和使用Kubernetes ConfigMaps的动态应用配置。购买红帽OpenShift时包含对Quarkus的红帽订阅和支持。
Quarkus和开发人员生产力
Quarkus的设计充分考虑到了开发人员。开发人员生产力意味着组织可以通过快速开发和部署新应用来更快地响应快速变化的市场。Quarkus可帮助提高开发人员的工作效率,例如用于快速内循环开发的实时编码、与红帽CodeReady Workspaces等IDE的集成,以及超越传统Java标准的API。
使用Quarkus,开发人员可以混合使用MicroProfile、Spring framework API,和其他现有流行框架等标准,同时受益于Quarkus在Kubernetes上的效率。
如何将我的Spring Boot应用带到Quarkus?
将当前的Spring Boot应用带到Quarkus和红帽OpenShift不仅是可能的,而且比你想象得更容易。应用程序迁移工具包(MTA)可以通过分析源代码,甚至二进制文件来审查您的Java应用组合,其中涵盖了广泛的转换路径(Java EE、JDK、Linux、容器化、Quarkus 等),并加速迁移过程。
MTA 5.1版提供了对Spring Boot到Quarkus的广泛支持。
Quarkus是什么?
Quarkus是一个框架,用于构建在传统Java虚拟机(JVM)上运行,或作为原生编译的可执行文件运行的 Kubernetes原生Java应用。Quarkus最大限度地减少了启动时间和内存使用,并与现有Java框架和开发人员工具集成,以快速开发和部署应用。Quarkus可以帮助您运行处理无服务器、微服务、容器、Kubernetes或混合云中其他应用程序类型的Java应用。
Quarkus理念
Quarkus旨在为传统的Java虚拟机运行时(如OpenJDK)生成紧凑而高效的应用,并且可以生成原生可执行二进制文件以实现更大的优化。不过,关键是在构建阶段做尽可能多的前期工作,这在应用的生命周期中只发生一次。
在构建阶段,Quarkus首先将应用编译成传统的Java字节码、加载和解析配置、处理注释、构建框架元模型,并将它们全部连接到一个传统的可执行Java应用程序(JAR文件)中。在运行时——应用启动时——执行这些步骤不需要任何内存、CPU或时间,这大大减少了启动时间。
原生编译
Quarkus应用可以编译为原生可执行文件,以提高效率。使用Mandrel(GraalVM的下游发行版),分析应用程序以查找“死代码”(在运行时永远不会访问的代码路径),并从应用可执行文件中消除它。这让小型轻量级可运行应用在数十毫秒内启动,并在运行时仅需要数十兆字节的内存。