甲骨文(Oracle)推出以Java为基础的无服务器应用程序部署技术GraalOS。通过使用OracleGraalVM原生镜像文件,GraalOS不再依赖Java虚拟机(JVM),因此能实现高速启动、降低资源消耗,并与云计算服务紧密集成等优势,还可同时支持x64与AArch64两种处理器架构。

Oracle发展这项名为GraalOS的技术,来强化自家的无服务器运算服务OCI Functions。该服务让开发者可以在没有任何基础设施的情况下,根据事件或是请求,创建、执行和扩展应用程序。官方表示,传统无服务器函数主要缺点之一便是启动速度慢,在功能第一次被调用,或是经过一段时间不活动后,都会发生这种情况。

GraalVM技术是GraalOS重要的一环,甚至可以说是GraalOS背后的核心技术。GraalVM是一个高性能JVM和JavaScript执行环境,同时支持Ruby、R、Python等语言,除了使用JIT编译器,大幅提高Java等语言的执行性能之外。其原生镜像文件功能,则可以将应用程序提前编译成为原生机器程序代码。而GraalOS便是使用GraalVM的原生镜像文件技术,将开发者的应用程序转为原生执行文件,因此可加速启动并且减少资源使用,有助降低云计算成本。

当前OCI Functions运用开源容器原生无服务器平台Fn Project,将函数打包成容器运行,而容器的启动与资源调用,都是造成函数启动速度慢的原因。而官方表示,GraalOS应用程序启动速度很快,几乎没有冷启动成本。与拥有巨大冷启动成本的容器平台不同,GraalOS应用程序只是一个小型原生Linux可执行文件,启动时间仅为数十毫秒。

由于GraalVM原生镜像文件运用提前编译(AOT)技术,因此GraalOS应用程序所需要的内存明显减少,官方表示,由于大多数云计算服务的定价结构,内存使用量都是一个重要的因素,而较低的内存使用量,也就代表会直接影响运营成本。而且不只是内存,GraalOS就连使用的CPU资源,都是JVM所需的一小部分。

GraalOS应用程序在调用时能够自动暂停和恢复,即便因为未接收到请求的应用程序和函数都被服务器平台终止,GraalOS也能够在暂停后,快速恢复闲置应用程序,不像过去基于容器的函数启动会出现冷启动成本。

GraalOS大幅提升了OCI Functions的启动速度,可让无服务器函数在数秒内启动,且对大多数工作负载来说,使用的内存也会比传统函数减少达50%,函数更快启动也就代表可以支持次秒级低延迟调用,打开配置的并行性需求降低。

GraalOS原生Linux可执行文件,使用了由硬件加强的应用程序隔离技术,即便没有将应用程序打包到容器中,也能获得隔离安全性。Oracle先在OCI Functions运用GraalOS,新添加Graal Function类型,而内置OCI Functions触发器的Events、Connector Hub和Data Integration等服务,也都可以从GraalOS获得性能升级效益。目前GraalOS加速功能仅先开放给Java开发者使用,官方预告未来还会支持更多语言。