总结:小时候,我听过牛顿的谦逊之言。 如果说我比别人看得更远,那是因为我站在巨人的肩膀上。 。 发出带有字段的事件来创建订单。
本周,Jerry参加了SAP上海研究院为期四天的Kubernetes培训,度过了忙碌而富有成效的四天。 Jason、Benny 和 Penn 提供的培训充满了有用的信息。 Jerry借此机会近距离接触了他的两位老领导Patrick和Evan,还结识了上海SAP圈子的几位知名人士。 我在网上听说过这位名人的名字已经有一段时间了,但这一次我终于能够见到他本人了,我的愿望实现了。
为什么 SAP 内部也提供 Kubernetes 培训? Kubernetes 于 2015 年 7 月推出,是 Google 内部使用多年的容器集群,它是一个开源版本。管理系统博格。 融合了Google多年来在容器编排领域的深厚专业知识,发布后不久就人气飙升,现已成为容器集群管理领域事实上的标准和冠军。
Docker 的标志以“可爱”着称,就像一头鲸鱼在 IT 世界的海洋中自由游动,携带着软件镜像的容器。
Kubernetes 徽标体现了 Google 这家老牌 IT 公司的智慧和伟大。 Kubernetes 来自古希腊语,意思是“舵手”。 谷歌的意图很明确。 Kubernetes是Google在云时代容器编排和管理方面的舵手和领导者角色,引领着整个IT世界。 反映。
回到SAP,作为一家向云迁移的软件公司,据Jerry了解,SAP内部很多开发团队目前正在进行持续的一体化。 持续交付流程和系统已迁移到 Kubernetes。 Kubernetes先进的自动化和高可用性极大地简化了SAP基于微服务架构的产品开发团队的交付流程,并显着减轻了运维人员的工作量。 Kub 与 SAP 内部支持ernetes的使用还催生了Jason Gu、Benny Gu、Peng Wang(排名不分先后)等Kubernetes技术专家。
Kubernetes 只在 SAP 中使用吗?当然不是。 Jerry之前的文章介绍了SAP云平台上的Neo和CloudFoundry编程环境。
使用Java+SAP Cloud Platform Neo环境+SAP Cloud Connector调用ABAP On-Premise系统中的函数
p> p>
SAP Cloud可用性ABAP On-Platform的CloudFoundry环境中的Premise OData服务
目前(2018年11月),当你打开SAP Cloud Platform官网时,你会发现这样一条新闻:
https ://cloudplatform.sap.com...
根据网页提供的信息,Kubernetes也将是计划支持的运行环境之一SAP 云平台。 之前由SAP合作伙伴在Kubernetes容器集群上部署和运行的应用程序可以通过另一个开源工具Gardener轻松迁移到SAP云平台上的Kubernetes环境。
园丁的主页也很有趣。 口号是“Kubernetes Botanist”。 Jerry尝试利用Gardener提供的一站式服务制作原型。 专用 Kubernetes 集群当然非常有用。 其简单的步骤可以保护应用软件开发人员不受 Kubernetes 集群的底层结构和配置细节的影响,并允许他们在短短几分钟内获得一个现成可用的 Kubernetes 集群。
Kubernetes-As-A- 服务与其口号一致,Gardene 的“植物学家”。r就像一位勤奋的园丁,在全世界Kubernetes新手的笔记本电脑上种下Kubernetes集群的种子。
https://gardener.cloud/
除了SAP内部已经使用Kubernetes的产品的持续集成和持续交付之外。要知道,除了增加对 Kubernetes 的支持之外,SAP 还发布了至少一款基于 Kubernetes 的产品:Kyma。
当杰瑞还是个孩子的时候,他听到了牛顿谦卑的话。 “如果我比别人看得更远,那是因为我站在巨人的肩膀上”。 我当时只是在听。 今年早些时候,我在对 Kubernetes 一无所知的情况下被介绍给 Kyma,所以当时我完全困惑了。 听完SAP上海学院三位老师讲授的Kubernetes培训课程后,我回头看了看Kyma,突然明白了牛顿当时这句话的含义。
Kyma是另一个SAP开源项目,源自希腊语中的wave(水波,波,注意照片中Kyma官网的水波标志) ,囧),Jerry个人猜测这意味着SAP想要使用Kyma。 如何在已经动荡的云原生开发世界中掀起新的浪潮?
根据 Kyma 官网的描述,Kyma 是一个基于 Kubernetes 的企业软件扩展平台,允许您使用无服务器/微服务架构扩展本地或云应用程序。
https://kyma-project.io/
在阅读大量SAP C/4HANA宣传材料时,我注意到下图在介绍SAP C/4HANA的五种云时出现了另一个术语。,SAP 云平台扩展工厂。 Kyma 和 SAP Cloud Platform Extension Factory 之间的关系类似于 Open UI5 和 Fiori 之间的关系。 Open UI5是SAP推出的开源UI开发框架和UI控件库,而Fiori是SAP基于Open UI5技术框架开发的商业产品(当然Fiori目前也是SAP推荐的UI)。风格)。 同样,SAP Cloud Platform Extension Factory 是基于 SAP 开源项目 Kyma 的商业产品,包含企业应用程序必须满足的几个标准(SAP 产品标准、特殊区域需求等),我们正在添加额外的功能和基于 的实现。 。
Jerry 目前在 SAP 客户体验部门的团队中工作。 该部门的 CTO Moritz Zimmermann 在 LinkedIn 上发布了一篇博客,其中还提到了 Kyma:
https://www .linkedin.com/puls...
https://www .linkedin.com/puls...
>
这个博客也是由 Mortiz 为您带来的。 提出了重要建议。 Kyma(SAP云平台扩展工厂)成为SAP C/4HANA套件中所有微服务架构产品的集成扩展工具。 未来。
Kyma到底有何强大之处,可以同时满足SAP C/4HANA的五云扩展需求?我们来看看Kyma官网是怎么说的。
作为一名开发人员,我发现 Kyma 的介绍上面的段落最吸引人,甚至比 Jerry 强调的内容还要吸引人。 “Kyma 允许开发人员使用与要扩展的原始应用程序无关的技术堆栈来扩展应用程序。”yma 是如何运作的? 我们用一个具体的例子来解释一下。
这些年出现了很多新的术语,比如容器、Kubernetes、Gardener、Kyma,这些对于在 Netweaver 中进行二次开发的小伙伴来说可能比较陌生,所以我们把它们收录在这里。看一个众所周知的场景。 举个例子。
假设你有这样的数据同步需求。 每当在 SAP Cloud for Customer (C4C) 中创建或修改销售订单时,订单都会同步到 S/4HANA。
对于这种多个SAP产品之间的数据同步需求,SAP推荐的方案是使用SAP PI或者SAP HANA Cloud Integration作为数据同步的中间件就可以了。
由于本文是关于 Kyma 的,Jerry 提出了第三种解决方案。
C4C系统提供了所谓的OData事件通知机制。
下图中的设置页面代表业务创建和更新事件。 销售订单的目标。 定义发布机制:当生成新的销售订单或修改现有销售订单时,C4C 自动通过您定义的 OData 服务 zjerrysalesorder 向这两个事件的侦听器发出事件。
事件监听器或消费者通过以下接口注册。 我在S/4HANA系统A6P/213上开发了Restful API。 负责接收C4C系统下发的销售订单销售订单事件。 根据C4C Odata提供的数据在S/4HANA中创建销售订单。 这是另一种轻量级的数据同步解决方案。
该解决方案的核心是发布者/订阅者模型。 事实上,这正是Kyma的扩展原理。
1. 通过应用程序允许 Kyma 与 SAP C/4HANA 产品建立连接并注册事件的连接器。
2. 事件注册后,使用微服务架构实现事件监听器(消费者)。 这也是Kyma官网所说的:“开发者可以使用任何技术栈进行扩展开发”。 例如,在 SAP Commerce Cloud 中创建订单后,客户建议基于企业流程的特殊验证逻辑。 Commerce Cloud 发出“订单创建”事件。 事件负载包含用于创建订单的字段。 我们开发并部署到 Kyma 的微服务监听此事件。 任何技术堆栈都可以用于微服务的内部实现。 Commerce Cloud 通过 HTTP 调用微服务,其中包含公司的自定义订单验证逻辑,并根据返回的验证结果执行操作。 后续处理。
这样,Kyma用于二次开发的微服务就与SAP标准产品分离了。 您可以将此与 ABAP Netweaver 的传统流程扩展方法业务加载项 (BAdI) 进行比较。 后者还允许您实现扩展逻辑和标准产品之间的分离,但 BAdI 扩展逻辑和 SAP 标准逻辑运行在同一台物理机上的同一个 ABAP 会话中。 当涉及到 Kyma 中的扩展方法时,标准产品使用 HTTP 调用来消费包含部署在 Kyma 中的扩展逻辑的微服务。 以网络调用为代价,您可以免费享受Kyma底层Kubernetes提供的无服务能力。 额外的工作负载确保增强的高可用性、高扩展性以及节点处理能力的高扩展性。
3. 为了让应用程序开发人员真正专注于开发增强逻辑,Kyma 还引入了 Lambda 函数的概念。 使用 JavaScript ES6 的箭头函数和 Java 8 的 L使用 ambda 表达式和函数式接口的朋友会熟悉这个概念。
Kyma Lambda 函数消除了应用程序开发人员从头开始实施微服务的需要。 Kyma 通过输入参数自动将 SAP 标准产品发布的事件和上下文注入到您的 Lambda 函数中。 所有扩展逻辑现在都包含在您的 Lambda 函数中。
下图最上方是一个基于nodejs实现的Kyma Lambda函数。 底部部分是完全等效的ABAP SICF服务实现。 Kyma的event.extensions.request和response分别对应ABAP。 服务器->请求和服务器->响应。
调用 Lambda 函数后,您可以作为消费者直接绑定事件,并通过 Kyma 的事件总线模块触发事件,为您的 SAP 产品提供支持。 当然,Kyma 是基于 Kubernetes 的,所以你可以直接使用 kubectl create -f 创建服务并将其绑定到事件,或者使用 Service Broker 连接第三方服务也可以导入它们。 。 消耗。
我们希望本文能让您对 Kubernetes 和 SAP Kyma 之间的关系有一个概念性的了解。 感谢您的阅读。
更多信息
SAP云平台Kubernetes环境:
https://cloudplatform.sap.com...
p>
使用 Java 程序使用 SAP Leonardo 机器学习 API
使用 Java+SAP Cloud Platform+SAP Cloud Connector 访问 ABAP On-Invoke 系统中的功能
使用JDBC与SAP云平台上的HANA数据库配合使用
使用如果访问 SAP Cloud Platform 上的服务时遇到 JavaScript 跨域问题该怎么办
在 SAP Cloud Platform 上的 CloudFoundry 环境中使用 ABAP On-Premise OData 服务
SAP数据中心概述
更多Jerry原创文章,请关注公众号“王子熙”:
评论前必须登录!
注册