My title

騫云深度分享:構建組件化的云服務模型

發表時間: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對象模型具有足夠的通用性,可以在各種建模領域中使用。同時,它強制執行少量非常強大的抽象,這些抽象可以提供對日益增長的云服務類型和組合的建?;A。


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的支持?;赥OSCA標準,SmartCMP實現了對任意應用,任意云服務的建模,部署和管理。



關于騫云


騫云科技是一家全球領先的云管理軟件及服務提供商。公司有著強大的研發實力,致力提升企業的IT管理水平。我們的旗艦產品SmartCMP云管理平臺,憑借先進的產品理念和優質的服務,幫助越來越多的客戶實現數字化轉型。

我們幫助企業客戶構建統一的,高度自動化的“云服務+云運維+云運營”三位一體的IT服務中臺,實現云資源管理閉環。SmartCMP云管平臺連接超過40多種云資源,通過強大的多云管理、多云編排、藍圖編排、組件建模能力,為企業IT提供從部署、分析、監控到優化的完整高效管控體驗。迄今為止,騫云科技已服務超過100家金融、政府、能源、醫療、高端制造、互聯網等各行業的客戶。

騫云科技,專注云管理,幫助企業釋放云上生產力。



聯系我們
 
 
 
 
 聯系方式
咨詢電話:400-669-7728