Oracle Cloud,如何在 ARM 服务器上部署 GraaIVM 服务

小夏 科技 更新 2024-01-31

本教程将指导您完成在 Oracle Cloud Infrastructure (OCI) 上的 Ampere A1 计算平台上启动和运行的过程。 首先,在 JVM 模式下运行 Spring Boot 应用,然后生成并运行 Micronaut。 以本机二进制形式IO 应用程序。 借助 GraalVM,您不仅可以提高现有应用程序的性能,还可以为云构建轻量级的多语言应用程序。 对于 Ampere A1 外形尺寸,它提供了线性可扩展性和无与伦比的性价比,使其成为理想的伴侣。 基于 Ampere Altra CPU,Ampere A1 计算平台正在彻底改变企业和应用程序开发人员,他们正在构建从边缘设备到云数据中心的可扩展工作负载。 该平台的独特设计提供了一致且可接受的性能,因为计算核心内没有资源争用,从而提供了更多的隔离和安全性。 Oracle 云基础设施上的这种新型计算形式将 Altra CPU 的强大功能与 OCI 的安全性、可扩展性和服务生态系统相结合,提供了一个无与伦比的平台。 GraalVM是一个高性能的运行时环境,适用于使用J**A,J**Ascript,基于LLVM的语言(如C和C++)以及其他动态语言编写的应用程序。 它极大地提高了应用程序的性能和效率,因此您可以更高效地在云上运行现有应用程序。 GraalVM 还可以构建原生可执行二进制文件 - 现有基于 JVM 的应用程序的原生镜像。 生成的原生镜像以机器**的形式包含整个程序,可以立即执行,避免了 JVM 本身的启动和内存占用。 此功能使 GraALVM 成为构建云原生应用程序的理想选择,JVM 语言中的多个微服务框架现在都包含此功能。 在本教程中,您将: 创建 Ampere A1 计算实例。

安装 GraalVM 企业版。

使用 GraalVM 运行流行的 Spring Boot 示例应用程序 JVM 模式下的 PET 诊所

使用 GraalVM 本机映像构建并运行 Micronaut 应用程序。

评估在 Ampere A1 上使用 GraALVM 的适用性。

清理部署。 Oracle 免费套餐(试用)、付费或 LiveLabs 云帐户。

熟悉 OCI 控制台。

网络概述。 熟悉隔间。

容器和 podman 的基本概念知识。

您将开始初始化用于创建和部署 J**A EE 应用程序的 Oracle Cloud 环境。 环境将包含在云区间中,区间内的通信将通过虚拟云网络 (VCN) 进行。 隔间和 VCN 将隔离和保护整体环境。 您将创建一个 Ampere A1 计算实例,以使用 GraalVM 企业版安装和运行应用程序。 打开导航菜单。 在“治理和管理”下,转到“身份验证”,然后单击“区间”。 在此屏幕上,您将看到隔间列表,点击“创建隔间”。

输入以下信息:

名称:输入“appdev”。

描述:输入描述(必填),例如:“appdev compartment for getting started tutorial”。 避免输入机密信息。

父区间:选择要放置区间的区间。 默认为根区间(或租户)。

点击“创建隔间”。

您的隔间将显示在列表中。

要创建 Ampere A1 计算实例,请使用控制台左上角的导航菜单,然后转到计算实例。

打开实例创建过程。

确认您位于 appdev 区间中。

单击创建实例。

在创建实例页面上,您将创建一个新实例和新的网络资源,例如虚拟云网络 (VCN) 和 Internet 网关 (IG)。

将实例命名为 GraalVMapp

更新映像选择以使用 Oracle Linux 79。

单击“更改形状”按钮以查看可用的计算形状。

4.为您的实例配置映像。 单击“更改映像”按钮以查看可用的操作系统映像。

选择 Oracle Linux 79。

5.为您的实例配置资源。 在形状系列选择中选择 Ampere Arm 基础处理器。

从带有 Ampere Arm 基础处理器的形状列表中进行选择vm.standard.a1.flex形状。 Ampere A1 的形状很灵活,您可以修改内核数量和内存量。 为 VM 选择 1 个核心和 6 GB 内存。

