关注分享主机优惠活动
国内外VPS云服务器

容器、Docker、Kubernetes、Kyma 以及 Kyma 对 SAP 意味着什么

概要:该标准主要分为运行时标准和容器镜像标准。 注册事件后,使用微服务架构实现事件的侦听器使用者。

大家好。 今天我很高兴能分享一些有关 Kyma 的技术信息。 本次会议主要针对利用成都学院使用Java、Nodejs等技术栈开发微服务的同事。 对于在 ABAP Netweaver 中进行传统 SAP 开发的同事来说,本次会议可以拓宽您的视野。

这就是今天会议的主题:

•为什么是容器?

•容器与 Docker 的关系

•为什么是容器是 Kubernetes 吗?

Kyma 和 Kubernetes 之间的关系

• 现实示例:使用 Kyma 进行商业云扩展

Kyma 之前的容器、Docker 的基础Kubernetes 是因为 Kyma 是基于 Kubernetes 的,Kubernetes 是容器编排框架,而 Docker 是流行的容器运行时实现技术。 如果不提Kubernetes、Docker、容器,那些从来没有接触过这些概念的同事肯定会感到困惑。

让我们先看看容器。

据说每种技术都有使用场景和需要解决的问题。 那么为什么容器技术这几年变得这么流行呢?

得益于这几年微服务架构的流行,很多公司,包括SAP本身,还有很多团队的同事,我们都在开发新的基于微服务架构的应用程序。 对于基于微服务架构的SaaS软件开发,业界有一套标准,或者说最佳实践,著名的12-元素标准:

https://12factor.net/zh_cn/

容器是帮助开发人员以低成本开发满足这 12 条标准的微服务架构的工具。 云原生应用程序的技术。 例如,如本指南所述,应严格区分微服务应用程序的构建、发布和执行阶段。 应用程序通过一个或多个无状态进程运行,彼此隔离,并通过进程模型水平扩展。 这些都是通过容器技术实现的,容器技术很容易实现,无需向开发人员支付额外费用。

因此,必须牢记一个结论。 也就是说,容器使用场景始终与微服务架构、SaaS 和云原生应用程序紧密相关。

那么,集装箱到底是什么?

除了应用程序本身之外,还包括应用程序正常运行所需的运行环境、库文件等外部依赖项。

让我们想象一个现实世界的容器。 汽车从一个码头装入集装箱,然后通过货船运到另一个码头。

这里的汽车就像是应用程序,容器就是容器,将汽车装载到不同终端的容器中就类似于部署应用程序。

这是幻灯片上的第一项,对于运输物品来说是一个有用的包装概念。

开放规范:

注意容器!= Docker。 Docker只是容器技术的商业实现。

2015年,Google、Docker、CoreOS、IBM、微软、Redhat等厂商联手组建了开放容器倡议(OCI)组织,并推出了第一个开放容器标准。 旨在避免容器技术的碎片化。 该标准主要分为运行时标准和容器镜像标准。

隔离:容器隔离。 这很容易理解。 在容器内运行的应用程序是相互隔离的。 如果一个应用程序失败,其他容器不会受到影响。 可独立分割不要水平缩放。

可移植性:容器封装了运行应用程序所需的所有相关细节,例如应用程序依赖项和操作系统,使得将映像从一种环境移植到另一种环境变得更加灵活。 例如,您可以在 Windows 或 Linux、开发、测试和生产环境中运行相同的映像。 基于容器的应用程序既可以在开发人员的笔记本电脑上运行,也可以在云服务提供商的数据中心上运行。 真正实现一次构建,随处运行。

LightWeight:轻量级。 虚拟机和容器具有相似的用途。 两者都专注于解耦应用程序及其依赖关系,从而构建一组可以独立于任何特定环境运行的应用程序单元。 虚拟机使用物理服务器上的软件来模拟特定的硬件系统。 虚拟机管理程序位于硬件和系统之间,是创建虚拟机的必要部分。 虚拟机软件必须使用Hypervisor作为中间层,这是虚拟机技术的核心。 当主机操作系统启动虚拟机时,Hypervisor为虚拟机分配内存、CPU、网络、磁盘等资源,并加载虚拟操作系统。 因此,它会消耗主机上大量的物理资源。

