SAP 云平台 (Cloud Platform) 架构概述

引言
在我们开始 SAP 云平台的架构之旅之前,让我们先看看 SAP 已经发布的一些其他云产品。这些云产品方案可以分为公有云和私有云两种。
SAP 公有云解决方案见下图最右侧,比较著名的有 SAP SuccessFactors 和 SAP Cloud for Customer(C4C)等,作为 SAP 软件即服务(SaaS)的解决方案。

以 SAP C4C 为例,软件应用和计算资源均由 SAP 提供,部署于 SAP 的数据中心,用户通过 Internet 来访问使用软件。所有 C4C 客户以不同租户(tenant)的方式共享 SAP 数据中心的软硬件资源。
而最左侧的 SAP HANA Enterprise Cloud,是 SAP 一个私有云平台。这个平台上能购买的方案最主要的就是 SAP S/4HANA(当然也有 Business Suite 等)。私有云的客户独享云上的资源。
从第一张图也能看到 SAP 的云解决方案使用了部分开源技术栈,比如 CloudFoundry,可以把它看成是 PaaS 的操作系统。
下面这张图有两个环形,最里面的环形包裹的是 SAP 核心业务应用,既有 On-Premise 的 SAP S/4HANA 又有基于 Cloud 的产品。
第二个环形,就是咱们 Partner 和客户大显身手的地方:通过 SAP 云平台,我们可以快速构建出轻量级的应用,和 SAP 核心业务应用做集成。

SAP 云平台能够帮助企业的数字化转型得更敏捷,更高效,更彻底。

SAP 云平台的架构概述
通过 SAP 云平台,您可以方便的扩展现有的 On Premise 和云解决方案,最大化利用您之前的投资。SAP 应用中心 Application Center 上有丰富的应用,可以下载并部署到 SAP 云平台上运行。

On-Premise 和 Cloud 解决方案可以通过 SAP 云平台连接起来。应用,数据和业务流程也通过 SAP 云平台成为数字化网格 Digital Mesh 的一个个节点,从而消除了信息和数据孤岛。
借助 SAP 云平台您可以尝试将发展迅猛的最新技术集成到 SAP 传统产品中,比如机器学习,物联网,区块链服务等等。


先从下图底部黄色区域的基础设施层 Infrastructure Layer 讲起。为什么在这张图里能看到其他的云平台提供商,比如 Amazon,Microsoft 和 Google?

这就要从 SAP 云平台的编程环境说起。打开 SAP 云平台 Cockpit,在 Region 标签页内能发现:Neo 编程环境的底层基础设施由 SAP 自己提供,而 CloudFoundry 编程环境的底层基础设施由其他公有云基础设施提供商提供。

这两种编程环境的具体区别,请参考我的另一篇文章:SAP云平台运行环境Cloud Foundry和Neo的区别。
SAP 云平台对 Kubernetes 的支持
SAP 云平台的特色之一,就是通过 Kyma 运行环境,间接提供了对 Kubernetes 平台的支持。
基于 Kubernetes 的容器编排技术近年来已经成为行业里最流行的云原生应用开发范式之一。SAP 云平台的 Kubernetes 编程环境提供了一种简易,安全,基于业界标准的方式提供了对 Kubernetes 集群的创建和管理,这种方式基于 Cluster-as-a-Service(集群即服务)的方式运作,能运行在多种底层云技术设施上,解决了开发人员需要花大量时间学习 Kubernetes 底层细节的痛点。
这种 Cluster-as-a-Service 的服务,SAP 通过开源项目 Gardener 提供访问:https://gardener.cloud/

SAP 云平台对 ABAP 编程环境的支持
对于以前在 ABAP On-Premises 环境进行二次开发的 ABAP 顾问来说,SAP 云平台 ABAP 编程环境,给这些顾问们提供了一种新的在云端进行二次开发的选择。
笔者之前的文章,曾经提到过一个很有用的 CDS view 注解:
@OData.publish: true

加上这个注解的 CDS view,一旦激活后就会在 ABAP Netweaver 自动生成一个 OData 服务,在事务码/IWFND/MAINT_SERVICE 里将其搜索出来并添加,就能够以 OData 服务的方式,消费这个 view 暴露出来的数据了。

那么到了 SAP 云平台 ABAP 环境上,因为我们无法访问 SAP GUI,所以要实现同样的效果,无法直接照搬上述步骤。幸运的是,在云上进行 CDS view 暴露的步骤依然简洁,整个过程 5 分钟就能搞定。
用 ABAP Development Tools 像登录 On-Premises ABAP 系统那样登录 ABAP 云环境,新建一个 Service definition:


在 Service 的实现体里,使用关键字 expose 将 ABAP 环境里的标准 view,I_Currency 以 Service 的方式暴露出来。

这个 Service 需要以 Service Binding 的方式暴露成 OData 服务:

把第一步创建的 Service 分配给这个 Service Binding:

注意下图右边的 Service Details 标签页里,此时是空的。点击 Publish 按钮:

发布成功后,我们看到了之前在 Service 实现里把 I_Currency 暴露成的名为 Currency 的实体:

对这个 Currency Entity 点右键,选择 Open Fiori Elements App Preview,就能在预览模式下通过一个标准通用的 Fiori Elements 应用把当前系统上 I_Currency 里的数据显示出来:


点击这个 Service URL 超链接,也能直接打开对应 OData 服务的元数据(metadata)链接:

至此我们就可以用各种消费端来使用这个通过 I_Currency 暴露成的 OData 服务了,当然也可以开发一个 SAP Fiori 来消费这个 OData 服务。
SAP 云平台的账号分配和服务管理
本章节内容通过一个实际的例子,给大家介绍如何在 SAP 云平台里开启 Process Integration 服务。
在云平台控制台里,给 global Account 分配 Integration Suite 下面的 Process Integration 的 API 和 Runtime 两种服务:

Process Integration Runtime,分配一个 integration-flow 实例:



然后在 SaaS application 里,选择 integration Suite 下面的 Process Integration Production:


最后在 subaccount 的 Subcription 页面里,就能看见 Process integration 的 SaaS 应用了。点击 Subscribe 即可订阅:

总结
本文首先介绍了市面上一些常见的 SAP 公有云和私有云的解决方案,接着展开对 SAP 云平台架构的介绍,主要提及了云平台两个特色,即对 Kubernetes 和 ABAP 编程环境的支持,重点讲解了在云平台 ABAP 编程环境将 CDS view 暴露成 OData 以及开启 Process Integration 服务的步骤。
版权声明: 本文为 InfoQ 作者【Jerry Wang】的原创文章。
原文链接:【http://xie.infoq.cn/article/8805f00b867c779d4140bb62b】。文章转载请联系作者。
评论