6.选择您的网络选项。 为下一个云部署创建新的 VCN 和子网。 确保您选择为实例分配公有 IP 地址。 7.生成和 SSH 密钥对。 此步骤是可选的,但强烈建议在以后的维护和升级中执行。 如果您已经拥有密钥对,也可以使用公钥。 如果您想了解如何生成 SSH 密钥,请按照生成 SSH 密钥教程中的说明进行操作。

8.单击“创建”以创建网络资源并启动计算实例。

为了使应用程序可以从 Internet 访问,您需要打开应用程序将使用的端口。 在本部分中,你将在云网络上配置安全列表,并在计算实例上配置防火墙规则,使应用程序能够发送和接收流量。 安全列表充当实例的虚拟防火墙,其入站和出站规则指定允许进入和退出的流量类型。 安全列表在子网级别配置,将安全规则应用于该子网中的所有网络元素。 您的网络附带一个默认安全列表,其中包含一组初始规则。 默认安全列表允许您使用 SSH 连接到实例,并允许实例对任何目标进行出站网络调用。 导航到您创建的实例的详细信息页面。 计算实例:单击您创建的实例。

通过单击子网,导航到实例连接到的子网。

在“子网”页面,单击默认安全列表,查看详细信息并进行配置。

单击“添加入站规则”以添加新规则,以允许与规则匹配的传入流量。

添加允许端口 8080 上的传入流量的入站规则将源 CIDR 设置为。这允许来自所有来源的传入流量。 b.将目标端口范围设置为 8080。 这会将目标设置为仅端口 8080。 该规则现在允许来自所有源的流量使用端口 8080。 这正是我们所需要的,以便可以从任何地方访问我们的应用程序。 c.提供说明。

防火墙规则控制进出实例的数据包级流量。 您需要直接在实例本身上配置防火墙规则,以便为您提供额外的安全级别。 导航到您创建的实例的详细信息页面。 计算实例:单击您创建的实例。

复制实例的公有 IP 地址。

使用 SSH 连接到实例。 使用您自己生成的密钥或在实例创建步骤中提供的密钥。 使用 Oracle Linux 操作系统的实例的默认用户名是 OPC。

运行 firewall configuration 命令。 这将修改实例本身的防火墙,以公开端口 8080 并接受传入流量。

OCI 免费向客户提供 Oracle GraalVM 企业版。 GraalVM 企业版支持包含在 Oracle Cloud 订阅中。 基于 ARM 的高性能计算外形与基于 OCI 的 GraalVM 企业版相结合,为现有和新的企业应用提供了一个极具吸引力的平台。 导航到您创建的实例的详细信息页面。 计算实例:单击您创建的实例。

复制实例的公有 IP 地址。

通过SSH方式登录实例。 使用您自己生成的密钥或在实例创建步骤中提供的密钥。 使用 Oracle Linux 操作系统的实例的默认用户名是 OPC。 要在 OCI 上安装 GraalVM 和 Git,请运行以下命令:

安装后,可以在 usr lib64 GraalVM 目录中找到 GraalVM。 GraalVM 包含一个 JDK,默认情况下,它将 J**A 顶级 JIT 编译器替换为 GraALVM 编译器。 新的和创新的GraALVM编译器可以提高现有JVM应用程序的性能。 安装 GraalVM 后,j**a 运行时就可以在您的系统上使用,您可以使用以下命令检查版本。

作为现有 J**A 应用程序的示例,我们可以运行 Spring Petclinic 示例应用程序,该应用程序是使用 Spring Boot 构建的。 克隆存储库以开始使用。

2.生成并运行应用程序。

