成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何基于K8s構建下一代DevOps平臺?

開發 開發工具
OAM是阿里巴巴與微軟聯合推出的開放應用模型,旨在解耦應用研發、應用運維與基礎設施人員在應用生命周期中各自的關注點,明晰責任與界限,聚焦自身業務,同時又依然能緊密協作。當前云原生DevOps體系現狀如何?

OAM是阿里巴巴與微軟聯合推出的開放應用模型,旨在解耦應用研發、應用運維與基礎設施人員在應用生命周期中各自的關注點,明晰責任與界限,聚焦自身業務,同時又依然能緊密協作。當前云原生DevOps體系現狀如何?面臨哪些挑戰?如何通過OAM解決云原生DevOps場景下的諸多問題?云原生開發應用模型OAM(Open Application Model)社區核心成員孫健波將為大家一一解答,并分享如何基于OAM和Kubernetes打造無限能力的下一代DevOps平臺。

一 什么是DevOps?為什么基于Kubernetes構建?

2009年舉辦了第一屆DevOpsDays大會,DevOps名字被首次提出。到2010年,DevOps的概念越來越火,出了What is DevOps的文章,講解了DevOps的概念,方法論及配套的工具。簡單來說,研發工程師需要和運維工程師深度的合作,同時通過一系列工具保證研發更加順暢,從而更容易的接觸生產環境。到2013年,Docker出現了,工程師可以第一次到軟件生產環境中定義,通過Docker image完成單機軟件的交付和分發。此時DevOps開始慢慢落地。2015年開始,DevOps相關的工具越來越多,資源利用率出現了一些問題,CNCF的成立使得DevOps的實踐往Kubernetes上走。

??

??

 

DevOps的三個階段

阿里在Kubernetes上的實踐也取得了非常好的成果。在規模方面,阿里內部集成了數十個節點可以達到上萬的集群,同時具備高性能和安全特性,秒級擴容,神龍+安全容器。具備極致的彈性,分鐘級拆解公有云計算資源,無限資源池。另一方面,Kubernetes社區已經具備非常豐富的DevOps生態基礎功能,包括鏡像托管、CI\CD流水線、任務編排、發布策略、鏡像打包、分發、豐富的應用運行時的負載支撐、豐富彈性和應用擴容能力。

為什么阿里基于Kubernetes構建DevOps平臺?

1)阿里基于Kubernetes的無限資源池與基礎設施能力

  • 大規模 – 單集群最高可達10000節點、百萬Pod
  • 高性能 – 秒級擴容,智能伸縮,神龍 + 安全容器
  • 極致彈性 – 分鐘級拆解公有云計算資源,無限資源池

2)社區圍繞Kubernetes已經具備豐富的DevOps生態基礎功能

  • 源碼到容器鏡像倉庫,Kubernetes是容器平臺事實標準:Github/DockerHub
  • CI/CD流水線、任務編排、發布策略:Argo/Teckton/Spinnaker/Jenkins-X/Flagger
  • 鏡像打包、分發:Helm/CNAB
  • 豐富的應用運行負載支撐:Deployment(無狀態)/StatefulSet(有狀態)/OpenKruise(原生有狀態增強)
  • 豐富的彈性和應用擴縮容能力:HPA/KEDA

二 基于Kubernetes的DevOps平臺新挑戰

下圖展示了一個云原生下的DevOps流水線的典型流程。首先是代碼的開發,代碼托管到Github,再接入單元測試的工具Jenkins,此時基本研發已完成。再接著到鏡像的構建,涉及到配置、編排等。云原生中可以用HELM打包應用。打包好的應用部署到各個環境中。但整個過程中會面臨很多挑戰。首先,在不同的環境需要不同的運維能力。

??

??

 

一個云原生 DevOps 流水線的典型流程

其次,配置的過程中要創建云上數據庫,需要另外打開一個控制臺來創建數據庫。還需要配置負載均衡。在應用啟動以后還需要配置額外的功能,包括日志、策略、安全防護等等。可以發現,云資源和DevOps平臺體驗是割裂的,里面充斥著借助外部平臺創建的過程。這對新手來說是非常痛苦的。

挑戰一:云資源與 DevOps 平臺體驗割裂

DevOps流程中充斥著大量需要外部平臺創建的過程:

??

??

 

挑戰二:研發、運維、基礎設施關注點耦合

下圖是常用的K8s的YAML配置文件,大家經常吐槽這個配置文件很復雜。簡單來說YAML配置文件可以分為三大塊,一塊是運維比較關心的配置,包括實例數,策略和發布。第二塊是研發關心的,涉及到鏡像、端口號等。第三塊是基礎設施工程師看得懂的,如調度策略等。K8s的配置文件中將方方面面的信息都耦合在一起,這對K8s工程師來說是非常適合的,但是對應用側的終端工程師而言,有很多不需要關心的配置指標。

??

