欢迎访问深圳敏捷云计算科技有限公司!

甲骨文云,如何在ARM服务器部署Java应用服务

2024-01-15 原创文章

使用简洁、直接的语言,本文介绍了如何在甲骨文云基础设施(Oracle Cloud Infrastructure,简称OCI)上部署Java应用程序。特别强调了在OCI的Ampere A1计算平台上,将Java应用程序作为容器部署的流程。这一过程不仅涉及到容器的运行,还包括使用Oracle Linux 8.0中提供的一系列新容器工具,如Podman。

本文的目标是教您如何:

  • 创建一个Ampere A1计算实例。
  • 构建一个管理Todo笔记的Java EE应用程序。
  • 将应用程序部署到Tomcat 9。
  • 将应用程序连接到数据库,并作为Pod管理部署。
  • 运行和测试应用程序。
  • 清理部署。

前提条件包括:

  1. 甲骨文免费层(试用)、付费或LiveLabs云账户。
  2. 熟悉OCI控制台。
  3. 网络概览。
  4. 熟悉Compartments(分区)。
  5. 对容器和Podman的基本概念性知识。
  6. 保管好SSH密钥。如果没有,需要生成SSH密钥。

接下来,文章详细介绍了设置环境的步骤,如何在云Compartment内部署和配置Java EE应用程序。这不仅包括基础设施的设置,还涵盖了如何创建Compartment、配置虚拟云网络(VCN)等关键步骤,以确保整个环境的隔离和安全。

通过这篇文章,企业可以快速了解如何在云平台上部署和管理应用程序,从而实现业务的云化和全球化。无论是对于云服务器的选择、云存储服务,还是针对海外云服务器和在线云服务的需求,本指南提供了全面的解决方案,助力企业轻松实现出海战略。

创建Ampere A1计算实例

在本部分,我们将深入探讨如何创建Ampere A1计算实例,这是实现应用部署的关键步骤。

  1. 要创建Ampere A1计算实例,请使用控制台左上角的导航菜单,选择“计算实例”。
  2. 开启实例创建流程。确认您处于“AppDev Compartment”中。点击“创建实例”。
  3. 在创建实例页面,您将创建新实例,并配置新的网络资源,如虚拟云网络(VCN)、互联网网关(IG)等。将实例命名为“JavaApp”。更新镜像选择,使用Oracle Linux 8或更新版本。点击“更改形状”按钮,查看可用的计算形状。

4.配置实例的镜像。点击“更改镜像”按钮,查看可用的操作系统镜像。选择Oracle Linux 8或更新版本。

5.配置实例的资源。在形状系列选择中选择Ampere Arm基础处理器。从带有Ampere Arm基础处理器的形状列表中,选择VM.Standard.A1.Flex 形状。Ampere A1形状是灵活的,您可以修改核心数和内存量。为VM选择1个核心和 6 GB内存。

6.选择您的网络选项。为您的下一个云部署创建一个新的VCN和子网。确保为您的实例分配一个公共IP地址。

7.生成并下载SSH密钥对。这一步是可选的,但强烈建议进行,以便于后期维护和升级。如果您已经有一个密钥对,也可以带上您的公钥。如果您想了解如何生成SSH密钥,请参考“生成SSH密钥”教程。

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

通过以上步骤,即使是不太熟悉云服务的中小企业也能轻松完成云服务器的配置和部署。本节内容不仅为企业提供了关于如何选择云服务器、云存储服务及配置海外云服务器的具体指导,还涵盖了如何为业务上云和出海提供支持的全方位解决方案。


暴露应用程序端口给用户

本节重点介绍如何让应用程序可以从互联网访问,这需要开放应用程序将使用的端口。您将配置云网络的安全列表和计算实例的防火墙规则,以使应用程序能够发送和接收流量。

配置虚拟云网络(VCN)

安全列表充当实例的虚拟防火墙,具有指定允许进出流量类型的入站和出站规则。安全列表在子网级别进行配置,适用于该子网中的所有网络元素。您的网络带有一个默认的安全列表,其中包含一组初始规则。默认安全列表允许您使用SSH连接到实例,并使您的实例可以对任何目的地进行出站网络调用。

  1. 导航到您已创建的实例的详细信息页面。在“计算实例”下点击您创建的实例。
  2. 通过点击子网,导航到您的实例所附加的子网。

3.在子网页面上,点击默认安全列表查看详情并进行配置。

4.点击“添加入站规则”以添加一个新规则,允许匹配该规则的流入流量。

5.添加一个入站规则,允许在8080端口的流入流量。

  • 将源CIDRSource CIDR设置为0.0.0.0/0.。这允许来自所有来源的流入流量。
  • 将目的端口范围Destination Port Range设置为8080。这将目的地设置为仅8080端口。该规则现在允许来自所有来源的流量使用8080端口。这正是我们所需要的,以便我们的应用程序可以从任何地方访问。
  • 提供一个描述。

通过遵循上述步骤,即使是初次涉足云计算的企业也能轻松实现云服务器的网络配置。本节内容不仅帮助企业理解如何开放和管理云服务器端口,还为云服务的安全性提供了保障,确保应用程序能够安全、有效地与外界通信。这对于企业上云和出海业务的顺利进行至关重要。

配置实例上的防火墙