首次运行应用程序时,将具有依赖项。 **可能需要几分钟才能完成。 应看到类似于以下示例的输出:2021-03-05 18:11:28447 info 3704 --main] o.s.s.petclinic.petclinicapplication : no active profile set, falling back to default profiles: default2021-03-05 18:11:31.531 info 3704 --main] .s.d.r.c.repositoryconfigurationdelegate : bootstrapping spring data jpa repositories in default mode.2021-03-05 18:11:31.697 info 3704 --main] .s.d.r.c.repositoryconfigurationdelegate : finished spring data repository scanning in 144 ms. found 4 jpa repository interfaces.2021-03-05 18:11:33.436 info 3704 --main] o.s.b.w.embedded.tomcat.tomcatwebserver : tomcat initialized with port(s): 8080 (http)2021-03-05 18:11:33.720 info 3704 --main] o.a.c.c.c.[tomcat].[localhost].[/] :initializing spring embedded webapplicationcontext2021-03-05 18:11:33.721 info 3704 --main] w.s.c.servletwebserverapplicationcontext : root webapplicationcontext: initialization completed in 5133 ms2021-03-05 18:11:34.797 info 3704 --main] o.hibernate.jpa.internal.util.loghelper : hhh000204: processing persistenceunitinfo [name: default]2021-03-05 18:11:34.902 info 3704 --main] org.hibernate.version : hhh000412: hibernate orm core version 5.4.28.final2021-03-05 18:11:34.983 info 3704 --main] o.hibernate.annotations.common.version : hcann000001: hibernate commons annotations 2021-03-05 18:11:35.266 info 3704 --main] org.hibernate.dialect.dialect : hhh000400: using dialect: org.hibernate.dialect.mysqldialect2021-03-05 18:11:36.838 info 3704 --main] o.h.tuple.entity.entitymetamodel : hhh000157: lazy property fetching **ailable for: org.springframework.samples.petclinic.owner.owner2021-03-05 18:11:37.094 info 3704 --main] o.h.e.t.j.p.i.jtaplatforminitiator : hhh000490: using jtaplatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.nojtaplatform]2021-03-05 18:11:37.112 info 3704 --main] j.localcontainerentitymanagerfactorybean : initialized jpa entitymanagerfactory for persistence unit 'default'2021-03-05 18:11:38.696 info 3704 --main] o.s.s.concurrent.threadpooltaskexecutor : initializing executorservice 'applicationtaskexecutor'2021-03-05 18:11:40.604 info 3704 --main] o.s.b.a.e.web.endpointlinksresolver : exposing 13 endpoint(s) beneath base path '/actuator'2021-03-05 18:11:40.758 info 3704 --main] o.s.b.w.embedded.tomcat.tomcatwebserver : tomcat started on port(s): 8080 (http) with context path ''2021-03-05 18:11:40.783 info 3704 --main] o.s.s.petclinic.petclinicapplication : started petclinicapplication in 13.846 seconds (jvm running for 14.906) 应用程序在大约 14 秒后启动。正如你所看到的,GraalVM包括完整的JDK,可以作为现有JVM的直接替代品。 要了解有关 GraalVM 可用的优化标志的更多信息,请参阅此处的文档。 GraalVM 能够从运行速度极快的 J**A 应用程序创建独立的可执行二进制文件。 GraalVM 对 j**a 的预编译负责所有应用程序类、依赖项和运行时库,并消除了 jvm 本身的开销和占用空间。 但是,某些高级语言功能(如运行时和反射)需要额外的配置。 许多微服务 j**a 框架(如 Micronaut、Helidon 和 Quarkus)都支持立即创建原生镜像。 1.首先,安装本机映像工具。 这些软件包在 OCI 的 yum 存储库中可用,但默认情况下不会安装。

在本教程中,我们将使用 micronaut 构建应用程序,因为 micronaut 使用依赖项注入和面向切片的运行时,而不是反射。 2.在 micronaut 中使用以下命令IO 启动,要开始使用,请执行以下操作:

3.运行应用,查看在 JVM 上启动需要多长时间:

应看到类似于以下示例的输出:You should see an output similar to the following example:

该应用程序在 755 毫秒内启动,这令人印象深刻。 4.现在,构建应用程序的本机映像并比较启动时间:

构建原生镜像大约需要 5 分钟。 构建完成后,本机映像将放置在目标目录中,并以项目命名。 5.运行本机映像。

应看到类似于以下示例的输出:You should see an output similar to the following example:

