首页 >> 大全

app aws_在AWS上将Spring App迁移到MicroServices

2023-09-04 大全 32 作者:考证青年

app aws

我正在工作的公司最近经历了从单片应用程序(Java WAR)重构代码库到 PAAS托管的应用程序(特别是和)的迁移的过程。 作为此博客文章的一部分,我提供了一个小型简单的Sales Demo应用程序,并将讨论重构该应用程序所需的步骤,以便可以在 / S3 / 环境中运行该应用程序。

出于本博客的目的,我将使用演示应用程序,并且可以在此处找到代码( )。 该站点将为用户提供产品列表,并使他们能够创建订单和征收营业税。 我创建了更详细的指南,其中包括在AWS中创建不同服务的步骤。 可以在以下位置找到该指南( )。 以下是体系结构的图:

图1_49961

上面的体系结构是用于大多数单片Web应用程序的非常标准的体系结构。 在迁移过程中,我们分解了代码,将后端服务与前端内容JSP(现在HTML),CSS和JS分离了。 下图说明了我们如何控制访问的模型:

图2_49961

亚马逊网络服务

我将首先从高层次解释AWS中的这些不同组件是什么以及如何将它们集成在一起。

53路

路线53是一种域名服务(HTTPS:// AWS 亚马逊的.com / /),它允许您将流量路由到不同的内部AWS服务。 在我们的模型中,我们使用Route 53托管我们的DNS服务器(例如 )。

S3

S3()是一项简单的存储服务,可让您存储内容(云中存储桶中的html,css,js文件)。 在此演示中,我们将使用 S3托管静态内容(html,css和JS)。

豆茎

()是一个应用程序堆栈,将用于托管我们的各个服务。 可以访问多个堆栈(,PHP,Node,Ruby,Go,.Net)。 在本演示中,我们将使用托管我们的不同Web服务(例如在上运行的 WARS)。

RDS

亚马逊关系数据库服务(RDS 的https:// AWS 亚马逊的.com / RDS / )将被用于承载我们的数据库。 我们将创建一个RDS数据库,我们的Web服务将用于连接到该数据库。

是将所有不同服务捆绑在一个通用URL下的粘合剂。 我们将定义一个原点(与我们的URL相对应,该URL在Route 53 中定义)。 当用户点击此URL时,会将流量路由到。 将托管内容并将其推送到世界各地。 在中,您可以根据URL模式重定向流量。 例如,进入默认模式(/ *)的任何人都可以重定向到S3中存储您静态内容(例如html,css,图像)的存储桶。 如果他们说出API URL(/ api / ),则可以将它们路由到后端的服务。

基础设施安全

在生产系统中,我们所有的Web服务都隐藏在不同的VPC后面,并且已经实施了网络规则以限制对后端服务的访问。 我认为我没有时间在此博客中解决此问题,但是我将在下一篇中尝试讨论。

应用安全

我未包含在销售演示中的一个主要组件是 。 在我们的应用程序中,我们删除了 ,并使用API​​网关替换了访问控制。 我将在此博客的结尾简要讨论这个概念。

itunes迁移app__迁移系统到ssd后

注意: AWS是一个非常复杂的复杂生态系统,它提供了多种集成这些不同服务的方式。 我将讨论的模型与我们在公司中实施的模型相似。

应用程序概述

Demo应用程序将看起来像传统的应用程序,但有一个例外。 JSP页面不遵循传统的 MVC模型,先从控制器传递数据,然后再由JSP页面呈现视图。 相反,我们使用的是,它对后端控制器进行REST调用,并在浏览器中呈现内容。 之所以这样做,是因为我们可以将静态内容(html,css,js文件)迁移到S3存储桶,并使后端服务在中运行。

我创建了一个指南,其中提供了有关如何在AWS中设置您的环境的逐步说明和图片。 您可以在此位置的上找到该文档的链接。 本文档的其余部分将提供对该过程的摘要以及对指南的引用。 如果您想在自己的AWS设置上尝试此操作,我建议您在此处查看详细指南( )。

迁移过程

下一节将提供迁移过程的高级概述。 同样,如果您想自己尝试一下,我建议您使用详细指南。

将应用程序部署到

第一步将是构建应用程序并将其部署到实例中。 要签出代码,请运行以下命令:

Git clone https://github.com/shannonlal/salesdemo step0

您可以将项目导入到您的IDE(,,STS等)中,也可以仅从命令行构建。 要构建项目,请运行以下命令:

mvn clean install

构建完WAR之后,登录到AWS 控制台,并将WAR部署在新的实例中。 有关详细说明,请参阅安装指南。

配置指向实例

登录到控制台,然后单击链接。 此时,您有两个选择:

使用您自己的域名() 使用Cloud Front提供的默认设置(这看起来像 )。

如果您已经拥有自己的域名,则可以将其添加到。以下链接提供了有关如何执行此操作的详细说明( intro.html )。 如果您没有自己的语言,则可以创建一个 ,它会为您提供一个URL。

此步骤的目标是使用将您的URL(您自己的或生成的 )映射到中的托管应用程序。 在中,您将定义一个Web分布,然后为该分布定义一个。 Cloud Front中的起源表示后端服务(即用于托管静态内容的S3存储桶或用于托管 Apps的应用程序)。 最后,您将创建一个行为,该行为将指示将某个URL模式的所有请求映射到特定的实例。 第一步,我们将所有请求(/ )映射到实例。 以后的步骤会将所有格式(/ api / )的请求映射到您的实例,其余的(/ *)将转到您的S3存储桶。 以下是用于创建行为的屏幕的图像。

图3_49961

创建RDS 实例并连接到

在此步骤中,我们创建一个可公开访问的RDS实例,然后从工具连接到该实例以创建数据库。 可以通过如下拉出step1分支来找到sql脚本和更新的代码: Git克隆 step1 。 可以在以下位置找到sql创建脚本: src / / sql / -DB-.sql 。

创建数据库后,可以使用以下命令使用maven重建项目:

_迁移系统到ssd后_itunes迁移app

mvn clean install

重新登录到您的控制台并重新部署最新的war文件。 您还需要将环境属性附加到实例,以便它知道在哪里可以找到您的数据库。 这可以通过单击“配置”,“软件配置”并将它们添加到“环境属性”中来完成。

如果重新加载应用程序,您将看到它现在正在从AWS中的数据库实例中提取产品。

创建一个S3存储桶并将静态内容部署到其中

在此步骤中,我们将创建一个S3存储桶,并将其“静态内容”(html,css,图像等)移至其中。 为了获得最新的代码,我们需要从git中提取最新的更改。 运行以下命令:

Git clone https://github.com/shannonlal/salesdemo step2

重新登录到 ,然后单击S3。 单击创建存储桶并创建一个新存储桶。

图5_49961

创建存储桶后,单击属性(右上角),然后单击静态网站托管以启用内容托管。 准备好S3存储桶后,您可以将项目的静态内容传输到S3。 要传输的代码在以下目录中:

web/build/prod/

更新Cloud Front以反映新的来源

我们将需要更新以将请求重定向到其适当的来源。 第一步将是登录并为新创建的存储桶创建一个。 创建原点后,您将需要修改行为,以便您的默认行为( )现在指向S3中的静态内容,并且您的API请求(/ api / )将重定向到您的 实例。 以下是对提出的建议更改的示意图。

图6_49961

重新部署应用

更新并将状态更改为已部署后 ,现在可以通过 URL访问S3中托管的静态内容。 剩下要做的就是重建销售演示应用程序并将其重新部署到中。 在此阶段,所有前端代码(html,js,css)已移至Web目录,后端功能位于目录中。 要重建应用程序,请在目录中运行maven命令。

mvn clean install

重新登录到控制台,并使用新的WAR重新部署您的应用程序。

对于希望将应用程序迁移到基于云的的任何人来说,上述架构都是一个很好的起点。 作为迁移的一部分,我建议您考虑合并API网关。 有一系列开源和可商购的API网关(亚马逊于2015年7月发布了他们的API网关, /等)。 API网关将位于与您的后端服务之间,并将处理身份验证和访问控制,并将您的请求重定向到适当的实例。 我在下面提供了API网关的图片。

图7_49961

翻译自:

app aws

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了