在一台主机上运行的多个容器化应用程序共享主机操作系统的内核,因此不需要虚拟机技术的Hypervisor中间层,它是轻量级的。 量化和启动更快。

那么容器和Docker之间是什么关系呢?

前面说过,Docker只是一个基于. Docker 之于容器,就像 React、Angular 和 Vue 之于 UI 开发框架一样。

当我们谈论容器时,大多数人都会自动想到 Docker。 那么Doc​​ker是用什么来实现Docker的呢?

著名计算机科学家王英曾在他的博客上辩称Docker和Kubernetes并不是伟大的技术,我写过一篇文章对此进行了阐述。 从科学家的角度来看,这个结论并没有错。 因为Docker的底层实际上是从商业角度来看它是成功的,因为它很好地封装了 Linux 的许多原语。

以下是 Docker 封装的 Linux 系统原语的示例。 Jerry 是 SAP Docker 和 Kubernetes 培训课程的讲师之一。 本课程详细介绍了 Docker 如何使用这些原语来实现开放容器标准。

接下来介绍一下Kubernetes。 为什么部署 Docker 后还需要 Kubernetes?

结果表明 Docker 和虚拟机都可以在隔离环境中运行应用程序。 不同的是,Docker运行环境仍然可以与宿主机共享操作。 系统内核通过支付更多的主机系统资源来让虚拟机运行应用程序来构建一个完整的虚拟操作系统。

然而,Docker容器和虚拟机的许多特性,包括大型分布式集群上的容器部署、微服务应用程序中的容器管理和协作、自动水平扩展以及自动修复和弹性等方面仍然存在一些问题。解决。 伸缩等

这就是 Kubernetes 发挥作用的地方。 Kubernetes 于 2015 年 7 月推出,是 Borg 的开源版本,Borg 是 Google 内部使用多年的容器集群管理系统。 融合了Google多年来在容器编排领域的深厚专业知识,发布后不久就人气飙升,现已成为容器集群管理领域事实上的标准和冠军。

Kubernetes 源自古希腊语,意思是“舵手”。 有人开玩笑说,谷歌选择Kubernetes这个词表明谷歌希望在容器编排和管理领域发挥指导和领导作用。

Kubernetes 和 Docker 容器之间有什么关系?下图来自 SAP Kubernetes 培训课程的幻灯片。 这用于展示 Kubernetes 和 Docker 容器之间的关系。 我认为这是非常生动的。

容器运行不同的微服务应用程序与使用不同的微服务应用程序类似。音乐家演奏乐器,指挥站在中央,楼梯上有音乐家演奏乐器,这相当于 Kubernetes。

更准确地说,Kubernetes 管理的是 pod,而不是容器。 Pod 是一个或多个容器的集合。

至此,我们终于介绍了理解 Kyma 所必需的必备知识。

Kayma是什么?去年6月SAP C/4HANA正式发布时,这张图就刷遍了我们的朋友圈。

从幻灯片描述中可以看出,SAP Cloud Platform Extension Factory 是一个基于云原生微服务的流行创新敏捷平台。

那么Cloud Platform Extension Factory和括号中的Kyma是什么关系呢?

两者的关系类似于Open UI5和Fiori的关系。 Open UI5是SAP推出的开源UI开发框架和UI控件库,而Fiori是SAP基于Open UI5技术框架开发的商业产品(当然Fiori目前也是SAP推荐的UI)。风格)。 同样,SAP Cloud Platform Extension Factory 是基于 SAP 开源项目 Kyma 的商业产品,包含企业应用程序必须满足的几个标准(SAP 产品标准、特殊区域需求等),我们正在添加额外的功能和基于 的实现。 。

Kyma 对于 C/4HANA 意味着什么?我们的 CX CTO Moritz Zimmerman 在他的 LinkedIn 上发表了一篇博客,其中他还提到了 Kyma:

Kyma (SAP Cloud Platform Extension Factory)是SAP C/4HANA套件基于微服务架构的产品,成为每个人的集成扩展工具。

Kyma 基于 Kubernetes,因此我们花了很多时间介绍 Docker 和 Kubernetes。

那么 Kyma 是如何工作的呢?简单地说,它是观察者 - 发布者模式。

1. Kyma 可以通过应用程序连接器与 SAP C/4HANA 产品建立连接并注册事件。

