本文可能是国内第一篇介绍C/4HANA Foundation的中文博客
SAP C/4HANA从去年发布已经过去了一年多的时间,C/4HANA的从业者,对于这五朵云里包含的产品集,想必都有了一些了解。
Jerry注意到,SAP C/4HANA Foundation这个概念,在英文的SAP博客里已经被广泛提及,然而缺乏谈论它的中文博客。因此Jerry就来贡献一篇。

SAP C/4HANA的从业者都知道,这五朵云里包含的产品,有的是SAP自研产品,比如后台基于ABAP Netweaver的Marketing Cloud和Cloud for Customer,有的则是近些年来SAP收购的技术栈和架构各异的产品。
C/4HANA从功能上说满足了客户对Customer Experience领域的核心诉求,然而在C/4HANA强大功能的背后,其产品集技术栈和架构各异,再加上C/4HANA云产品的特性,使得C/4HANA的客户,无法再像过去使用基于传统ABAP Netweaver的产品那样进行实施。

Jerry在本科上《操作系统》专业课时,就学到了这样一句来自软件工程大师,David Wheeler的名言:计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。

SAP C/4HANA的架构师们也遵循了这个原则——在C/4HANA五朵云和使用者之间,增加一个技术层,通过这个额外的抽象层,降低客户使用C/4HANA的复杂度,同时提高了C/4HANA的开放性和可扩展性。

SAP社区上介绍C/4HANA Foundation的博客,使用了大家熟悉的酒吧里的一个场景。客人到酒吧喝酒,想听不同风格的音乐。酒吧DJ根据不同客户的需要去打碟(接歌混音等)。
用这个例子来类比,去酒吧喝酒听歌的客人就是SAP C/4HANA的客户,酒吧音响播放的碟片就是C/4HANA五朵云,DJ就是C/4HANA Foundation,二者的职责都相同——把不同的碟片音乐(五朵云)进行编排(orchestration), 最后让客户以一种统一的方式去使用。

具体到C/4HANA Foundation,SAP希望这个技术层完成的使命有:
- 给客户提供一个坚实的基础设施,能根据自己的实际业务快速实现对应的业务模型;
- 给客户提供一个统一的管理C/4HANA五朵云异构复杂性之处,降低使用者的学习和运维成本。

C/4HANA Foundation的组成部分
根据Thomas Hertz今年5月6日在SAP社区和领英社区上发表的博客Introducing SAP C/4HANA Foundation, 目前C/4HANA Foundation包含C/4HANA cockpit和SAP Cloud Platform Extension Factory.
这两个模块,共同实现了SAP官方文档上描述的C/4HANA的三大功能管理,即授权管理,安全管理和扩展管理。
C/4HANA cockpit
用过SAP Cloud Platform cockpit的朋友,可以进行类比——C/4HANA cockpit是一个基于浏览器的控制台,为C/4HANA的使用者提供了访问系统的统一入口。

客户一旦购买了位于SAP C/4HANA套件中指定的产品后,会自动获得C/4HANA Foundation cockpit的使用权。

这个单子的明细在SAP官网上能看到:


客户购买上述清单里包含的C/4HANA Suite产品后,会触发SAP对C/4HANA Foundation的配置流程。该流程结束后,购买合同中指定的用户邮箱会收到一封欢迎邮件,包含了C/4HANA cockpit的地址。
C/4HANA cockpit的Administrator登录cockpit,进行授权管理,分配用户权限,创建Extensibility运行时等工作。

上面的流程图,最后一列展示了使用C/4HANA Foundation给Administrator和开发者带来的便利。
Jerry之前的公众号文章,曾经介绍过SAP Cloud Platform Extension Factory和Kyma的关系,后者是SAP推动的一个基于Kubernetes的开源项目,而前者是SAP在后者基础上打造的一个企业级商用解决方案。
企业级应用和开源项目的一个区别,就在于安全性和易用性。在Kyma的项目主页上,维护了详细的如何在本地安装基于Minikube的单机版Kyma,以及在GKE(Google Kubernetes Engine)和AKS(Azure Kubernetes Service)等集群上安装这两种部署方式。然而Kyma是由包括Kubernetes, Istio, Dex, Prometheus等开源项目组合而成,安装过程中不可避免地会遇到各种各样的错(Jerry的亲身体验)。

而使用C/4HANA Foundation之后,我们只需要事先将运行了Kubernetes集群的GCP或者Azure和C/4HANA Foundation配置成互相信任,然后可以使用C/4HANA自带的运行时配置功能,一键完成Extension Factory的配置步骤。

目前在SAP应用中心上,已经有16个解决方案,标注为通过SAP Cloud Platform Extension Factory开发而成。
希望本文能帮助大家对C/4HANA Foundation这个概念有个最基本的认识,感谢阅读。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":

