溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 服務器 > 
  • 云計算 > 
  • 社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

發(fā)布時間:2020-08-19 01:58:41 來源:ITPUB博客 閱讀:203 作者:阿里巴巴云原生 欄目:云計算

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

作者 | 徐運元,杭州諧云科技合伙人及資深架構師,云計算行業(yè)和 Kubernetes 生態(tài)資深從業(yè)者

導讀:什么是 OAM?2019 年 10 月 17 日,阿里巴巴合伙人、阿里云智能基礎產(chǎn)品事業(yè)部總經(jīng)理蔣江偉(花名:小邪)在 QCon 上海 2019 重磅宣布,阿里云與微軟聯(lián)合推出開放應用模型 Open Application Model (OAM)開源項目。

OAM 的核心關注點

  • 關注點分離:開發(fā)者關注應用本身,運維人員關注模塊化運維能力,讓應用管理變得更輕松、應用交付變得更可控;
  • 平臺無關與高可擴展:應用定義與平臺層實現(xiàn)解耦,應用描述支持任意擴展和跨環(huán)境實現(xiàn);
  • 模塊化應用運維特征:可以自由組合和支持模塊化實現(xiàn)的運維特征描述。

OAM 的核心模塊

1. 應用組件(Components)

在 OAM 中,“應用”是由多個概念共同組合而成。第一個概念是:應用組件(Components),它是整個應用的重要組成部分。應用組件既可以包括應用運行所依賴的服務:比如 MySQL 數(shù)據(jù)庫,也包括應用服務本身:比如擁有多個副本的 PHP 服務器。開發(fā)者可以把他們寫的代碼“打包”成一個應用組件,然后編寫配置文件來描述該組件與其他服務之間的關系。

應用組件的概念讓平臺架構師等能夠將應用分解成一個個可被復用的模塊,這種模塊化封裝應用組成部分的思想,代表了一種構建安全、高可擴展性應用的最佳實踐:通過一個完全分布式的架構模型,實現(xiàn)了應用組件描述和實現(xiàn)的解耦。

2. 應用部署配置文件(Application Configuration)

為了將這些應用組件描述變成一個真正運行起來的應用,應用運維人員會通過一個專門的、包含了所有應用組件信息的部署配置文件來實例化這個待運行的應用。這個配置文件本身也是 OAM 規(guī)范中的一個聲明式 API,用來讓應用運維人員能夠根據(jù)開發(fā)者或者平臺提交的應用描述,實例化出對應的、真正運行起來的應用。

3. 應用運維特征(Traits)

最后一個概念是一組應用運維特征(Traits),它們描述了應用在具體部署環(huán)境中的運維特征,比如應用的水平擴展的策略和 Ingress 規(guī)則,這些特征對于應用的運維來說非常重要,但它們在不同的部署環(huán)境里卻往往有著截然不同的實現(xiàn)方式。 舉一個簡單的例子,同樣是 Ingress,它在公有云上和本地數(shù)據(jù)中心的實現(xiàn)可能完全不同:前者一般是 SLB 這樣的云服務,而后者則可能是一個專門的硬件。這也就意味著針對這兩個環(huán)境的 Ingress 運維工作,將會有天壤之別。 但與此同時,無論是在哪個環(huán)境里,這個 Ingress 規(guī)則對于應用開發(fā)人員來說,可能是完全相同的。

應用特征的設計,讓這種關注點分離成為可能:只要這兩個環(huán)境在 OAM 模型下提供了對 Ingress 這個應用運維特征的實現(xiàn),那么應用就可以使用統(tǒng)一的 Ingress 規(guī)則描述,無差別地在這兩個地方運行起來。與此同時,這兩個環(huán)境的基礎設施供應商可以繼續(xù)通過配置這些應用特征的實現(xiàn),來滿足它們各自的運維要求(例如:不同環(huán)境里 Ingress 實現(xiàn)在滿足合規(guī)性和安全性上的差異)。

一個基于 OAM 的可視化實現(xiàn)介紹

目前該平臺主要基于 OAM 的 V1 alpha1 版本實現(xiàn),并且對于 OAM 的核心理念進行的抽象和封裝,以更符合用戶的使用習慣。在本文介紹的可視化部分背后,是完整的 OAM 格式的 yaml 文件??梢暬?OAM 平臺主要包含兩大核心功能:

