云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

微软云_阿里云免费证书申请_速度快

小七 141 0

本博客概述了我们将运行在SAP云平台Neo environment(Neo)上的单一应用程序(如企业销售和采购模型(ESPM)和SAP HANA交互式教育(SHINE))迁移到运行在SAP云平台上的基于微服务的应用程序的经验,Cloud Foundry环境(Cloud Foundry)并重点介绍了我们在这一过程中学到的一些经验教训。

有关将单片应用程序重构为微服务的一般概述和建议,看看SAP云平台应用程序适应Cloud Foundry环境指南的最佳实践。

将单片应用程序转换为微服务是应用程序重构的一种形式,其中应用程序功能预计将保持不变,但会带来微服务的优势。

我们的团队进行了重构两个应用程序,每个应用程序使用不同的方法。我将向您展示我们对这些应用程序所做的工作,并分享我们从经验中学到的知识。

ESPM应用程序是一个参考应用程序,大数据存储技术有哪些,演示如何在SAP云平台的Neo环境中构建应用程序并将其部署到Java运行时。

ESPM Monolith架构

迁移策略:公共代码库

到快速地将这个应用程序转换成基于微服务的应用程序,我们选择应用一个通用的代码库方法。我们决定拆分前端和后端代码。这种方法并不新鲜,因为Neo环境已经支持在HTML5容器中独立部署前端,在Java运行时容器中独立部署后端。

这个打包为javawebarchive(war)的应用程序在同一个javaweb项目中有Java后端实现和静态web页。我们的第一步是将其分成两部分:

除了拆分应用程序之外,整个体系结构的两个新的重要部分包括应用程序路由器(AppRouter)组件和用户帐户和身份验证服务(UAA)。

应用程序没有使用任何本机SAP HANA功能,因此我们转向PostgreSQL是一个开源关系数据库,默认情况下在CloudFoundry上可用。因为Java持久性API(JPA)用于持久性,所以从Neo中的SAP HANA转移到Cloud Foundry中的PostgreSQL数据库更容易,因为只有数据库配置和驱动程序发生了变化。

ESPM微服务架构

重构ESPM的步骤

批准者构成了一个单一的切入点基于微服务的体系结构。XS高级编程模型的常见建议是将静态web内容打包到approver本身。这导致AppRouter和web模块作为单个微服务运行,新零售企业应用中心,构成前端。除了路由,您还必须配置approver将身份验证和授权委托给UAA,这样单个微服务就不必处理这方面的问题-应用程序.json文件包含从web模块到java后端的请求的路由信息。审批者使用此文件向后端发送请求、验证用户等。

Neo环境使用Java命名和目录接口(JNDI)绑定,而Cloud Foundry使用服务绑定;因此必须相应地调整代码。各种开源库,如Spring Cloud Connectors可以提供帮助。

使用SAP Java buildpack或Spring security库提供的集成容器身份验证。

应用程序清单告诉Cloud Foundry要创建多少实例,以及要为应用程序提供的服务分配多少内存应使用。

迁移的ESPM应用程序可在Github中找到

学习

将简单应用程序从Neo迁移到Cloud Foundry需要最少的步骤。我们无法迁移完整的应用程序,因为在CloudFoundry环境中缺少诸如文档服务之类的服务。我们使用运行在Neo上的代理应用程序在Cloud Foundry中使用Neo提供的文档服务。

SAP HANA Interactive Education(即SHINE)是一个演示应用程序,可以轻松了解如何在SAP HANA extended application Services的高级模型上构建应用程序。SHINE的第一个版本于2012年首次随SAP HANA 1.0 SPS05提供,是一个使用XS JavaScript开发的单片应用程序。当高级模型可用时,原始应用程序被重构以在其上运行,Cloud Foundry

迁移策略:重构到微服务

我们选择这种方法是因为我们希望重用XS JavaScript代码的一部分,并且可以自由地为每个微服务选择最合适的编程语言。我们以迭代的方式迁移应用程序:经过四次迭代,才与原来的单片SHINE应用程序达到功能对等。

重构SHINE的步骤

我们将模块拆分,以便将类似的业务功能组合在一起,大数据分析应用,并为每个微服务选择最合适的编程语言。例如,我们实现了数据生成器模块,用于生成事务数据(采购订单和销售订单),网云服务器,在节点.js利用编程语言的异步特性。

现有的数据库设计时工件大部分被重用,只做了一些小改动,需要从所有工件中删除模式引用。

SHINE Monolith体系结构

SHINE Microservices体系结构

迁移的SHINE应用程序可以在Github

学习

从monolith迁移到microservices的迭代方法提供了获得经验和改进的机会。代码重用是有机会的。