新聞中心
作者 | 徐運(yùn)元,杭州諧云科技合伙人及資深架構(gòu)師,云計算行業(yè)和 Kubernetes 生態(tài)資深從業(yè)者
天壇街道網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)2013年開創(chuàng)至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運(yùn)維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
導(dǎo)讀:什么是 OAM?2019 年 10 月 17 日,阿里巴巴合伙人、阿里云智能基礎(chǔ)產(chǎn)品事業(yè)部總經(jīng)理蔣江偉(花名:小邪)在 QCon 上海 2019 重磅宣布,阿里云與微軟聯(lián)合推出開放應(yīng)用模型 Open Application Model (OAM)開源項目。
OAM 的核心關(guān)注點(diǎn)
- 關(guān)注點(diǎn)分離:開發(fā)者關(guān)注應(yīng)用本身,運(yùn)維人員關(guān)注模塊化運(yùn)維能力,讓應(yīng)用管理變得更輕松、應(yīng)用交付變得更可控;
- 平臺無關(guān)與高可擴(kuò)展:應(yīng)用定義與平臺層實(shí)現(xiàn)解耦,應(yīng)用描述支持任意擴(kuò)展和跨環(huán)境實(shí)現(xiàn);
- 模塊化應(yīng)用運(yùn)維特征:可以自由組合和支持模塊化實(shí)現(xiàn)的運(yùn)維特征描述。
OAM 的核心模塊
1. 應(yīng)用組件(Components)
在 OAM 中,“應(yīng)用”是由多個概念共同組合而成。第一個概念是:應(yīng)用組件(Components),它是整個應(yīng)用的重要組成部分。應(yīng)用組件既可以包括應(yīng)用運(yùn)行所依賴的服務(wù):比如 MySQL 數(shù)據(jù)庫,也包括應(yīng)用服務(wù)本身:比如擁有多個副本的 PHP 服務(wù)器。開發(fā)者可以把他們寫的代碼“打包”成一個應(yīng)用組件,然后編寫配置文件來描述該組件與其他服務(wù)之間的關(guān)系。
應(yīng)用組件的概念讓平臺架構(gòu)師等能夠?qū)?yīng)用分解成一個個可被復(fù)用的模塊,這種模塊化封裝應(yīng)用組成部分的思想,代表了一種構(gòu)建安全、高可擴(kuò)展性應(yīng)用的最佳實(shí)踐:通過一個完全分布式的架構(gòu)模型,實(shí)現(xiàn)了應(yīng)用組件描述和實(shí)現(xiàn)的解耦。
2. 應(yīng)用部署配置文件(Application Configuration)
為了將這些應(yīng)用組件描述變成一個真正運(yùn)行起來的應(yīng)用,應(yīng)用運(yùn)維人員會通過一個專門的、包含了所有應(yīng)用組件信息的部署配置文件來實(shí)例化這個待運(yùn)行的應(yīng)用。這個配置文件本身也是 OAM 規(guī)范中的一個聲明式 API,用來讓應(yīng)用運(yùn)維人員能夠根據(jù)開發(fā)者或者平臺提交的應(yīng)用描述,實(shí)例化出對應(yīng)的、真正運(yùn)行起來的應(yīng)用。
3. 應(yīng)用運(yùn)維特征(Traits)
最后一個概念是一組應(yīng)用運(yùn)維特征(Traits),它們描述了應(yīng)用在具體部署環(huán)境中的運(yùn)維特征,比如應(yīng)用的水平擴(kuò)展的策略和 Ingress 規(guī)則,這些特征對于應(yīng)用的運(yùn)維來說非常重要,但它們在不同的部署環(huán)境里卻往往有著截然不同的實(shí)現(xiàn)方式。 舉一個簡單的例子,同樣是 Ingress,它在公有云上和本地數(shù)據(jù)中心的實(shí)現(xiàn)可能完全不同:前者一般是 SLB 這樣的云服務(wù),而后者則可能是一個專門的硬件。這也就意味著針對這兩個環(huán)境的 Ingress 運(yùn)維工作,將會有天壤之別。 但與此同時,無論是在哪個環(huán)境里,這個 Ingress 規(guī)則對于應(yīng)用開發(fā)人員來說,可能是完全相同的。
應(yīng)用特征的設(shè)計,讓這種關(guān)注點(diǎn)分離成為可能:只要這兩個環(huán)境在 OAM 模型下提供了對 Ingress 這個應(yīng)用運(yùn)維特征的實(shí)現(xiàn),那么應(yīng)用就可以使用統(tǒng)一的 Ingress 規(guī)則描述,無差別地在這兩個地方運(yùn)行起來。與此同時,這兩個環(huán)境的基礎(chǔ)設(shè)施供應(yīng)商可以繼續(xù)通過配置這些應(yīng)用特征的實(shí)現(xiàn),來滿足它們各自的運(yùn)維要求(例如:不同環(huán)境里 Ingress 實(shí)現(xiàn)在滿足合規(guī)性和安全性上的差異)。
一個基于 OAM 的可視化實(shí)現(xiàn)介紹
目前該平臺主要基于 OAM 的 V1 alpha1 版本實(shí)現(xiàn),并且對于 OAM 的核心理念進(jìn)行的抽象和封裝,以更符合用戶的使用習(xí)慣。在本文介紹的可視化部分背后,是完整的 OAM 格式的 yaml 文件。可視化 OAM 平臺主要包含兩大核心功能:
1. 運(yùn)維特征模型
運(yùn)維特征模型主要是針對 OAM 的 Traits 的具體實(shí)例化,讓用戶可以把復(fù)雜的一些運(yùn)維特性可以直接以插拔的形式直接讓應(yīng)用發(fā)布者去使用。目前平臺已經(jīng)封裝了包含服務(wù)發(fā)布、日志搜集、自動伸縮、存儲掛載等 8 個運(yùn)維特征的封裝。
圖 1 運(yùn)維特征模型倉庫
2. OAM 應(yīng)用編排
OAM 應(yīng)用編排功能將 OAM 的應(yīng)用發(fā)布全流程進(jìn)行了可視化的實(shí)現(xiàn),將應(yīng)用組件添加、配置文件修改以及運(yùn)維特征添加等 OAM 的核心功能進(jìn)行了抽象和封裝。OAM 應(yīng)用編排目前包含以下核心功能:
- 組件編排:可視化添加平臺的組件并且進(jìn)行組件的參數(shù)設(shè)置;
- 運(yùn)行特征編排:在添加的平臺組件基礎(chǔ)上進(jìn)行運(yùn)維特征的添加和編排(也為后續(xù)開發(fā)、運(yùn)維關(guān)注點(diǎn)分離做準(zhǔn)備);
- OAM 版本管理:平臺會保存所有的 OAM 發(fā)布版本,并且提供升級和回滾功能。
圖 2 OAM 應(yīng)用編排主界面
接下來,我們會以一個典型應(yīng)用(nginx+tomcat+redis)的部署來全面解析,如何在平臺上進(jìn)行 OAM 的可視化發(fā)布。
前置條件
運(yùn)維特征(Traints)應(yīng)用模型已安裝,在界面上,可以快速查看有哪些運(yùn)維特征應(yīng)用模型,以及它們的運(yùn)行狀態(tài)。當(dāng)前只支持系統(tǒng)定義的運(yùn)維特征,后續(xù)會開發(fā)自定義的運(yùn)維特征的生命周期管理。讓用戶可以編寫自己的運(yùn)維特征并且安裝到平臺進(jìn)行使用。
OAM 應(yīng)用創(chuàng)建流程
OAM 應(yīng)用基本發(fā)布流程:應(yīng)用創(chuàng)建->新增組件->應(yīng)用編排->保存版本->發(fā)布應(yīng)用。
創(chuàng)建應(yīng)用:點(diǎn)擊應(yīng)用->OAM 應(yīng)用菜單, 點(diǎn)擊【創(chuàng)建應(yīng)用】按鈕,輸入必填項;
添加組件:點(diǎn)擊【新增組件】按鈕,設(shè)置工作負(fù)載類型,容器配置等;
選擇想要創(chuàng)建的工作負(fù)載類型,目前已經(jīng)將 Server、Singleton Server、Task、Singleton Task、Worker 以及 Singleton Worker 等六種核心的工作負(fù)載進(jìn)行了封裝,用戶只需要在下拉框中勾選自己想要創(chuàng)建的負(fù)載類型即可。
在選擇完負(fù)載類型之后,用戶可以以可視化的形式去選擇想要發(fā)布的鏡像以及容器的基本配置參數(shù)。同時,目前也支持基于多個容器的編排發(fā)布。
- 根據(jù)我們的需求,我們依次添加 tomcat、redis、mysql 三個組件,在界面上就可以看到組件的狀態(tài),同時點(diǎn)擊“詳情”可以看到對應(yīng)的 Kubernetes 資源信息;
查看組件的詳細(xì)信息。
- 應(yīng)用編排:在創(chuàng)建完需要部署的組件之后,我們的 OAM 應(yīng)用已經(jīng)具備了開發(fā)的屬性。
之后我們需要根據(jù)需求給每一個組件添加運(yùn)維特征:點(diǎn)擊進(jìn)入應(yīng)用編排界面,你可以看到剛才添加的組件已經(jīng)展示在畫布之上;在畫布上點(diǎn)擊單個組件,可以看到目前適合該組件的運(yùn)維特征,勾選你所需要的運(yùn)維特征即可快速添加;在添加完運(yùn)維特征之后,會在右邊欄彈出運(yùn)維特征的配置參數(shù),配置保存之后這些運(yùn)維特征即可生效;
- 在添加完所有組件的運(yùn)維特征之后,我們就可以看到一個完整的編排完的 OAM 應(yīng)用了。在 OAM 的 V2 版本,我們同時會再增加應(yīng)用的依賴關(guān)系,用戶可以通過拖拽和連線來實(shí)現(xiàn)應(yīng)用之間的依賴編排;
- 保存版本:最后,我們可以點(diǎn)擊【保存當(dāng)前內(nèi)容為版本】按鈕,輸入版本號,點(diǎn)擊【確定】;
- 發(fā)布應(yīng)用:點(diǎn)擊【發(fā)布】按鈕,發(fā)布應(yīng)用
發(fā)布應(yīng)用后,組件狀態(tài)顯示‘已實(shí)例化’。應(yīng)用實(shí)例狀態(tài)顯示“健康”。
點(diǎn)擊事件 tab 頁,顯示事件。
用戶可以快速查看已經(jīng)創(chuàng)建的 ingress,并且進(jìn)行訪問。
- 用戶可以通過修改 traints 信息,快速對當(dāng)前的應(yīng)用進(jìn)行修改和升級。
點(diǎn)擊進(jìn)入應(yīng)用編排界面,并且編輯 tomcat 實(shí)例數(shù)為 4。
將編輯后的版本,保存為當(dāng)前版本則會直接講修改的配置更新到當(dāng)前實(shí)例。如果選擇保存為新版本,則會將當(dāng)前配置修改保存為模板,等待發(fā)布。我們將此修改保存為新版本。
點(diǎn)擊更新為此版本,進(jìn)行剛才修改的配置發(fā)布。發(fā)布完成之后,我們可以看到有兩個版本的 OAM 應(yīng)用模板。
查看詳情,確認(rèn) tomcat 實(shí)例數(shù)已經(jīng)變更為 4,但是由于我們同時設(shè)置了自動擴(kuò)縮容的實(shí)例為 3,因此在擴(kuò)容之后又迅速變回實(shí)例 3。
至此,一個完整的部署和更新 OAM 應(yīng)用的可視化流程就演示完了。
總結(jié)
如今 OAM Spec 已經(jīng)迭代到了 v1alpha2 版本,新版本在堅持 OAM Spec 平臺無關(guān)的基礎(chǔ)上,整體變得更 Kubernetes 友好化,很大程度上平衡了標(biāo)準(zhǔn)與可擴(kuò)展性,更好的支持已有的 CRD。也就是說,如果你已經(jīng)編寫了現(xiàn)成的 CRD Operator,可以平滑的接入到 OAM 體系中,并且享受到 OAM 模型的紅利。
更詳細(xì)的新版本介紹可以閱讀 《 OAM v1alpha2 新版發(fā)布:平衡標(biāo)準(zhǔn)與可擴(kuò)展性,靈活接入 CRD operator 》。
該可視化平臺也已經(jīng)在全面升級到 v1alpha2 的過程中,新版的支持可以更好的允許用戶編寫插件擴(kuò)充平臺的功能。
該平臺來自于阿里云戰(zhàn)略合作伙伴杭州諧云科技,該平臺基于 OAM 實(shí)現(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ī)范和模型實(shí)際已解決許多現(xiàn)有問題,但它的路程才剛剛開始。OAM 是一個中立的開源項目,我們歡迎更多的人參與其中,共同定義云原生應(yīng)用交付的未來。參與方式:
- 釘釘掃碼進(jìn)入 OAM 項目中文討論群
- 通過 Gitter 直接參與討論
- OAM 開源實(shí)現(xiàn)地址
- 點(diǎn)擊 star 一下
杭州諧云科技有限公司成立于 2016 年 7 月,公司核心團(tuán)隊來自于浙江大學(xué) SEL 實(shí)驗室,諧云團(tuán)隊在云計算及相關(guān)領(lǐng)域具備深厚的技術(shù)積淀,在全球頂級開源社區(qū) Docker、Kubernetes、Cloud Foundry 等項目貢獻(xiàn)累計超過 200 萬行代碼,排名全球第四,國內(nèi)第一。團(tuán)隊曾著書中國第一本深度解析容器云的專業(yè)書籍《Docker 容器與容器云》,是國內(nèi)為數(shù)不多掌握底層核心技術(shù)的容器云提供商。建設(shè)了目前中國最大的容器集群落地案例,支撐著國內(nèi)最大的互聯(lián)網(wǎng)電視云。
課程推薦
為了更多開發(fā)者能夠享受到 Serverless 帶來的紅利,這一次,我們集結(jié)了 10+ 位阿里巴巴 Serverless 領(lǐng)域技術(shù)專家,打造出最適合開發(fā)者入門的 Serverless 公開課,讓你即學(xué)即用,輕松擁抱云計算的新范式——Serverless。
點(diǎn)擊即可免費(fèi)觀看課程: https://developer.aliyun.com/learning/roadmap/serverless
“ 阿里巴巴云原生關(guān)注微服務(wù)、Serverless、容器、Service Mesh 等技術(shù)領(lǐng)域、聚焦云原生流行技術(shù)趨勢、云原生大規(guī)模的落地實(shí)踐,做最懂云原生開發(fā)者的公眾號。”
網(wǎng)站題目:社區(qū)首款OAM可視化平臺發(fā)布!關(guān)注點(diǎn)分離、用戶友好、上手難度低
標(biāo)題路徑:http://ef60e0e.cn/article/giojhs.html