SAP Business Technology Platform (BTP)的架构明白

张春  论坛元老 | 2024-6-11 09:56:07 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1589|帖子 1589|积分 4767

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
恒久以来,我在与客户和伙伴的沟通互换中发现大家依然对SAP业务技能平台 - SAP Business Technology Platform (以下简称BTP)纯有各种疑惑,借此时机借助我原来作为SAP内部IT开发的经验和近期一年来在客户火线的经验,扼要聊一下我对BTP的架构明白,盼望能对读者有所帮助。
一些简单的历史


BTP原来叫SCP - SAP Cloud Platform,甚至更早叫做SAP HANA Cloud Platform,以是从名字的变更中可以发现,SAP的初衷是将其从单纯的内存数据库业务变更到融合各种技能栈的云平台服务,但是SAP并不是一个纯技能公司,其精华在于依托各种生产现实中的业务流程,数据流转和计划预算等,以是最终将名称定为“业务技能平台”,意思就是说首先这是个平台,其次是这个平台上有各种技能,这些技能用以服务企业业务。

最开始的时间SAP本身提供底子算力,以是可以常常听到BTP的历史版本叫做NEO,用以区分现行底层依靠第三方互助伙伴如Azure,AWS,GCP和阿里云的最新版本Cloud Foudry(简称CF),这都在肯定程度上体现了在数字云时代的快速变更对SAP的管理运营决策的影响。

迄今为止,BTP已经形成了十份稳固的运营和扩展架构,对于SAP的云转型起到十分重要的前沿阵地和粘合剂作用。其本身作为平台对企业并没有直接价值,而是上边的90多个云服务才是企业费钱订阅和一样平常使用的精华所在。这里需要指出的是,中国大陆由于种种缘故原由,这90多个服务现在还并不能全部使用,以是有些客户和互助伙伴大概简单的认为BTP=CPI,是由于仅仅订阅了此中一个服务即SAP集成套件。具体有哪些服务可以使用,可以参考SAP Discovery Center,该网站非常清晰地对这90多个服务分类成几大类:应用开发和自动化,数据和分析,集成,底子服务等,点击每一个磁贴都可以看到每个服务的具体信息。



 
架构解读


上边提到BTP作为平台本身并没有直接价值,那么为什么还需要这个平台呢?我们试想如果不这样做的话,会出现以下这些效果:


  • 这些90多个服务每次从开发到使用都各自独立为战,不仅对SAP开发流程和速度都是极大浪费,另外还对客户的使用造成很大负担,由于很大概每个服务都有本身的激活方法和使用环境,对于用户体验可以说是十分糟糕的体验。
  • 在办理方案的分类上会让SAP的产物十分分散,无法让客户形身分门别类的同一认知好比那一类服务是用来办理数据题目,哪一类是用来办理流程题目,哪一类是用来办理开发题目等。
  • 在底层角色权限认证,到ERP系统的毗连共享等都要各自独立开发,这些服务之间也很难直接通信,每次开发新的服务都要重新做起,无法使用现有资源。

     

而BTP的架构就是用以办理上述题目。
如果是第一次接触BTP,大概率是从邮件中拿账号和激活密码然后登陆BTP的主控室(cockpit)开始,说的直白点就是总的利用台,点击左侧这些菜单按钮,会在右侧展示详情,看起来十分简单对吧?




但是现实上后边有很多让初学者疑惑的概念,好比什么是Entitlement(官方中文翻译叫做”权利”,意思就是说我作为客户有哪些服务购买了大概免费使用),如何添加新的用户Role,如何配置到S4本地系统的毗连,为什么存在全局账户,子账户,甚至子账户下边还有空间(Space)账户?诸云云类题目,很容易迷失在各种手册和配置中无法自拔,那么下面我就试着从全局层面解释下为什么会有这些计划。

首先看这张图,这是我基于本身的明白绘制的一张简单架构图,我们按照次序解释。



 
1. Identity Authentication Tenant