原生镜像的启动速度可以提高 40 倍以上,只需 18 毫秒。 最重要的是,无论您的应用程序多么简单或复杂,GraALVM 原生映像都能立即提升性能。 Oracle 云基础设施结合最新的基于 ARM 的计算和 GraALVM 企业版,为构建和扩展企业负载提供了无与伦比的平台。 作为 Oracle 优秀合作伙伴,Agilewing 彻底改变了用户体验 Oracle 云服务的方式。 Agilewing提供简化的开户流程和一流的技术支持,让用户无需繁琐的开户流程,以及复杂的操作。 一站式服务,快速完成云服务的开通和开通,轻松获取Oracle云的各项服务。 AgileWing 的 AgileCDN 集成 CDN 服务与 OCI 云基础服务完美结合,为业务国际化提供全球内容加速解决方案。 客户可以通过全球 2,800 多个 POP 节点和 7,000 多个直连点享受网络效率和稳定性。 这意味着无论您的企业位于世界的哪个地方,Agilewing都能确保其高效运行。 Agilewing 利用 Oracle 云的优势来构建云服务、迁移云并将业务扩展到海外,无需自行研究和探索 Oracle 云服务的复杂过程。 这种合作模式为客户提供了经济高效的解决方案,使他们能够专注于核心业务,同时享受 Oracle 云的高性能和安全性。 Oracle 云服务是一个充满潜力的领域,它具有高性能、安全性和全球一致的服务标准,可提供无限可能。 借助 Agilewing 的专业服务,用户和企业都可以轻松进入这个新世界,并充分利用 Oracle 云的所有优势。 立即使用 Agilewing 开启您的 Oracle 云服务之旅,探索创新和性能的新时代。

相似文章

    浅谈甲骨文 甲骨文的发现

    年,时任国子酒士的王一荣来到中药店,等到药师傅把药递给他。王艺荣忽然察觉到了什么。这些草药上有一些奇怪的描述。这些药材是埋藏在地下多年的甲骨文,被后人视为珍宝。王一荣发现这些雕刻与晋文非常相似,于是决定对甲骨文进行深入研究。经过反复推敲和拼接,王一荣确认这些甲骨文上的符号是早期的文字。这就是我们所说...

    甲骨文的特点

    甲骨文是中国古代的一种文字,其造字特点非常独特。首先,甲骨文是象形文字的一种,即通过描绘事物的形状来创造文字。例如,马 字的甲骨文类似于马的简笔画,栩栩如生。其次,甲骨文是警句的一种,即通过组合不同的字形来表达新的含义。例如,人 字的甲骨文形状类似于人的简笔画,一 字的形状类似于棍子,当这两个字组合...

    甲骨文铭文金温见于中国“中国”。

    作者 徐杰。在甲骨文和金字铭文中,中 一词被用作地名 人名或姓氏。甲骨文合集 Ji 毛 Bu 大耿.于忠.大庚,在文献中被称为太庚,是商朝的第六位商王。史记 尹本记 沃丁垮台,弟弟太庚立为太庚皇帝。作为地名。甲骨文集 二十屯大臣的愤怒,特此展示。甲骨文集 C Zi,Xiaochen Zhong.Or...

    甲骨文再次出圈也就不足为奇了

    文 朱晓凡.近日,科普甲骨文教育博主李幼熙在热搜上与瑞安市第一小学小学生进行了交流。李友喜表示,这所小学开设甲骨文相关课程已经年了,学员的甲骨文基础非常好,还能联想 推论,让网友们惊呼 太神奇了 截图 大米 今年月,李幼汐在网络上自嘲自己专业是 全网最冷门专业 曾经 火爆 不久前,破译甲骨碑悬赏万元...

    甲骨文见商朝方国王

    作者 徐杰。商周时期,国家体制还处于形成期,大统一的中央集权制度尚未形成。方国 一词最早是孙一郎于年在 事例 中提出的。契约文本 明远范例 孙一郎著,中华书局出版。写于年的 铭文实例 是第一本研究甲骨文的专著。成原写于年,从语言学的角度总结了他对甲骨文的研究成果。全书共分为 原名 古章与原象 象形原...