集团站切换校区

验证码已发送,请查收短信

复制成功
微信号:togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
图标

业界新闻

当前位置:首页 > >业界新闻 > >

使用 Spring Boot、Oracle 自治数据库和OCI Vault构建安全的云原生应用

发布时间: 2021-08-02 09:44:27

本文旨在帮助您了解Oracle云基础设施 (OCI)的一些技术能力,以构建现代应用程序。通过学习这篇文章,您不仅可以使用Spring Boot和 Oracle自治数据库创建应用程序,还可以将Spring Boot应用程序与OCI 服务原生集成,例如Oracle Kubernetes Engine (OKE)、OCI Container Registry和OCI Vault。


为什么选择 Oracle 自治数据库?


Oracle自治数据库将基础架构自动化与Oracle Exadata平台相结合。


该数据库使用机器学习来消除数十年来数据库一直存在的基本问题,包括复杂的管理、安全漏洞、因打补丁或故障而导致的停机、性能瓶颈、配置不易变更和高成本。


自治数据库具有以下特性和功能:


创建 Exadata云基础架构、RAC和横向扩展数据库以及Active Data Guard

在线安全更新,防止管理员使用Database Vault窥探数据,并加密所有数据

在线修补所有软件、调整设置、执行所有操作系统和SYSDBA 操作并诊断错误

支持自动备份、恢复和集群内或异地的应用程序透明故障转移

计算和存储的即时、自动和在线弹性扩展,可实现真正的按使用付费

自动优化每个工作负载的数据格式、索引、并行度和执行计划


Spring Boot 2.4.0发布后,官方增加了对 Oracle UCP的支持!特别是,我们可以将Spring Boot 与 Oracle自治数据库顺利集成。所以,我们可以主要依靠 Spring Boot配置属性来配置 Oracle UCP连接池。


使用OCI Vault保护您的凭据


OCI Vault是一个集中的、由客户控制的密钥管理服务,它具有以下特点:


集成到许多OCI 服务:Oracle自治数据库、对象存储等

完全托管

高可用服务:99.9% SLAs和99.99% SLOs

合规性:符合PCI DSS并通过 HSM FIPS 140-2 级别3认证,用于加密处理


OCI Vault和Spring Boot应用程序的集成






OCI Vault、Spring Boot和 Oracle自治数据库之间的集成


在Spring Boot应用程序的启动过程中,我们使用oci-java-sdk-secrets将数据库用户名和密码注入到SpringDataSourceProperties Bean中。


示例应用程序说明


以下示例应用程序处理用户实体并公开CRUD REST端点。我们使用Swagger 和OpenAPI,它们为消费者提供了一种简单的方式来描述API的契约,并可用于共享文档。您可以使用OCI API网关安全地为合作伙伴公开此API。以下示例代码显示了如何实现此检索,与自治数据库和OCI Vault的集成使用的依赖项。


从集成开发环境运行示例应用程序


先决条件


在 Oracle Cloud上配置自治数据库。如果您没有自治数据库的现有实例,请按照以下步骤操作。


应用配置


将您的数据库用户名和密码秘密存储在OCI Vault中。然后用您自己的配置替换以下属性:

oci.tenant.region=your region

oci.tenant.vault.db-username-ocid=yourusername vault secret ocid

oci.tenant.vault.db-password-ocid=yourpasswod vault secret ocid


运行应用程序


使用类HelloAutonomousdbApplication运行应用程序。然后,通过访问 URL http://localhost:8080来测试应用程序是否已正确部署。

当您看到swagger-ui页面时,您可以测试不同的公开 REST API:




构建示例应用程序


选项 1:带有 Maven 的可执行 JAR


要创建可执行 jar,请运行以下命令:

mvn clean package

要在本地测试可执行 JAR,您可以运行以下命令:

java -jartarget/hello-autonomousdb-0.0.1-SNAPSHOT.jar--spring.config.location=/path/configuration/properties/


选项 2:构建 OCI 映像


我们可以使用Cloud Native Buildpacks从可执行 jar 文件创建 OCI 映像。您可以使用build-image目标构建镜像。Docker 映像部署到Container Registry。要创建 OCI docker 映像,请运行以下命令:

mvn clean spring-boot:build-image


选项 3:使用 GraalVM 和Spring Native 构建原生镜像


这一步基于Spring Native和GraalVM。为了创建原生镜像,该项目依赖于 Spring Native项目和Cloud Native Buildpacks。Docker映像部署到Container Registry。

运行以下命令:

mvn -Pnative-image cleanspring-boot:build-image


在您的 Oracle 云租户中部署示例应用程序


先决条件

已安装 kubectl

已安装 Docker CLI

已安装 Terraform 0.12.16+

已安装 OCI CLI

已安装 Maven 3


使用 Terraform 配置基础设施


所有 Terraform 脚本都位于terraform文件夹中。这些脚本创建虚拟云网络 (VCN)、子网、安全列表、OKE、自治事务处理和OCI Vault。文件variables.tf中提供了以下变量的示例值。

然后使用Terraform脚本创建您的基础设施。您可以运行以下命令或使用OCI 资源管理器来创建您的基础设施:

terraform init

terraform plan

terraform apply


使用 buildpacks将应用程序部署到Kubernetes


所有部署脚本都在文件夹deployment中可用。这些脚本允许您完成以下步骤:

下载数据库钱包并创建一个包含自治数据库钱包的Kubernetes(OKE) Secret

创建 OCI容器注册表密钥,以便OKE可以拉取示例应用程序容器映像的最新版本

创建一个包含Spring Boot应用程序*.yml 配置的配置映射

将Spring Boot应用程序部署到Kubernetes集群


结 论


我们相信本指南可以帮助您简化和增强在Spring Boot应用程序中处理自治数据库凭据的方式。OCI Vault的亮点加强了内置于Oracle云基础设施中的增强安全机制。

上一篇: 什么是毕昇编译器

下一篇: 华为hcip认证书有用吗

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!