这是个免费服务,如果没有的话可以通过开SAP Ticket申请,有时间也常常简称为IAS - Identity Authentication Service。该服务严格意义上并不属于BTP上的服务,而是SAP为了自家的云产物能更好的互联,单独开发的一个进行身份认证的服务。你可以将常见的微软认证数据接入IAS,使用现有用户数据和权限,实现SAP云产物的无缝登陆,你也可以在上边进行从0到1的用户创建填充,重度依靠IAS实现SAP云产物的用户管理。

但是对于很多中国大陆的客户来说,由于他们只订阅了此中一个服务好比SAP集成套件,并没有其他SAP办理方案好比SAP人力资源大概采购报销等云产物,往往直接忽略这一部门,而使用BTP自带的default默认SAP IAS来增减管理用户,这相当于用户数据是在SAP这边而不是在用户自创建的IAS Tenant上。固然,这里需要指出的是,由于中国大陆的特殊性,数据并不是保存在SAP而是保存在SAP在中国大陆的运营代理公司中,而这也是很多客户在注册以及增加其他BTP用户的时间发现会在这种地点,https://awmtxn6rh.accounts.sapcloud.cn/,这个地点就是BTP在中国大陆的同一IAS默认地点。

从上边的架构图中可以看到,IAS在用户通过欣赏器登陆BTP上的服务的时间起到非常关键的鉴权作用,只有该用户有充足权限才华访问BTP上的指定服务,要么在BTP上进行开发工作,要么本身就是终端用户使用BTP上袒露的服务。结合方法也不困难,SAP社区论坛有不少资料,其最直接的反应就是在上边BTP主控室的截图左侧可以看到Trust Configuration中多了一个自创建的IAS而不仅仅是default的了。

IAS创建以后是个独立地点,打开以后长这样,上边有各色贴心登陆功能可以探索。




 
2. Connectivity & Destination


这是BTP上非常重要的组成部份,要明白BTP的架构就肯定要知道这个东西,说白了就是个代理,很多服务都要通过该组件进行互联互通。如果你对BTP上的各种服务创建和使用比较熟悉的话,就会感受BTP产物团队的计划理念,就是我只需要在BTP维护这些毗连信息,然后各种服务都可以再次复用它们,只要在服务中指定一下就行了,好比在SAP Build Apps里就可以引入对应的毗连信息,一次性获取后台系统的各个OData Service。

 



  • 可以看到架构右边是本地onpremise在防火墙后的系统,就要通过SAP云毗连器(下边会说)和BTP建立Connection,之后在BTP上的各色服务就可以通过该connection袒暴露来的虚拟地点进行数据互通。可以看到下图我已经将BTP毗连到两个ABAP系统。

  • 开发过程中,如果是外部地点,往往会存在跨域访问的限制题目,这时间就要在BTP上通过Destination建立代理,写入外部地点的用户名密码信息等才可以在BTP上开发的应用中进行无缝访问,这样还包管了秘密信息存储于Destination中而不是在代码里。如下图就是连往S4系统的一个destination,可以直接在BTP各色服务消费,在代码里也可以恣意调用,十分方便。

  • 别的,BTP上不同的服务可以通过SAP Destination进行相互通信和依靠使用,举个例子,在SAP Process Automation中可以上传附件,这个功能就是要建立Destination毗连到SAP BTP Document Management Service(条件是你得订阅了这个服务),这样就可以看到这个上传文件的控件了。像这种不同服务之间的相互调用还会越来越多,这也是我开头提到的BTP的初衷,它盼望各个服务之间可以协同联系,而不是各自为战。

     

3. Customer Subaccount和Space
客户子账户是客户较大粒度的层级概念,有独立的用户角色分配,独立的盘算资源,独立的服务分配,独立的connectivity和destination等,可以说绝大多数服务都存在于客户的某个子账户中。好比你买了2个SAP集成套件的tenant,那么只能将其分配于两个子账户中。但是我们这里主要谈论的还是BTP上的各色服务。