??

 

  • DevOps流程中缺乏對“應用”這個概念的描述
  • K8s 的 YAML文件的定位并不是終端用戶

挑戰三:平臺的自定義封裝,簡單卻能力不足

DevOps平臺對K8s能力封裝抽象,只剩下5個Deployment的字段需要研發填寫。從用戶角度而言,這種設置非常好用簡單。但是針對稍微復雜的應用,涉及到應用狀態管理,健康檢查等等一系列的操作,此時這5個字段是不夠的。

??

??

 

挑戰四:CRD 擴展能力強大,DevOps 平臺無法直接復用

CRD(Customize Resource Definition)擴展能力強大,幾乎所有軟件都可以通過CRD的方式進行擴展,包括數據庫、存儲、安全、編排、依賴管理、發布等。但是對DevOps平臺來說,上面接口并沒有向用戶暴露,導致無法直接復用。

??

??

 

挑戰五:DevOps 平臺開發的新能力使用門檻高

如果平臺想要擴展一些能力,而原生的自動擴縮容能力不太合適,希望開發定時的擴縮容YAML文件,隨著業務情況而設置。但此時用戶使用YAML的門檻非常高,不清楚如何使用YAML。隨著新能力開發越來越多,能力之間會出現沖突,這也非常難以管理。

??

??

 

CronHPA

  • 運維同學怎么知道這個擴展能力怎么用?
  • 看 CRD?看配置文件?看 …… 文檔?
  • 擴展能力間出現沖突,導致線上故障
  • 比如:CronHPA 和 默認 HPA 被同時安裝給了同一個應用
  • K8s 擴展能力之間的沖突關系,如何有效管理?如何有效的對運維透出?

挑戰六:不同 DevOps 平臺需要完全重新對接

很多云原生實踐中會遇到的問題,即需要定義非常復雜的YAML,這種方式可以解決企業內部所有問題,但是挑戰在于很難與生態進行對接。如RDS,SLB的能力都嵌到YAML文件中,無法復用,幾乎不具備原子化能力。同時無法協作,無法提供給兄弟部門或生態使用,只能給內部封閉生態使用。上層系統不同應用對接DevOps平臺時,需要寫不同格式的YAML,這也是非常痛苦的。

??

??

 

  • 難以理解,必須通過界面可視化透出
  • 無法復用,幾乎不具備原子化能力
  • 無法協作,只能內部封閉生態使用

三 OAM應用模型的技術原理

Component組件

OAM中常見的概念是Component組件,完全從研發角度定義的待部署單元。下圖右側是YAML中Component的例子,其中黃色部分可以靈活自定義。OAM中會定義標準的架構ContaineriseWorkload,表示工作負載部分,里面是待部署單元的具體描述。這時就可以解決關注點分離的問題,幫助應用側工程師去掉很多細節,只需要關心開發需要關注的端口號,鏡像等等。

??

??

 

應對挑戰一,在OAM中可以定義數據庫表達資源需要使用云資源,Workload中可以根據自己的需要定義不同的組件,包括基于虛擬機的應用、或者老的Function應用。組件是應用開發者關心的。

??

??

 

Trait

如果只是組件,組合起來就可以構建簡單的應用。如果關心應用運維的問題,OAM中有Trait的概念,指的是在原來組件的基礎上附加一些特征。特征指的是運維的能力,如手動擴縮容能力、外部訪問能力、發布、負載均衡。彈性擴縮容、基于流量的管理等等。通過OAM的Trait可以很靈活的得到插件化擴充能力。不同的component綁定不同的特征。

??

??

 

Scope

Component,Trait以及所有組裝起來的Application Configuration就是OAM中的三種主要的概念。但當多個組件共同協作時應該如何處理?OAM中有個邊界Scope的概念,是一種特殊的Trait,將多個Component組合在一起,共享一組資源組,CPU等特征用Scope表示,拓展多個組件的共同特征。

??

??

 

四 OAM加持下的下一代DevOps技術

OAM:以應用為中心的分層模型

OAM是以應用為中心的分層模型,首先需要運行在服務端的OAM解釋器,對于YAML的讀取需要通過OAM解釋器。OAM提供Trait,Component讓用戶填寫,編成APP Config。APP Config通過OAM解釋器具備Deployment,Ingress,HPA或者云資源等能力。這種方法可以將研發、運維基于基礎設施進行分層,研發關心Component,運維關心Trait,基礎設施通過OAM解釋器提供各種能力,與K8s緊密結合,對其應用概念做了補充。

??

??

 

  • 分層
  • 模塊化
  • 可復用

快速的納入K8s生態已有Operater能力

OAM可以快速的納入K8s生態已有的Operater能力,下圖左邊的Component中是一個CRD的實例,右邊是Trait中的CRD的實例,中間表示Component底下的Workload和Trait分別對應了K8s自定義資源的能力。如果想要使用K8s中的某些能力,只需要在Trait中寫入相應的字段即可。

??

??

 