防火墙规则控制实例的进出包级别流量。您可以直接在实例本身配置防火墙规则,为系统提供额外的安全层级。

  1. 导航到您已创建的实例的详细信息页面。在“计算实例”下点击您创建的实例。
  2. 复制您实例的公共IP地址。
  3. 使用SSH登录到实例。使用您自己生成的或在实例创建过程中提供的密钥。使用Oracle Linux操作系统的实例的默认用户名是opc。
  4. 执行防火墙配置命令。这将修改实例本身的防火墙,以暴露8080端口并接受流入流量。

在Ampere A1计算平台上运行Java EE应用程序

要运行此应用程序,首先要准备一个安装了必要软件包(如容器工具和git)的Ampere A1计算实例。然后,克隆仓库并使用包含的Maven pom.xml构建应用程序。最后,使用容器工具启动MySQL和Tomcat Docker容器。

安装容器工具

Oracle Linux 8使用Podman来运行和管理容器。Podman是一个无守护进程的容器引擎,用于在Linux系统上开发、管理和运行开放容器倡议(OCI)容器和容器映像。Podman提供了一个与Docker兼容的命令行应用程序,可以用来替代docker。安装podman-docker包可以提供透明调用podman的docker命令。

  1. 使用SSH登录到实例。使用您自己生成的或在实例创建过程中提供的密钥。使用Oracle Linux操作系统的实例的默认用户名是opc。
  2. 安装container-tools模块,这将拉取所有与容器工作相关的工具。

克隆源代码

首先,使用SSH登录到计算实例并克隆仓库。

构建Web应用程序

Java Web应用程序打包为Web应用程序存档(WAR)文件。WAR文件是带有描述应用程序给servlet容器(如Tomcat)的元数据的zip文件。本示例使用Apache Maven构建应用程序的WAR文件。要构建应用程序,请运行以下命令。确保从克隆源文件的位置运行该命令。

该命令会创建一个target目录和其中的WAR文件。注意,我们不是在安装Maven,而是在容器内运行构建工具。

通过上述步骤,您可以轻松配置和管理实例的安全设置,同时确保您的Java EE应用程序在Ampere A1计算平台上顺利运行。这些步骤不仅涵盖了基本的安全配置,还包括了如何使用现代的容器技术来构建和部署应用程序,从而使企业能够更加高效和安全地执行其云战略。

在Ampere A1计算平台上运行应用程序

本应用程序使用Tomcat servlet容器和MySQL数据库。Tomcat和MySQL数据库都支持Ampere A1计算平台所使用的ARM64v8架构。

  1. 使用Podman创建一个pod。

2.在pod中启动数据库容器。

对于MySQL数据库,数据库初始化脚本被提供给容器,这些脚本在启动时创建所需的数据库用户和表。这是通过将主机上的/src/main/sql目录挂载到容器内的/docker-entrypoint-initdb.d 来实现的。您在此处使用的官方MySQL镜像被配置为在启动时执行此目录中的.sql 文件。有关更多选项,包括如何导出和备份数据,请参阅文档。

  1. 部署您构建的WAR文件和Tomcat服务器上的应用程序。

  1. 数据库连接信息和应用程序通过src/main/resources/todo.properties提供给Apache Tomcat容器。JDBC URL使用localhost作为MySQL服务器主机。这是因为同一pod内的容器可以使用localhost相互通信。应用程序WAR文件作为挂载提供给容器。
  2. Tomcat在启动时部署应用程序,并且端口映射到主机使应用程序可以通过计算实例的公共IP地址访问。
  3. 在浏览器中输入计算实例的公共IP地址,加上8080端口。您应该能够看到应用程序。http://<ip_address>:8080/todo/

故障排除

Podman容器可以像Docker容器一样进行检查(甚至可以将podman设置为docker的别名)。以下是一些常用的检查容器的命令:

  • podman ps -pa 显示运行和退出的容器,以及它们所属的pods。
  • podman logs -f todo-mysql显示指定容器(本例中为todo-mysql)的输出。按Ctrl+c退出。
  • 通过上述步骤,您可以顺利地在Ampere A1计算平台上部署和运行您的Java EE应用程序。本节内容不仅介绍了如何使用现代容器技术启动和管理数据库和Web服务器,还提供了实用的故障排除技巧,确保您的应用程序能够高效、稳定地运行。这对于希望在云平台上快速实现业务部署和扩展的企业来说至关重要。

开启您的Oracle云之旅:Agilewing - 您的智能云服务伙伴

作为Oracle的高级合作伙伴,Agilewing正重新定义企业体验Oracle云服务的方式。借助于其简化的开户流程和一流的技术支持,Agilewing将复杂的开户和操作流程转化为一种轻松、直观的体验。通过我们的一站式服务,您可以迅速开启并享受Oracle云的全方位服务,从而无缝融入云端世界。

Agilewing的AgileCDN服务,结合了OCI的云基础服务,提供了一流的全球内容加速解决方案。超过2800个全球POP节点和7000个直连点的强大网络,确保了无论您的业务扩展到全球哪个角落,都能保持高效稳定的运行。

利用Oracle云的先进技术,Agilewing致力于简化云服务搭建、云迁移和业务出海的过程。我们的合作模式为客户带来经济高效的解决方案,使他们能够更加专注于核心业务,同时享受Oracle云的高性能和安全保障。

Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务标准,为各类企业开启了新的机遇之门。通过Agilewing的专业服务,无论是个人用户还是企业,都能轻松步入这个充满技术革新和高效能的新时代。现在,就让Agilewing引领您开始探索Oracle云服务,打开一个全新的世界大门。

如您想咨询 Oracle 的相关业务,可联系搜索微信号:lhh1843812463woshiwhw123

或者可以进入以下群组进行咨询:

微信公众号

微信技术交流社群: