進(jìn)擊的云原生,為開發(fā)者提供更多可能性
背景
云原生是云計算發(fā)展的必然產(chǎn)物,而云原生的持續(xù)生長也絕非偶然。
2021年,云原生呈現(xiàn)怎樣的面貌、又帶來了哪些新變化?阿里云容器服務(wù)研發(fā)總監(jiān)易立近日在阿里云開發(fā)者大會發(fā)表了《云原生應(yīng)用新邊界》的演講,并表示,云原生為開發(fā)者提供了三方面便利:應(yīng)用基礎(chǔ)設(shè)施“零”維護(hù)、應(yīng)用架構(gòu)現(xiàn)代化“零”阻力、數(shù)字與物理世界“零”邊界。
云原生:因云而生
云原生是因云而生的技術(shù),它根植于開發(fā)者,并提供最大云價值。
在 CNCF 2020 開發(fā)者現(xiàn)狀報告中,現(xiàn)在全球有超過 470 萬開發(fā)者在使用云原生技術(shù),占全部后端開發(fā)者的 36%。開發(fā)者已經(jīng)成為云原生變革最主要的推動力量。
應(yīng)用基礎(chǔ)設(shè)施“零”維護(hù)
容器、Serverless 等云原生技術(shù)持續(xù)推動計算界面上移,復(fù)雜性下沉,讓開發(fā)者可以關(guān)注于業(yè)務(wù)創(chuàng)新而非基礎(chǔ)設(shè)施,這樣可以極大提升研發(fā)效率。
阿里云為開發(fā)者提供了全國最豐富的云原生產(chǎn)品,幫助企業(yè)專注于業(yè)務(wù)創(chuàng)新、而非基礎(chǔ)設(shè)施建設(shè)。企業(yè)可以通過容器服務(wù), 函數(shù)計算,服務(wù)網(wǎng)格,實現(xiàn)應(yīng)用架構(gòu)的互聯(lián)網(wǎng)化,在此之上,云原生數(shù)據(jù)庫、云原生 AI,云原生大數(shù)據(jù)等產(chǎn)品更可以幫助企業(yè)加速業(yè)務(wù)流程的數(shù)字化與智能化。
應(yīng)用架構(gòu)現(xiàn)代化“零”阻力
越來越多的企業(yè)希望通過應(yīng)用現(xiàn)代化改造,比如微服務(wù)化、Mesh 化,帶來新的的收益,更好地滿足業(yè)務(wù)發(fā)展的需求。不過新技術(shù)也會給現(xiàn)有應(yīng)用架構(gòu)帶來很大的沖擊。利用云原生技術(shù),可以循序漸進(jìn)將現(xiàn)有應(yīng)用架構(gòu)平滑升級。
在對現(xiàn)有應(yīng)用進(jìn)行現(xiàn)代化改造時, 開發(fā)者需要把一個單體應(yīng)用程序分拆為分布式的微服務(wù)架構(gòu), Spring Cloud / Dubbo 等微服務(wù)架構(gòu)都是以 SDK 代碼庫的方式把服務(wù)治理邏輯構(gòu)建在應(yīng)用程序之中。但這種架構(gòu)存在幾個問題:
侵入性:在微服務(wù)框架中,服務(wù)治理能力的實現(xiàn)和生命周期與業(yè)務(wù)邏輯耦合在一起的。服務(wù)治理能力的變更和增強需要應(yīng)用的重新構(gòu)建和部署,導(dǎo)致升級和維護(hù)成本提升。
實現(xiàn)綁定:由于微服務(wù)框架代碼庫通常由特定語言實現(xiàn),難以支持多語言(polyglot)異構(gòu)系統(tǒng)之間的集成為挑戰(zhàn)。
因此,社區(qū)提出 Service Mesh(服務(wù)網(wǎng)格)架構(gòu) —— 將應(yīng)用的業(yè)務(wù)邏輯與服務(wù)治理能力解耦。服務(wù)治理的能力運行在一個獨立的 Sidecar 進(jìn)程之中,獨立部署。通過網(wǎng)絡(luò)攔截來實現(xiàn)對應(yīng)用透明的服務(wù)發(fā)現(xiàn)、流量管理、可觀測性、安全等能力。
解決了上述侵入性、綁定的問題,具體優(yōu)勢如下:
復(fù)雜性下沉:服務(wù)治理實現(xiàn)下沉到基礎(chǔ)設(shè)施,可以獨立演進(jìn)。使得開發(fā)人員可以更加聚焦于業(yè)務(wù)應(yīng)用本身。
零侵入:無需代碼改造既可以實現(xiàn)零信任安全,可觀測性等高階能力。
多語言支持:可以透明支持多種編程語言和編程框架。
那么,微服務(wù)與服務(wù)網(wǎng)格是否非此即彼,魚與熊掌不可得兼?在進(jìn)行服務(wù)網(wǎng)格改造的同時,如何與現(xiàn)有微服務(wù)架構(gòu)兼容并存?
隨著社區(qū)的努力,服務(wù)網(wǎng)格和微服務(wù)可以很好地結(jié)合在一起, 支撐企業(yè)微服務(wù)架構(gòu)平滑演進(jìn)。
阿里云提供的托管服務(wù)網(wǎng)格 ASM
支持 Dubbo 通信協(xié)議, 通過聲明式方式支持灰度發(fā)布、金絲雀發(fā)布、無損下線等能力。
利用阿里開源的 Nacos 服務(wù)注冊中心,可以統(tǒng)一支持 Mesh 應(yīng)用和微服務(wù)應(yīng)用的服務(wù)注冊與發(fā)現(xiàn)。Nacos 2.0 性能提升 10 倍, 有效地支持大規(guī)模服務(wù)網(wǎng)格應(yīng)用落地。
Apache Dubbo 3.0 也在探索 Proxyless 式,也就是采用無代理方式支持服務(wù)網(wǎng)格; 在 Proxyless 模式下無需 Sidecar 即可直接通過服務(wù)網(wǎng)格的 UDPA 協(xié)議實現(xiàn)對 Dubbo 應(yīng)用的流量管理。這種方式可以進(jìn)一步網(wǎng)絡(luò)延遲,減少資源開銷。
服務(wù)網(wǎng)格也加強了對虛擬機應(yīng)用部署的支持,助力遺留應(yīng)用的平滑升級。
以東風(fēng)日產(chǎn)汽車為例,介紹企業(yè)的服務(wù)網(wǎng)格化遷移之路。首先,它的數(shù)據(jù)服務(wù)采用 Python / Java 等不同語言開發(fā),Java 應(yīng)用使用 Dubbo 微服務(wù)框架,Python 使用 REST/HTTP 進(jìn)行服務(wù)調(diào)用,缺乏統(tǒng)一的服務(wù)治理能力;其次,虛擬機、容器化部署等多種方式并存,希望全面遷移到容器架構(gòu)。
通過 ASM 服務(wù)網(wǎng)格, 無論 Python / Java 應(yīng)用,是虛擬機不是還是容器化部署, 都可以加入服務(wù)網(wǎng)格, 以統(tǒng)一的、聲明的方式實現(xiàn)服務(wù)治理。其中,現(xiàn)有 Dubbo 微服務(wù)應(yīng)用和網(wǎng)格中的應(yīng)用, 可以統(tǒng)一使用 Nacos 注冊中心實現(xiàn)服務(wù)注冊與發(fā)現(xiàn), 保持現(xiàn)有應(yīng)用架構(gòu)的兼容性。
數(shù)字與物理世界“零”邊界
數(shù)字化創(chuàng)新需要深入行業(yè),將物理和數(shù)字世界融合在一起,才能實現(xiàn)創(chuàng)新的業(yè)務(wù)價值。云邊端計算一體協(xié)同成為趨勢,昨天的阿里云峰會描繪了未來云發(fā)展的方向,一云多芯,一云多形態(tài),云與 AIoT 相結(jié)合,這有這樣才能支撐無處不在的計算。而以容器為代表的云原生技術(shù),因為其敏捷、輕量、可移植的優(yōu)勢,將成為下一代分布式云應(yīng)用的最重要的載體。
物流是數(shù)字化創(chuàng)新的典型場景,圍繞著人、貨、機、車四個維度,涉及大量的數(shù)據(jù)處理,智能調(diào)度等復(fù)雜業(yè)務(wù)場景。以申通快遞為例,每天涉及數(shù)億包裹的中轉(zhuǎn)、運輸和派送。數(shù)字化技術(shù)在物流供應(yīng)鏈優(yōu)化方面發(fā)揮重要作用。申通快遞基于阿里云邊緣容器產(chǎn)品構(gòu)建了整體云邊端一體化架構(gòu)的物流云 PaaS 平臺。
PaaS 平臺在中心云負(fù)責(zé)分布式資源調(diào)度和應(yīng)用管理,大數(shù)據(jù)處理和智能化分析。
位于各地倉儲中心的邊緣云節(jié)點結(jié)合 IoT 設(shè)備支持快遞業(yè)務(wù)的核心流程,掃描校驗等操作在本地即可完成,降低了延遲,減少了對云端的強依賴。
這樣架構(gòu)能夠幫助企業(yè)成本下降 30%, 穩(wěn)定性從 99.9% 提升到 99.95%,不但支撐了日常的業(yè)務(wù)開展,也能從容應(yīng)對雙十一這樣的業(yè)務(wù)高峰。
菜鳥物流云 PaaS 正是利用阿里云邊緣容器服務(wù) ACK@Edge,解決了計算下沉后的分布式資源調(diào)度、應(yīng)用管理、自治運維等挑戰(zhàn)。而其背后的核心技術(shù)就是阿里云開源的 OpenYurt 項目,該項目已經(jīng)成為 CNCF 沙箱項目。
邊緣計算面臨著算力分散,資源異構(gòu)以及弱網(wǎng)連接等技術(shù)挑戰(zhàn)。OpenYurt 是基于 Kubernetes 打造的云邊協(xié)同計算框架,具備邊緣應(yīng)用管理,邊緣自治自愈、邊緣算力管理等核心能力。
此外,OpenYurt 堅持在原生 K8s 非侵入實現(xiàn),主打標(biāo)準(zhǔn)化和開放性。在過去兩年 OpenYurt 已實現(xiàn)在 CDN、優(yōu)酷、菜鳥、工業(yè)大腦、城市大腦等行業(yè)的落地,也支撐了聲網(wǎng)、快手等客戶。
如果云是企業(yè)智能化的大腦,而 IoT 設(shè)備就是眼和手,實現(xiàn)了與物理世界的交互。利用 K8s 降低海量分布式設(shè)備的管理復(fù)雜性,可以將分布式應(yīng)用和 IoT 設(shè)備實現(xiàn)統(tǒng)一管理和更好的協(xié)同。將云原生與 IoT 相結(jié)合,會有巨大的創(chuàng)新機遇。
攜手VMware共建云原生IoT生態(tài)聚開源社區(qū)合力打造領(lǐng)域標(biāo)準(zhǔn)
阿里云容器服務(wù)負(fù)責(zé)人易立、VMware 中國研發(fā)中心研發(fā)總監(jiān)路廣聯(lián)合宣布達(dá)成雙方在“云原生邊緣計算”領(lǐng)域的技術(shù)戰(zhàn)略合作,希望未來依托開源社區(qū)力量,加速邊緣云原生生態(tài)系統(tǒng)的構(gòu)建,共同推動云邊融合進(jìn)程,幫助更多企業(yè)全面擁抱數(shù)智化轉(zhuǎn)型升級。
基于共同的理想和愿景,OpenYurt 社區(qū)與 Linux 基金會下屬 EdgeX Foundry 社區(qū)會在邊緣計算、IoT、云原生領(lǐng)域深入合作:一方面,通過云原生方式重新定義 IoT 領(lǐng)域的設(shè)備管理模式,實現(xiàn)設(shè)備孿生能力;一方面,并利用 EdgeX Foundry 成熟的技術(shù)生態(tài),讓云原生應(yīng)用支持各種物聯(lián)網(wǎng)協(xié)議和設(shè)備。
阿里云開源項目 OpenYurt 和由 VMware 共同發(fā)起并維護(hù)其中國社區(qū)的開源項目 EdgeX Foundry 展開深度合作,將幫助企業(yè)和邊緣業(yè)務(wù)開發(fā)者在不需要對 K8s 進(jìn)行任何改造的基礎(chǔ)下,輕松打造云邊端一體化協(xié)同的 IT 架構(gòu)。作為“即插即用”的開源 IoT Edge 平臺,Edge X Foundry(EdgeX)支持來自不同制造商,使用不同協(xié)議的設(shè)備。同時,OpenYurt 通過原生插件即可將 Kubernetes 延伸至邊緣場景,并且支持所有的上游 Kubernetes 特性。
此外,會上宣布《阿里云云原生架構(gòu)實踐》正式出版。這是一部從技術(shù)和商業(yè)雙重視角剖析云原生如何賦能實際業(yè)務(wù)的著作,是阿里云智能云原生應(yīng)用平臺團隊的經(jīng)驗總結(jié),得到了阿里云智能總裁兼達(dá)摩院院長張建鋒、阿里巴巴首席技術(shù)官程立、阿里云智能基礎(chǔ)產(chǎn)品事業(yè)部負(fù)責(zé)人蔣江偉等專家的聯(lián)袂推薦。
本書內(nèi)容全面,對云原生所涵蓋的技術(shù)和業(yè)務(wù)特性一覽無余,從設(shè)計原則、模式/反模式、技術(shù)選項、設(shè)計方法、行業(yè)案例等多個維度全面總結(jié)阿里云云原生架構(gòu)的方法論和實踐經(jīng)驗。