1. 運維特征模型

運維特征模型主要是針對 OAM 的 Traits 的具體實例化,讓用戶可以把復雜的一些運維特性可以直接以插拔的形式直接讓應用發(fā)布者去使用。目前平臺已經(jīng)封裝了包含服務發(fā)布、日志搜集、自動伸縮、存儲掛載等 8 個運維特征的封裝。

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低
圖 1 運維特征模型倉庫

2. OAM 應用編排

OAM 應用編排功能將 OAM 的應用發(fā)布全流程進行了可視化的實現(xiàn),將應用組件添加、配置文件修改以及運維特征添加等 OAM 的核心功能進行了抽象和封裝。OAM 應用編排目前包含以下核心功能:

  • 組件編排: 可視化添加平臺的組件并且進行組件的參數(shù)設置;
  • 運行特征編排:在添加的平臺組件基礎上進行運維特征的添加和編排(也為后續(xù)開發(fā)、運維關注點分離做準備);
  • OAM 版本管理:平臺會保存所有的 OAM 發(fā)布版本,并且提供升級和回滾功能。

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低
圖 2 OAM 應用編排主界面

接下來,我們會以一個典型應用(nginx+tomcat+redis)的部署來全面解析,如何在平臺上進行 OAM 的可視化發(fā)布。

前置條件

運維特征(Traints)應用模型已安裝,在界面上,可以快速查看有哪些運維特征應用模型,以及它們的運行狀態(tài)。當前只支持系統(tǒng)定義的運維特征,后續(xù)會開發(fā)自定義的運維特征的生命周期管理。讓用戶可以編寫自己的運維特征并且安裝到平臺進行使用。

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

OAM 應用創(chuàng)建流程

OAM 應用基本發(fā)布流程:應用創(chuàng)建->新增組件->應用編排->保存版本->發(fā)布應用。

  • 創(chuàng)建應用: 點擊應用->OAM 應用菜單, 點擊【創(chuàng)建應用】按鈕,輸入必填項;

  • 添加組件: 點擊【新增組件】按鈕,設置工作負載類型,容器配置等;

選擇想要創(chuàng)建的工作負載類型,目前已經(jīng)將 Server、Singleton Server、Task、Singleton Task、Worker 以及 Singleton Worker 等六種核心的工作負載進行了封裝,用戶只需要在下拉框中勾選自己想要創(chuàng)建的負載類型即可。

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

在選擇完負載類型之后,用戶可以以可視化的形式去選擇想要發(fā)布的鏡像以及容器的基本配置參數(shù)。同時,目前也支持基于多個容器的編排發(fā)布。

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

  • 根據(jù)我們的需求,我們依次添加 tomcat、redis、mysql 三個組件,在界面上就可以看到組件的狀態(tài),同時點擊“詳情”可以看到對應的 Kubernetes 資源信息;

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

查看組件的詳細信息。

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

  • 應用編排:在創(chuàng)建完需要部署的組件之后,我們的 OAM 應用已經(jīng)具備了開發(fā)的屬性。

之后我們需要根據(jù)需求給每一個組件添加運維特征:點擊進入應用編排界面,你可以看到剛才添加的組件已經(jīng)展示在畫布之上;在畫布上點擊單個組件,可以看到目前適合該組件的運維特征,勾選你所需要的運維特征即可快速添加;在添加完運維特征之后,會在右邊欄彈出運維特征的配置參數(shù),配置保存之后這些運維特征即可生效;

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

  • 在添加完所有組件的運維特征之后,我們就可以看到一個完整的編排完的 OAM 應用了。在 OAM 的 V2 版本,我們同時會再增加應用的依賴關系,用戶可以通過拖拽和連線來實現(xiàn)應用之間的依賴編排;

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

  • 保存版本:最后,我們可以點擊【保存當前內(nèi)容為版本】按鈕,輸入版本號,點擊【確定】;

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

  • 發(fā)布應用:點擊【發(fā)布】按鈕,發(fā)布應用

