林青山
實(shí)踐云原生技術(shù)應(yīng)用,最大化釋放云計(jì)算的技術(shù)紅利,可以讓企業(yè)更加聚焦業(yè)務(wù)本身,快速響應(yīng)市場變化,助力商業(yè)成功。
—阿里巴巴高級技術(shù)專家,阿里云消息負(fù)責(zé)人林清山
數(shù)字化轉(zhuǎn)型已經(jīng)成為眾多企業(yè)的核心戰(zhàn)略,這對于商業(yè)創(chuàng)新有著重要意義。數(shù)字化轉(zhuǎn)型意味著企業(yè)要把業(yè)務(wù)在線化、數(shù)據(jù)化,通過產(chǎn)出大量的業(yè)務(wù)數(shù)據(jù)釋放數(shù)據(jù)價(jià)值;通過數(shù)據(jù)的價(jià)值進(jìn)一步助力商業(yè)業(yè)務(wù)的創(chuàng)新,包括通過數(shù)據(jù)做一些精準(zhǔn)的營銷以及優(yōu)化產(chǎn)能、優(yōu)化供應(yīng)鏈,產(chǎn)出更多的創(chuàng)新業(yè)務(wù);通過業(yè)務(wù)創(chuàng)新,并經(jīng)過市場的檢驗(yàn),數(shù)據(jù)在線化可以形成一個(gè)持續(xù)正向的反饋。
企業(yè)數(shù)據(jù)化意味著要開發(fā)很多以業(yè)務(wù)為中心的軟件,這些軟件需要依賴于強(qiáng)大的IT基礎(chǔ)設(shè)施。
當(dāng)前,云計(jì)算為企業(yè)提供具備較高生產(chǎn)力的IT基礎(chǔ)設(shè)施,使用云計(jì)算作為IT基礎(chǔ)設(shè)施可以實(shí)現(xiàn)更快的數(shù)據(jù)交互。同時(shí),云計(jì)算技術(shù)的應(yīng)用讓企業(yè)無需雇傭人力長時(shí)間的做數(shù)據(jù)中心運(yùn)營,直接使用云計(jì)算提供的數(shù)據(jù)中心,通過持續(xù)的性能優(yōu)化以及規(guī)?;男?yīng)幫助客戶降低成本。
上云為企業(yè)解決了IT基礎(chǔ)設(shè)施的問題,讓企業(yè)能夠投入更多資源聚焦業(yè)務(wù)應(yīng)用的開發(fā),而云原生的主要特點(diǎn)是幫助企業(yè)完成更好的軟件設(shè)計(jì)、開發(fā)、測試和交互。通過實(shí)踐,云原生可以最大化地釋放數(shù)據(jù)價(jià)值,可以天然適配分布式、虛擬、彈性、高可用、自恢復(fù)的計(jì)算存儲資源,讓企業(yè)能夠快速響應(yīng)市場需求。
云原生主要是通過四個(gè)要素來幫助企業(yè)做到這些的。第一個(gè)要素是微服務(wù),微服務(wù)意味著要把龐大的業(yè)務(wù)系統(tǒng)拆分成高內(nèi)聚、松耦合的業(yè)務(wù)單元,在企業(yè)的研發(fā)屬性里可以達(dá)到更高的協(xié)作效率,通過拆分成小而美的微服務(wù),可以實(shí)現(xiàn)低風(fēng)險(xiǎn)的變更,使業(yè)務(wù)快速迭代,實(shí)現(xiàn)更加精細(xì)化的容量管理。第二個(gè)要素是容器化,容器化可以解耦應(yīng)用層,跟底層IT基礎(chǔ)設(shè)施之間耦合,做到各個(gè)云廠商之間的數(shù)據(jù)可移植,同時(shí)可以借助容器管理平臺K8S獲得彈性伸縮、容錯(cuò)、自愈、滾動(dòng)升級等優(yōu)勢。第三個(gè)和第四個(gè)要素是DevOps和CI/CD,它們可以幫助企業(yè)構(gòu)建敏捷開發(fā)文化,建設(shè)持續(xù)集成、持續(xù)交付的工具流程,開發(fā)人員寫的代碼能夠快速迭代、快速發(fā)布,及時(shí)響應(yīng)市場需求。
前面提到云計(jì)算和云原生如何幫助企業(yè)進(jìn)行數(shù)字化轉(zhuǎn)型,下面我們探討一下消息服務(wù)在數(shù)字化轉(zhuǎn)型中發(fā)揮的作用。
消息服務(wù)在數(shù)字化轉(zhuǎn)型中起到兩個(gè)作用:第一個(gè)作用是在微服務(wù)架構(gòu)里,消息服務(wù)可以為微服務(wù)提供基礎(chǔ)支撐,起到異步解耦的作用。企業(yè)拓展新客戶的時(shí)候不需要對上游微服務(wù)進(jìn)行改造,可以降低前端的響應(yīng)延遲,提升用戶體驗(yàn)。第二個(gè)作用是消息服務(wù)具備消峰填谷的作用,可以降低機(jī)器的消耗成本。當(dāng)企業(yè)進(jìn)行數(shù)字化轉(zhuǎn)型之后,勢必會(huì)引用大數(shù)據(jù)技術(shù)充分挖掘數(shù)據(jù)的能力,大數(shù)據(jù)架構(gòu)里有大量來自不同場景的數(shù)據(jù)生產(chǎn)者以及應(yīng)用、數(shù)據(jù)庫等,同時(shí)也有各種不一樣的處理平臺,通過消息隊(duì)列的發(fā)布模式,我們可以聚合各種數(shù)據(jù),把數(shù)據(jù)分發(fā)到不同的數(shù)據(jù)處理平臺進(jìn)行豐富化的業(yè)務(wù)數(shù)據(jù)處理,同時(shí)還可以起到一個(gè)數(shù)據(jù)緩沖的作用,彌補(bǔ)在線業(yè)務(wù)處理和離線數(shù)據(jù)分析的差異。
云原生的核心價(jià)值在使用消息的場景里,消息的開發(fā)者應(yīng)該更加聚焦業(yè)務(wù)開發(fā)本身,降低使用消息的成本。我們認(rèn)為,消息服務(wù)向云原生方面去演進(jìn)需要具備以下五個(gè)重要的特征。第一個(gè)是易用性,云原生的消息服務(wù)特征應(yīng)該是開箱即用的模式。第二個(gè)是標(biāo)準(zhǔn)化,云原生的消息服務(wù)需要有完善的管理控制平臺來建立社區(qū)標(biāo)準(zhǔn)和自建標(biāo)準(zhǔn),降低客戶使用消息的門檻。第三個(gè)是多樣性,不同行業(yè)、不同場景對于消息的訴求是不一樣的,云原生的消息服務(wù)必須具備多樣性來滿足不同客戶的需求。第四是低成本,云原生消息服務(wù)應(yīng)該像自來水一樣,提供所見即所得的消息服務(wù)。第五個(gè)是高SLA,數(shù)字化軟件的業(yè)務(wù)連續(xù)性對企業(yè)來說至關(guān)重要,我們需要通過引入云原生的消息服務(wù)幫助企業(yè)做到更高的可用性。
前面提到云原生消息服務(wù)的重要作用和時(shí)代特征,下面介紹一下阿里云RocketMQ的云原生演進(jìn)。RocketMQ是誕生于阿里巴巴集團(tuán)內(nèi)部的電商核心交易系統(tǒng)。
提到RocketMQ的云原生化,首先是K8S化。云原生消息K8S化是指通過自定義CRD資源將有狀態(tài)的消息集群托管至Kubernetes集群中,充分利用K8S提供的部署、升級、自愈等能力提高運(yùn)維效率,同時(shí)盡可能享受K8S的社區(qū)生態(tài)紅利。其次是Serverless化。Serverless化主要是兩個(gè)維度的概念。一方面根據(jù)業(yè)務(wù)規(guī)模自動(dòng)化擴(kuò)縮容實(shí)例規(guī)格、隊(duì)列數(shù)等邏輯資源;另一方面,根據(jù)服務(wù)端負(fù)載自動(dòng)化擴(kuò)縮容計(jì)算、存儲等物理資源。最后是Mesh化,RocketMQ將消息的富客戶端能力下沉至Sidecar,將消息的服務(wù)發(fā)現(xiàn)、負(fù)載均衡、流量監(jiān)控等職責(zé)與業(yè)務(wù)邏輯隔離,在運(yùn)行時(shí)完成透明組裝,同時(shí)提供細(xì)粒度的消息灰度和治理能力。
RocketMQ在云原生的建設(shè)主要是承載消息隊(duì)列的存儲、分發(fā)以及位點(diǎn)管理,目前我們的系統(tǒng)已經(jīng)接入了業(yè)界大部分主流的數(shù)據(jù)處理平臺,未來,我們會(huì)給客戶提供更加輕量級的應(yīng)用。
(根據(jù)演講內(nèi)容整理,未經(jīng)本人審核)