2. 事件注册后,使用微服务架构实现事件监听器(消费者)。 这也是Kyma官网所说的:“开发者可以使用任何技术栈进行扩展开发”。 例如,在 SAP Commerce Cloud 中创建订单后,客户建议基于企业流程的特殊验证逻辑。 Commerce Cloud 发出“订单创建”事件,事件负载包含用于创建订单的字段。 我们开发并部署到 Kyma 的微服务监听此事件。 任何技术堆栈都可以用于微服务的内部实现。 Commerce Cloud 通过 HTTP 调用微服务,其中包含公司的自定义订单验证逻辑,并根据返回的验证结果执行操作。 后续处理。

观看实践演示,了解 Kyma 如何增强 SAP Commerce Cloud 的订单编排功能。

下图中的蓝色流程是通过 Kyma 对 Commerce Cloud 中的标准流程进行的增强,主要是在订单流程中添加一些验证检查。

登录到您的 Commerce 后台页面并定义新操作。

接下来,进入 Kyma 控制台页面。 :

选择一个阶段,点击Lambdas进入编辑页面:

新建Lambda函数创建``fraudcheck2' ”并将其命名为“fraudcheck2”。 :

p>

这个功能自动创建的标签对于 Kubernetes 老手来说应该很熟悉吧。 这些标签其实都和大家的实际工作相关云笔记中的标签与图片管理软件中的标签具有相同的功能。 这些键值对允许用户灵活地对 Kubernetes 对象进行分组以进行高效搜索。

函数触发器允许您指定哪些事件触发这些 Lambda 函数的执行。 定义好新的action后,选择第一步定义对应的事件:

Lambda函数的具体实现是做nodejs开发的朋友提供的,这就不多说了。不熟悉。

首先,第 18 行和第 19 行从事件输入参数对象中检索事件的订单代码,然后第 26 行使用 OCC(Omni Commerce Channel)Restul API 检索订单代码并获取详细信息。从细节开始订购。 然后,它调用第 30 行的代码根据客户 ID 检索客户详细信息,并使用第 37 行和第 40 行的代码检查客户的电子邮件地址是否有效以及客户是否已订购产品。 第一次。

请注意,我们将暂时注释掉代码的第 43 行和第 46 行,稍后再启用它们。

现在让我们测试一下。 在 Commerce 中下订单并记下订单 ID。

返回 Commerce Back Office 页面并查看您刚刚下的订单的业务流程。

请参阅此处的第一步:根据 Kyma 操作创建新的进程日志记录:

让我们回顾一下欺诈行为查看该订单的记录:

点击该欺诈报告即可查看检查结果。 这种从左到右的标签样式与 Fiori 和 ABAP Webdynpro 非常相似。

您可以查看上述邮件和确认结果,看看这是否是您的第一笔订单。

检查邮件后,客户的邮件地址有效。

接下来,返回 Kyma 中的 Lambda 函数编辑器,并重新启用之前注释掉的用于从 Marketing Cloud 检索联系人地址的函数以及用于调用 SAP Cloud Platform 中的业务合作伙伴服务的函数。

启用后,保存并进入服务目录。 该组件也是 Kubernetes 提供的标准组件。 Kyma 在此基础上构建,允许您导入第三方服务以与 Kyma 的 Lambda 函数一起使用。

接下来的步骤与在 SAP 云平台上使用服务类似。 首先,创建一个服务实例。

接下来,创建基于此服务实例的绑定。

将绑定类型设置为函数绑定。 目标设置为您之前编辑的 Lambda 函数。

再下一个订单:

现在将订购第二个订单的欺诈报告。 与一份订单相比,多了两条记录。

当我们首先查看第二条主检查记录时,得分为0,与预期结果一致。

检查 Marketing Cloud 服务返回的结果:

从 SAP Cloud Platform 上的业务合作伙伴服务返回。结果是下订单的客户没有对应的业务伙伴。

这是对如何使用 Kyma 为 SAP Commerce 产品提供订单履行支持的快速介绍。 感谢您的阅读。

获取更多Jerry原创文章,请关注公众号“王子熙”:

未经允许不得转载:主机频道 » 容器、Docker、Kubernetes、Kyma 以及 Kyma 对 SAP 意味着什么

评论 抢沙发

评论前必须登录!