發(fā)布應用后,組件狀態(tài)顯示‘已實例化’。應用實例狀態(tài)顯示“健康”。

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

點擊事件 tab 頁,顯示事件。

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

用戶可以快速查看已經(jīng)創(chuàng)建的 ingress,并且進行訪問。

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低
社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

  • 用戶可以通過修改 traints 信息,快速對當前的應用進行修改和升級。

點擊進入應用編排界面,并且編輯 tomcat 實例數(shù)為 4。

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

將編輯后的版本,保存為當前版本則會直接講修改的配置更新到當前實例。如果選擇保存為新版本,則會將當前配置修改保存為模板,等待發(fā)布。我們將此修改保存為新版本。

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

點擊更新為此版本,進行剛才修改的配置發(fā)布。發(fā)布完成之后,我們可以看到有兩個版本的 OAM 應用模板。

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低
社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

查看詳情,確認 tomcat 實例數(shù)已經(jīng)變更為 4,但是由于我們同時設置了自動擴縮容的實例為 3,因此在擴容之后又迅速變回實例 3。

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

至此,一個完整的部署和更新 OAM 應用的可視化流程就演示完了。

總結

如今 OAM Spec 已經(jīng)迭代到了 v1alpha2 版本,新版本在堅持 OAM Spec 平臺無關的基礎上,整體變得更 Kubernetes 友好化,很大程度上平衡了標準與可擴展性,更好的支持已有的 CRD。也就是說,如果你已經(jīng)編寫了現(xiàn)成的 CRD Operator,可以平滑的接入到 OAM 體系中,并且享受到 OAM 模型的紅利。

更詳細的新版本介紹可以閱讀 《 OAM v1alpha2 新版發(fā)布:平衡標準與可擴展性,靈活接入 CRD operator 》。

該可視化平臺也已經(jīng)在全面升級到 v1alpha2 的過程中,新版的支持可以更好的允許用戶編寫插件擴充平臺的功能。

該平臺來自于阿里云戰(zhàn)略合作伙伴杭州諧云科技,該平臺基于 OAM 實現(xiàn)的開源版本也已經(jīng)在路上,大家敬請期待。

  • OAM 平臺試用網(wǎng)址: http://139.196.197.117:30088/ 用戶名/密碼: admin/Ab123456
  • Demo 中所有的 yaml 文件請訪問 github 地址查看: https://github.com/harmonycloud/oam-simple-demo

目前,OAM 規(guī)范和模型實際已解決許多現(xiàn)有問題,但它的路程才剛剛開始。OAM 是一個中立的開源項目,我們歡迎更多的人參與其中,共同定義云原生應用交付的未來。參與方式:

  • 釘釘掃碼進入 OAM 項目中文討論群

社區(qū)首款 OAM 可視化平臺發(fā)布!關注點分離、用戶友好、上手難度低

  • 通過 Gitter 直接參與討論
  • OAM 開源實現(xiàn)地址
  • 點擊 star 一下

杭州諧云科技有限公司成立于 2016 年 7 月,公司核心團隊來自于浙江大學 SEL 實驗室,諧云團隊在云計算及相關領域具備深厚的技術積淀,在全球頂級開源社區(qū) Docker、Kubernetes、Cloud Foundry 等項目貢獻累計超過 200 萬行代碼,排名全球第四,國內(nèi)第一。團隊曾著書中國第一本深度解析容器云的專業(yè)書籍《Docker 容器與容器云》,是國內(nèi)為數(shù)不多掌握底層核心技術的容器云提供商。建設了目前中國最大的容器集群落地案例,支撐著國內(nèi)最大的互聯(lián)網(wǎng)電視云。

課程推薦

為了更多開發(fā)者能夠享受到 Serverless 帶來的紅利,這一次,我們集結了 10+ 位阿里巴巴 Serverless 領域技術專家,打造出最適合開發(fā)者入門的 Serverless 公開課,讓你即學即用,輕松擁抱云計算的新范式——Serverless。

點擊即可免費觀看課程: https://developer.aliyun.com/learning/roadmap/serverless

“ 阿里巴巴云原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦云原生流行技術趨勢、云原生大規(guī)模的落地實踐,做最懂云原生開發(fā)者的公眾號?!?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI