骞云深度分享:构建组件化的云服务模型

发表时间:2019-12-25 13:41

作者:方礼

逾15年企业软件研发管理经验,曾就职于HP、EMC、VMware等国际知名外企,历任云管理部门研发负责人、技术总监等核心岗位,主导了多款云计算产品的全球研发。2016年创立上海骞云科技,担任首席执行官。



云计算在快速发展,数字化转型也在倒逼企业采用越来越先进的IT技术来支持其业务的发展。两方面的共同发展过程中,企业所需要管理的云服务对象正发生着如下巨大变化。


  • 从简单的以虚拟机为核心到各种类型的计算,网络,存储;进一步发展成为使用 “公有云上的成百上千的服务”

  • 云资源涵盖的软件,从传统系统应用软件,到分布式,微服务等

  • 数据中心从各地分散机房到集中化两地三中心,再到多云多中心


为了适应变化,更好的管理这些日益多样化,日益复杂的云资源云服务,我们需要构建统一的开放的模型来描述IaaS,PaaS和SaaS资源。


本文详细介绍了 “构建组件化的云服务模型“ 的重要价值,解释TOSCA云服务建模标准是什么以及TOSCA的主要特点,最后简单描述骞云SmartCMP云管产品是如何支持TOSCA的。


1
TOSCA对象模型简介


TOSCA是什么


云应用拓扑和编排规范(Topology and Orchestration Specification for Cloud Applications,简称TOSCA)是一种用于描述在云计算平台上的服务和应用程序以及它们之间的关系和依赖性的语言规范。TOSCA可以描述云计算服务及其组件,并记录这些组件的组织方式以及使用或修改这些组件和服务所需的编排流程。这为管理员提供了一种管理云应用程序和服务的通用方法,从而使这些应用程序和服务可以跨不同云供应商的平台进行移植。


TOSCA开放标准得到结构化信息标准促进组织(OASIS)的支持。OASIS TOSCA技术委员会于2014年1月批准了TOSCA 1.0作为标准。TOSCA语言规范仍在不断完善,该委员会正在推进针对YAML v1.0的TOSCA简单配置文件,并扩展了对容器的支持,负载平衡,扩展,监视,网络功能虚拟化以及其他软件定义的网络计划。


对于云和网络行业,TOSCA的真正意图是提出一种可以在各种管理和业务流程技术中使用的通用信息模型。遗憾的是,关于统一信息模型的设计往往非常有挑战,具体原因包括:模型的开发设计不希望与传统设计有太大的差异;不同的标准开发组织(SDO)使用不同的建模理念;各自平台都希望采用自己专有模型来描述。由此,TOSCA应运而生来面对以上挑战。


  • TOSCA构建了一套通用的编排和管理工具,以相似的方式处理各种模型。( 尽管这不会立即产生统一的模型,但会产生统一的建模抽象,并在此基础上重构现有模型,并且使用通用工具也可能会更容易从特定领域的模型中提取这些共同特征。)

  • TOSCA对象模型具有足够的通用性,可以在各种建模领域中使用。同时,它强制执行少量非常强大的抽象,这些抽象可以提供对日益增长的云服务类型和组合的建模基础。


TOSCA的发展现状:TOSCA是为模型驱动的业务流程而设计的,TOSCA规范几乎只专注于该语言的语法,TOSCA建模抽象尚未得到广泛理解。希望通过本文内容的介绍,读者可以更清楚地理解TOSCA的对象模型。


作为业界标准的云服务描述语言,TOSCA对象模型具有非常强大的以下几个特点。


01
建模结构图形化


  • TOSCA使用图作为服务的核心建模结构. TOSCA服务被建模为拓扑图,该拓扑图由一组节点以及这些节点之间的关系组成。节点是服务图中的顶点,关系是图中的边。

  • TOSCA节点尽可能的保持通用性。节点本质上不过是命名属性及其关联值的集合。节点被命名,并使用节点类型进行标记(稍后会详细介绍)。

  • 关系是TOSCA图中的一流实体。就像节点一样,关系具有属性,标签和名称。


下图显示了基本的TOSCA图形元素的框架图。


1.png


使用图作为基本建模结构可以使TOSCA完全独立于行业属性。使用节点和关系中的类型字段来引入节点和关系的任何特定域的含义。 TOSCA类型提供了规范,这些规范限制了可以与特定节点和关系相关联的属性类型(及其值)。


使用图作为基本的建模构造,并使用类型作为规范机制,使TOSCA成为灵活的通用基础,可以为各种应用程序领域建模。

02
采用组件模式


