《構建Serverless體驗的云原生應用平臺-孫健波.pdf》由會員分享,可在線閱讀,更多相關《構建Serverless體驗的云原生應用平臺-孫健波.pdf(27頁珍藏版)》請在三個皮匠報告上搜索。
1、構建 Serverless 體驗的云原生應用平臺孫健波(天元)阿里云 高級技術專家OAM/KubeVela 項目負責人云原生應用模型(OAM)及 KubeVela 項目主要作者專注于推動標準化云原生應用交付和管理體系在開源和云上全面落地,負責阿里云 Serverless 應用平臺建設。技術布道師/開源愛好者多屆 KubeCon、ArchSummit 大會講師參與開源社區近 10 年,先后貢獻過 CloudFoundry、Docker、Kubernetes 等數十個云原生、PaaS 領域的開源項目。孫健波(天元)歡迎聯系:阿里云 云原生應用平臺團隊 高級技術專家容器:標準化的交付介質Kubern
2、etes:標準化的基礎設施管理與抽象K8s CRD Operator:自動化的運維模型Infrastructure as Code:基礎設施即代碼云原生的崛起,帶來了交付介質、基礎設施管理、運維模型和持續交付理論的全面升級和突破,形成了繁榮的技術生態,加速了云計算時代到來。云原生帶來了技術的全面升級蓬勃發展的云原生生態Shift Left is about doing things earlier in the development cycle.應用開發的整個生命周期各項職責不斷向研發側左移https:/devopedia.org/shift-leftshift left!更高的效率更高的效
3、率更低的成本更低的成本研發效率研發效率交付效率交付效率運維效率運維效率資源成本資源成本軟件成本軟件成本人力成本人力成本交付成本交付成本Cloud Infrastructure!#!#$%&()*+,-./012345$%&()*+,-./012345q 測試左移q 安全左移q 交付左移q 監控左移q!#$%&()*+,-./012&3!#$%&()*+,-./012&3應用交付流水線RolloutController基礎工作負載制品倉庫提交發布YAML 文件安全掃描策略實例灰度/擴縮容策略流量策略日志&監控策略sidecarPrometheusService MonitorPodDeploym
4、entCRDnamespaceLabel&AnnotationsIstioVirtual ServiceServiceHorizontalPodAutoscalerValidatingWebhookMutatingWebhookPV/PVCStatefulSetJob 以容器工作負載為核心構建基礎設施 基于代碼或腳本對接已有的 CI/CD 體系或內部平臺 以 K8s 原生 API 為標準集成界面,無廠商綁定 充分利用 K8s 生態的各類 CRD Operator 做能力擴展Charts6789:);+?6789:);+?ABCDEFABCDEFGHIJ5GHIJ5挑戰:云和 K8s 基礎設施的
5、復雜性暴露給了開發者應用開發者?水平擴縮容要怎么設置?minReplicas,maxReplicas 設置多少?網關的負載均衡設置成15s 健康檢查夠嗎?Pod 驅逐策略(PDB)是什么?maxUnavailable 設置為多少?CPU 和 內存的 limits 該怎么設置?應用的命名空間 quota 值該設置多少?q 基礎設施的 API 版本變更暴露給了開發者應用開發者q 基礎設施的功能過度暴露給了應用開發者挑戰:現代應用天然面向多云混合環境依賴編排巡檢策略故障注入資源綁定端云聯調云資源創建/銷毀可觀測性策略(日志&metrics)安全掃描策略實例灰度/擴縮容 策略流量策略多集群開發測試環境
6、預發聯調環境生產環境云資源綁定遠端 exec實時日志集群環境初始化斷點調試熱加載通知、告警可觀測性策略(日志&metrics)攻防演練云廠商自建機房現代微服務應用ECSRDS數據庫SLB業務 Pod業務 PodPrometheus同一個應用,在不同環境下部署的組件依賴差異巨大數據庫、負載均衡、K8s,在不同云上也存在諸多差異ARMS同一個應用,在不同場景下的運維能力要求差異巨大q開發者面對不同場景心智負擔重。開發者面對不同場景心智負擔重。q系統缺乏統一交付和管理能力。系統缺乏統一交付和管理能力。q需要補充大量人工操作,缺乏自動化需要補充大量人工操作,缺乏自動化。平臺開發無法滿足日益增長的應用管
7、理訴求傳統 PaaS有限的、不可擴展的專有 API 與能力云計算生態“無限”的應用基礎設施能力挑戰:傳統平臺模式封裝的方法不再適用q 易于使用,但管控能力的擴充主要依靠平臺本身升級實現q 封閉、鎖定、黑盒化的 APIq 一旦平臺層人力投入不足便跟不上研發訴求+?)KLMNO125+?)KLMNO125易于獲取且一致一致的開發/測試環境易于理解和使用的統一統一API可灰度可灰度、可回滾、可回滾的發布環境安全、可靠、自動化qServerless 化的運行體驗 基礎設施無關、免運維免運維高可用高可用且異常行為可觀測可觀測 具備彈性伸縮彈性伸縮能力構建交付Kubernetes Multi-Cluste
8、rsCloudsIoT/EdgeCI PipelineJenkins.運行按需付費q多環境統一的構建流程q自動化的交付流程業務開發者的核心訴求:Serverless 體驗復雜性復雜性認知負荷認知負荷回滾配置回滾配置多集群網絡多集群網絡開發團隊可接受的開發團隊可接受的認知負荷認知負荷向開發團隊屏蔽向開發團隊屏蔽開發團隊操作開發團隊操作業務發展業務發展場景變化場景變化能力習得能力習得https:/ 和 KubeVela:標準化應用模型和平臺構建引擎KubeVela統一應用模型構建自動化可擴展編排持續交付和管理Kubernetes Multi-ClustersCloudsIoT/EdgeCI Pip
9、elineJenkins.CICDAddon CatalogDay-2 OperatingAPIUIGitOpsObservabilityCLIOAM 是標準化應用模型,KubeVela 是基于 OAM 的實現引擎:q面向開發者的 Serverless 體驗,基礎設施無關q 面向終態的聲明式交付工作流,自動化編排q 面向混合環境,天然支持多集群和云資源q IaC/可編程,高度可擴展q CNCF 項目:https:/ Application Modelq統一的頂層應用模型(OAM)描述組件(Component)描述核心工作負載,如 web 服務,數據庫云服務、一次性任務等。運維特征(Trait)
10、針對運維方式的定義,如高可用方式、擴縮容、網關、灰度發布方式等。VSKubernetes資源示例資源示例OAM OAM 被信通院采納發布被信通院采納發布云計算開放應用模型云計算開放應用模型行業標準。行業標準。標準應用模型(OAM)webservicescalergatewayDeploymentServiceIngress輸出多個資源輸出單個資源對資源參數增補基于 IaC 的模塊定義組件定義組件定義q 面向 IaC 可擴展體系設計imagereplicas運維特征定義運維特征定義運維特征定義運維特征定義按需靈活可擴展運維特征定義運維特征定義path port class domain組件定義組
11、件定義運維特征定義運維特征定義實現無關ApplicationPlatform Team能力模板:X-DefinitionsEnd Users選擇部署環境 Environment準備環境部署插件 Addons選擇能力模板 X-Definition,填寫參數,組裝成一個KubeVela Applicatione.g.image=appreplicas=2host=myapp.io注冊Component TypesTraitsWeb ServiceCron JobAutoscaleRolloutRouteDatabaseStaging ClusterProduction ClusterProduct
12、ion ClusterWeb ServiceRouteDatabase將“最佳實踐”構建成模板享受“以應用為中心”的軟件交付體驗部署OAMX-DefinitionOAMX-DefinitionOAMApplicationOpenKruiseTerraformControllerDeploymentIstioKEDAFlaggerRDSSLB云服務ECSOAM 模型的工作模式reference the definitionFluxCDOAM ApplicationAddon CatalogEnd UserwebserviceRedisClickhouseTaskhelmRDSRegister a
13、s Definition Modulesq 插件是可發現、可復用、易于安裝的能力集合。q 插件中心是 PaaS 能力市場,提供了 PaaS 生態標準化的途徑。q 目前社區的插件中心已經有50+50+開箱即用的插件。OAM DefinitionsPlatform BuilderCapability ProvidersClickhouse Operatorhttps:/ 模型的插件生態PullKubeVela Control PlaneACKACKIoT/EdgeCluster GatewayPushPushPullOn-premisesOpen Cluster Managementq天然支持多集
14、群部署天然支持多集群部署,可定義不同的集群部署拓撲和差異化配置。,可定義不同的集群部署拓撲和差異化配置。q同時支持推送(同時支持推送(Push)和子集群訂閱()和子集群訂閱(Pull)兩種集群管理模式。)兩種集群管理模式。q運行時無侵入,僅在控制面對子集群操作,可以對接用戶的運行時無侵入,僅在控制面對子集群操作,可以對接用戶的K8s自定義擴展。自定義擴展。管控集群資源不會對子集群有任何侵入面向現代應用:天然支持跨多集群/混合環境交付Control PlaneRuntime Level CapabilitiesComponent BComponent AComponent CCloudsKube
15、rnetes ClustersApplicationtraitstraitstraitsTerraform controllerData Input/OutputDependencyCommunity addonsKubeVela Addons面向現代應用:天然支持異構環境統一交付用戶只需聲明式描述需要觀測的組件,配置相應的運維特征,無需關心可觀測性基礎設施的構建方式??捎^測性基礎設施相應的配置流程基于 IaC 的方式統一可擴展,從采集到大盤展示流程自動化,無需手動操作。GrafanaPrometheusLoki(vector)DashboardMetricsLogsKubeVela Appl
16、icationobservability traitsq Observability as Code.q面向用戶自定義的可觀測能力面向用戶自定義的可觀測能力qKubeVela應用應用大盤大盤q K8s原生資源大盤原生資源大盤q KubeVela系統大盤系統大盤q K8s系統大盤系統大盤q 內置大盤自動化生成除了可擴展的可視化大盤能力,KubeVela 內置了大量自動生成的大盤,方便自運維,實時觀測系統問題。面向現代應用:將可觀測性作為一等公民內置支持開發運維人員Application(統一應用定義)Component AStep 1WorkflowStep 3Step 2支持自定義步驟的工作流
17、引擎(狀態機)Component BTrait 1Trait 2面向現代應用:靈活自定義應用交付處理流程內置豐富的流程處理能力可擴展、可編程、可復用、自動化輕量高效無需創建容器執行結構化的流程控制和校驗Workflow Step Definition(基于 IaC 的模塊化封裝)超時:30minStep E發布回滾Step A構建鏡像Step B多地域鏡像推送Step C安全合規審計Step D部署到預發布環境Step I部署到生產 Region CStep G部署到生產 Region AStep H部署到生產 Region B多步驟并行Step F條件判斷Data PassingImage
18、ID參數輸出參數輸入指標正常Step J發送通知If:.failedIf:Always部署失敗CI 集成安全合規多集群多環境部署Multi-ClustersRPC 請求HTTP 請求,K8s API 操作,多集群部署,流程控制等等內置原子化執行函數,支持多語言自定義內置函數基于 RPC 的自定義函數Cloud ProvidersIoT/Edge可觀測能力應用交付工作流引擎KubeVela 是一個工作流驅動的統一交付引擎變更管理系統變更管理系統KubeVela ApplicationVela CLIVelaUXvela statusvela topvela execResource Topolo
19、gyvela logsvela debugvela port-forwardCloud ShellHistory LogsWorkflow Progressq面向面向多集群、自定義資源建設的統一、靈活的命令行工具多集群、自定義資源建設的統一、靈活的命令行工具q簡單易用、將交付流程透明可視化的簡單易用、將交付流程透明可視化的UI界面界面VelaUX:基于 KubeVela 引擎構建的端到端應用平臺零門檻、零改造,基于容器生態的一站式應用托管平臺企業級特性彈性資源池高可用免運維按需付費核心優勢使用場景微服務應用容器工作負載Web 應用批任務處理定時任務大數據 ETLServerless 應用引擎
20、SAE(KubeVela)鏡像加速GB 級鏡像 秒級啟動微服務治理優雅上線/下線+全鏈路灰度JVM 極致優化啟動加速40%,線程占用省20%低門檻、零改造Spring 應用零代碼改造遷移安全穩定核心業務打磨、合規安全可觀測智能彈性秒級彈性擴縮、100%資源利用微服務架構轉型低門檻容器化轉型輕松應對流量洪峰脈沖一鍵啟停、降本增效Serverless基礎設施神龍裸金屬服務器袋鼠安全容器盤古 2.0 存儲洛神網絡平臺提供的全托管 Kubernetes 集群SAE:基于 KubeVela 的阿里云 Serverless 應用平臺敏捷變更敏捷變更編寫 IaC 配置即可快速驗證和變更開發效率從 1d 提升
21、至 1h可復用可復用充分復用 K8s 生態、沉淀擴展能力PaaS 層能力多產品共享,極大減少開發成本面向終態面向終態面向終態的事件監聽和自愈狀態更新從分鐘級延遲降到毫秒級多環境管理多環境管理具備多環境資源管理能力自動化的跨環境部署可擴展可擴展/可編程可編程通過 CUE 編程完成邏輯的處理,包括數據處理(API 解析),狀態控制,業務日志等可視化可視化通過頁面直觀地展示工作流的流轉和資源拓撲高效發現問題,降低運維成本KubeVela 帶來的研發效能KubeVela 的社區生態超過 300 家海內外企業采納超過 330 萬次鏡像下載超過 4500 個 Star超過 4000 個 Issue 和 P
22、R超過 300 位貢獻者超過 50 位社區 Member,Maintainer從代碼、文檔到會議的中英雙語國際化社群,超過 5000 位社群成員2022 年度 CNCF 全球活躍項目排名第 25 位,中國第 3 位。https:/ as CodeWorkflowSecurityAcross Clusters DeliveryObservabilityVelaDKubeVela Control PlaneCloud ProvidersMulti Kubernetes ClustersIoT/EdgeVelaUX(UI Console)AddonsVela CLIGitOpsAPI(K8s CRD
23、)https:/ GatewayTerraform ControllerVela UXVela PrismVela WorkflowOpen ClusterManagement社區已經具備社區已經具備50+50+認證插件認證插件KubeVela CLI 工具提供應用交付和管理操作,如應用更新、重啟、暫停、狀態查看、日志查詢等。VelaUX 是 KubeVela 的 UI 控制臺 為用戶提供簡單易用的圖形化界面?;?Terraform 提供云資源接入?;?k3s 本地一鍵拉起KubeVela 環境,不依賴 K8s集群,便于構建開發/測試環境。提供簡便的 API 擴展能力,讓用戶以操作 K8s 原生資源的方式調用第三方 API,如 Grafana 的監控報表生成。提供統一的多集群接口,對接 OCM 等不同多集群技術,支持多集群權限認證。獨立的工作流引擎 提供一次性的交付動作編排能力,如多應用初始化部署、對多應用做擴縮容運維編排等。KubeVela 生態項目一覽Thanks