OAM框架解決組件依賴關系和啟動順序

OAM框架解決組件依賴關系和啟動順序。OAM Runtime,OAM解釋器會將組件依賴關系和啟動順序處理好,下圖中Component之間有dependency關系,Trait與Component之間有preComponent或者postComponent等關系。

??

??

 

OAM Trait靈活解決資源綁定難題

啟動順序厘清之后涉及到資源綁定問題,一邊是使用的數據庫,另一邊是Web的程序,Web的程序綁定數據庫連接串資源。在OAM中只需要寫一個Trait就可以解決資源綁定問題,下圖右邊,K8s通過Secret承載連接串信息,Service Binding Trait對應一個運行的Operator,Web Hook拿到Secret后注入進數據庫中。

??

??

 

Workload與Trait交互機制

大家會考慮接入OAM會不會比較麻煩,需不需要改代碼。OAM設計了Workload與Trait交互機制,OAM內部零改造,只需要擴展Workload和Trait。首先,Component中創建Workload實例,再創建Trait實例,只需要在Trait中查看Workload的Definition,從而配置Trait中需要的能力。

??

??

 

OAM內核零改造,插件式快速接入新能力

如果開發了新的能力,碰到沖突問題也是非常頭痛的。在OAM框架中定義Trait時,可以檢查哪些字段是沖突的,拒絕掉新的應用的創建,從而保障Trait之間的兼容性,使得運維問題可發現、可管理。

??

??

 

可發現、可管理的 Traits 系統

OAM:無限能力的DevOps平臺體系

下圖是DevOps平臺體系,最下層是OAM Runtime,一部分是Workload,對應運行時的承載的Runtime,如Function、Container、虛擬機、Serverless Service等。另一部分是Trait,對應運維能力,如發布、彈性擴縮容、日志、安全等等。再上一層可以根據場景化組合(Application Profile)組裝成不同的業務形態平臺,不同平臺可以使用不同組合的Workload和Trait,具備不同的能力。通過OAM標準化的模型構建無限能力的DevOps平臺,滿足各種場景的需要。

??

??

 

在用戶側,OAM加持下的研發DevOps流程在鏡像構建完成之后使用達到統一,OAM提供了APP Config,包含不同的Component,每個Component包含不同的運維能力Trait,支持不同的環境,如測試環境、生成環境。OAM配置統一,適合不同的云,可以拿到不同的集群中直接運行。在K8s側,用戶只需要裝上插件,就可以很方便的嵌入很多豐富的能力。

??

??

【本文為51CTO專欄作者“阿里巴巴官方技術”原創稿件,轉載請聯系原作者】

??戳這里,看該作者更多好文??

 

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2021-08-06 09:47:43

架構開發數據集成

2018-09-27 18:47:45

AIOpsDevOps

2018-09-11 08:00:00

DevOpsAIOps機器學習

2013-07-27 21:28:44

2012-11-16 11:31:39

大數據CRM

2015-09-28 16:24:34

YARNHadoop計算

2017-03-08 10:56:03

大數據架構數據湖

2011-12-06 09:48:57

惠普Automomy

2013-06-27 11:21:17

2022-07-06 11:38:40

人工智能AI

2023-11-13 16:25:08

LinuxOS 8

2011-11-03 14:19:15

2025-01-03 09:24:10

模型架構論文

2020-09-16 10:28:54

邊緣計算云計算數據中心

2020-09-27 17:27:58

邊緣計算云計算技術

2014-08-25 09:54:14

移動辦公趨勢科技

2013-09-09 16:28:36

2012-05-14 09:39:19

思杰

2013-05-21 13:04:45

云計算網絡融合

2016-01-26 11:58:12

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91在线看视频 | 在线播放中文字幕 | www.一级毛片| www.yw193.com | 精品欧美一区二区精品久久久 | 欧美激情一区二区三区 | 黄色毛片在线观看 | 亚洲国产伊人 | 在线播放国产一区二区三区 | 天堂男人av | 国产综合视频 | 日本视频中文字幕 | 日韩欧美二区 | 盗摄精品av一区二区三区 | 在线第一页 | 亚洲精品久久久久久下一站 | 天天干天天插 | 国产日韩精品久久 | 日日操夜夜摸 | 日韩电影中文字幕 | 欧美在线国产精品 | 91精品久久久久久久久中文字幕 | 三级av免费| 欧美成人一区二区 | 91av在线视频观看 | 欧美色综合一区二区三区 | 成人在线精品视频 | 久草.com | 国产成人99久久亚洲综合精品 | 久久欧美高清二区三区 | 中文字幕a√ | 国产69精品久久99不卡免费版 | 亚洲精品乱码8久久久久久日本 | 野狼在线社区2017入口 | 欧产日产国产精品v | 成人精品鲁一区一区二区 | 久久一区精品 | 亚洲精品av在线 | 日韩在线精品 | 亚洲精品在线视频 | 成人激情免费视频 |