前边讲过通过discovery center可以看到BTP上的服务大致分成了几类,应用开发和自动化,数据和分析,集成,底子服务(公用服务)。其核心思想就是朝着低代码无代码方向进行,我在其上的架构图中拿出了几个非常有代表性也用的比较多的服务。如SAP集成套件就是一种无代码方式进行API的利用工具,SAP的流程自动化也是通过无代码的方式进行呆板人开发和审批流管理,SAP的Build Apps更是当下非常火热的无代码应用开发,可以开发跨平台的端到端应用步伐,SAP的Build WorkZone可以用无代码的方法开发企业流派,还有SAP分析云也是可以通过低代码方式进行BI报表开发和分析。固然,传统的专业代码开发工具也依然活跃,好比Business Application Studio和Cloud Foundry运行时环境,由于BTP是基于开源平台,以是在其上部署运行Java,Javascript,Python等各色步伐,SAP也有本身开发的后端开发框架如SAP CAP可以较为方便的结合SAP的技能栈和外部开源世界。

除此之外,还有不少零散的服务,好比Feature Toggle可以进行应用步伐开关管理,Document Management Service可以进行文档管理,Event Mesh是变乱队列服务,Task Center是把各种审批和关照服务融合在一起的服务,Mobile Service可以开发IOS大概Android等等。。。

那Space又是什么? 请参照这张图。

 

可以看到Space是在Cloud Foundry环境下,Subaccount级别下的更细致的划分,简单明白就是Space下可以分配不同的用户成员,这些成员可以在本身所属的Space进行应用开发和部署。好比,我曾经作为SAP One Support Launchpad上搜索功能的负责人,那我的团队就会被分配到一个名字叫做search的Space里,我和我的团队成员不能访问search之外的Space,好比创建Incident,SAP系统信息等等其他开发组的Space。但是需要指出的是,SAP售卖的标准服务好比SAP集成套件,SAP流程自动化,就险些不需要涉及Space级别的互助和使用了。

4. SAP云毗连器
SAP云毗连器并不是BTP的一部门,但是它是为了BTP服务的。简单说就是安装在你本地呆板上的反向代理,由于BTP及其上服务是公网概念,通过云毗连器可以方便安全快捷的进行资源袒露,这样就不用单独为每个BTP上的服务进行白名单处理大概袒露端口了,出了题目也可以通过云毗连器查看日志记录(固然现实使用十分稳固,很少出题目)。以是请记着,SAP云毗连器的一端肯定是BTP,另一端可以是ERP系统,也可以是你本地开发的Java服务器等。如果是SAP S/4 HANA Cloud的用户,SAP在交付系统的时间也会一并把SAP云毗连器的地点,用户名密码一并交付,不需要我们自行安装了。




5. BTP运行时环境
SAP BTP本身作为平台,是基于开源的PAAS Cloud Foundry(就开头提到的CF)建立起来的,以是CF上可以使用的特性好比命令行登陆,管控服务,角色权限,部署Java Python应用步伐等等,都可以无缝在BTP上使用,除此之外,很多BTP的服务好比像SAP集成套件,都需要CF作为底层运行环境,这就是为什么这些服务在自助开通的时间,需要强行开启CF环境,作为运行时的“容器”。但是对于使用者来说,除非是做应用开发,部署和运维,否则是不需要关心这些底层的运行环境的,甚至都接触不到命令行,好比SAP集成套件的客户,大概集成套件都已经使用了两三年了,还从来不知道SAP BTP底层有所谓的CF运行时环境。

但是对于SAP BTP上的应用开发,部署和运维,这个概念就要肯定知道并且纯熟掌握,CF上的环境可以支持常见当代高级语言环境好比Java,Python等,SAP为了支持自家的ABAP语言,也在后期加入了ABAP运行时环境,这样客户不依靠SAP GUI就可以进行ABAP开发了。以及,为了支持更为自由机动的K8S开发,SAP还提供了Kyma运行时环境,这样客户就可以更大程度的深入底层进行开发和部署了。如果感爱好的可以在SAP的community直接搜索好比Kyma上如何构建UI5步伐进一步相识。

以是一句话概括,现在SAP BTP的运行时环境包括Cloud Foundry(CF),ABAP和Kyma。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张春

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表