任何IT基础设施的建模都必须解决如何对大型系统进行分解,由较小的构建块组成复杂的的模型。当前,在软件行业中,有两种流行的模式来完成复杂系统的建模:


  • 原子/复合模式

使用这种模式,系统被建模为组件的集合,其中每个组件都被明确定义为原子的或复合的。

  • 组件模式

使用这种模式,系统也像以前一样被建模为组件的集合。但是,该模型不会尝试进一步指定组件是原子组件还是复合组件,并且组件本身也不会进一步对其内部组成进行建模。


业界正在将组件模式作为唯一一种具有足够灵活性以适应各种组合方案的模式,因为这个模式更加灵活(类比一下,现实世界,即使原子也是可以分解的,只取决于是否有必要去分解)。


TOSCA通过其替换映射功能实现组件模式,也就是具体如下图所示:


2.png



03
统一运行,编排和设计时间


TOSCA的编排引擎和管理工具在整个云服务生命周期中使用统一模型,实现模型编排、系统运行和组件设计,在时间上的统一,统一的模型具体包括以下几点:


  • 模型用于表示系统的运行时状态,也可用于该系统的运营管理。

  • 模型可用作表示(模型驱动的)编排过程的预期结果的意图模型。

  • 模型可以在设计时来创建可重用的服务组件。

2
SmartCMP如何支持TOSCA规范


TOSCA本身是一个语言规范,本身不提供任何实现功能。骞云SmartCMP作为从产品设计初始,就采用TOSCA作为云服务描述语言,提供了业界对TOSCA最完美的支持。SmartCMP对TOSCA的支持也包括如下核心功能


01
云组件 – 对应TOSCA的Node


在最新的版本里面,平台将之前软件组件扩展成为任意云组件,进一步完善了对TOSCA的模型支持能力。


云组件的核心目标有如下几点。


  • 用户可以非常方便的添加任意云资源类型,包括IaaS,PaaS,SaaS等。更好的支持SmartCMP构建XaaS的能力。

  • 用户可以非常方便的扩充现有云资源类型的能力,包括添加组件额外的属性,额外的操作,操作的UI交互等。


TOSCA的组件是基于面向对象的,所以SmartCMP的云组件也一样。平台的组件也同样支持面向对象的核心能力,包括


  • 对象类型定义,包括私有属性,操作

  • 继承关系

  • 多态

  • 覆盖


下图展示了如何定义任意公有云上的MySQL PaaS服务。



3.png


有了这样的类型定义,平台还需要提供类型的接口实现。如果熟悉十多年前的面向组件的编程的同学,可能还记得COM,CORBA等组件技术,都可以支持多语言。SmartCMP也类似,平台原生提供了各种脚本和编程语言支持,包括Shell,Python,PowerShell,Ansible,Terraform等。


02
服务蓝图 – 对应TOSCA的Topology


服务蓝图目前已经是面向服务,面向应用的云管理平台的核心能力之一。通过基于TOSCA的蓝图,我们可以构建一个面向目标的编排引擎,也就是我们画出来什么,最后就出来部署出来什么,变更出来什么。市场更多的是基于流程的编排,用户需要自己定义每一步需要做什么,该怎么做。


4.png

03
服务部署 –TOSCA模型的运行时状态和操作


SmartCMP是通过服务部署来展现一个TOSCA服务的运行时态实例的,也是基于TOSCA的组件操作来实现变更。下图展现了一个简单的运行时态服务和对接节点所支持的操作。


5.png


3
总结


本文介绍了TOSCA的对象模型,探讨了TOSCA对象模型在云管理领域的价值。随着云计算的持续发展,灵活的模型定义将越来越重要。本文也简单介绍了骞云SmartCMP对TOSCA的支持。基于TOSCA标准,SmartCMP实现了对任意应用,任意云服务的建模,部署和管理。



关于骞云


骞云科技是一家全球领先的云管理软件及服务提供商。公司有着强大的研发实力,致力提升企业的IT管理水平。我们的旗舰产品SmartCMP云管理平台,凭借先进的产品理念和优质的服务,帮助越来越多的客户实现数字化转型。

我们帮助企业客户构建统一的,高度自动化的“云服务+云运维+云运营”三位一体的IT服务中台,实现云资源管理闭环。SmartCMP云管平台连接超过40多种云资源,通过强大的多云管理、多云编排、蓝图编排、组件建模能力,为企业IT提供从部署、分析、监控到优化的完整高效管控体验。迄今为止,骞云科技已服务超过100家金融、政府、能源、医疗、高端制造、互联网等各行业的客户。

骞云科技,专注云管理,帮助企业释放云上生产力。



 
 
 联系方式
咨询电话:400-669-7728