本文可能是国内第一篇介绍C/4HANA Foundation的中文博客的更多相关文章
- Java并发包下锁学习第一篇:介绍及学习安排
Java并发包下锁学习第一篇:介绍及学习安排 在Java并发编程中,实现锁的方式有两种,分别是:可以使用同步锁(synchronized关键字的锁),还有lock接口下的锁.从今天起,凯哥将带领大家一 ...
- spring cloud系列教程第一篇-介绍
spring cloud系列教程第一篇-介绍 前言: 现在Java招聘中最常见的是会微服务开发,微服务已经在国内火了几年了,而且也成了趋势了.那么,微服务只是指spring boot吗?当然不是了,微 ...
- 国内首篇介绍JanOS物联网操作系统的文章 - 如何把你的手机主板打造成物联网平台
天地会珠海分舵注:如无意外,您现在正在看的将是国内首篇且是唯一一篇介绍炙手可热的物联网的操作系统JanOS的文章!不信你去百度!希望大家能喜欢.但本文只是引言,更多信息请还是访问JanOS的官网:ht ...
- 国内第一篇详细讲解hadoop2的automatic HA+Federation+Yarn配置的教程
前言 hadoop是分布式系统,运行在linux之上,配置起来相对复杂.对于hadoop1,很多同学就因为不能搭建正确的运行环境,导致学习兴趣锐减.不过,我有免费的学习视频下载,请点击这里. hado ...
- 第一篇博文:PHP函数原型中的可选参数写法为什么这么写?
第一篇,算是开始吧.简单写点儿东西. 刚开始学PHP,在看PHP Manual时遇到一个问题:含可选参数的函数原型中,可选参数的写法看不懂. 例如explode函数 array explode ( s ...
- 可能是国内第一篇全面解读 Java 现状及趋势的文章
作者 | 张晓楠 Dragonwell JDK 最新版本 8.1.1-GA 发布,包括全新特性和更新! 导读:InfoQ 发布<2019 中国 Java 发展趋势报告>,反映 Java 在 ...
- Orchard详解--第一篇 介绍
Orchard是一个开源的内容管理系统(CMS),它提供了简单的向导式的安装方法,用于快速建站(如WordPress).对于.Net的开发者来说,Orchard有更好的学习价值,所以本系列文章将对Or ...
- [转] git config命令使用第一篇——介绍,基本操作,增删改查
平时我们在使用git的时候,很少去关注其配置是如何,而在实际开发中,对git config这个命令的使用也并不是很多,但是配置对一个程序和项目来说都是很重要的,我们今天来看看git的配置以及git c ...
- MySQL学习【第一篇介绍】
一.数据库mysql的特点 1.首先数据库分为RDBMS(关系型数据库),和NOSQL(非关系型数据库),而我们的mysql则是RDBMS. 2.RDMS和NOSQL特点对比 RDBMS特点: (1) ...
随机推荐
- java IO 文件批量重命名
java IO 文件批量重命名 package com.vfsd.renamefile; import java.io.File; import java.io.FileInputStream; im ...
- 让Chrome浏览器抓包接口数据秒变 python 代码
简介 uncurl是一个库,允许您将curl请求转换为使用requests 的python代码.由于Chrome网络检查器具有的“copy as cURL”,因此该工具对于用python重新创建浏览器 ...
- 一份 Tomcat 和 JVM 的性能调优经验总结!拿走不谢
Tomcat性能调优 找到Tomcat根目录下的conf目录,修改server.xml文件的内容.对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创建 ...
- 微信小程序技巧记录
1.直接在app.json中添加pages,会自动按照路径生成page目录文件: 2.动态修改样式: /** * 页面的初始数据 */ data: { authorInfo: [], article: ...
- 【Leetcode_easy】1051. Height Checker
problem 1051. Height Checker solution class Solution { public: int heightChecker(vector<int>&a ...
- Python扫描器-端口扫描
结合渗透测试最常见就是单个域名扫指纹,自动子域名查找.获取所有子域名的IP,自动C段IP查找相同子域名,利用有效IP扫端口. 常见端口库扫描 service_list = { 21:"FTP ...
- Python爬虫-爬取豆瓣图书Top250
豆瓣网站很人性化,对于新手爬虫比较友好,没有如果调低爬取频率,不用担心会被封 IP.但也不要太频繁爬取. 涉及知识点:requests.html.xpath.csv 一.准备工作 需要安装reques ...
- {"aa":null} 如何能转化为 {"aa":{}}
一个同事问的一个功能需求:{"aa":null} 如何能转化为 {"aa":{}}因为需求暂时不明确,暂时先完成这样的转换.使用的是FastJson1.2.7 ...
- samtools获取uniq reads
参考地址: https://www.biostars.org/p/56246/ -q INT only include reads with mapping quality >= INT [0] ...
- poj3348(求凸包面积)
题目链接:https://vjudge.net/problem/POJ-3348 题意:转换题意后即是求凸包的面积. 思路: 套模板,求凸包面积即转换为多个三角形面积之和,用叉积求,然后除2,因为本题 ...