云原生時代,隨著容器技術(shù)、微服務(wù)架構(gòu)思想、產(chǎn)品研發(fā)運營模式不斷地推陳出新和迅速發(fā)展,應(yīng)用的設(shè)計和開發(fā)落地門檻已經(jīng)降低到了歷史低點。根據(jù)IDC的調(diào)查研究表明,從2018年到2023年將有超過500,000,000個應(yīng)用被創(chuàng)建,這個數(shù)字是過去40年所有創(chuàng)建應(yīng)用的總和。
另外,在IDC于2020年2月發(fā)布的《IDC FutureScape:全球云計算2020年預(yù)測——中國啟示》中顯示,云原生應(yīng)用所影響的領(lǐng)域正逐漸從互聯(lián)網(wǎng)走向非互聯(lián)網(wǎng),從傳統(tǒng)應(yīng)用升級走向云原生。當(dāng)下,云原生技術(shù)的成熟正極大地影響著個人、企業(yè)乃至整個社會的生產(chǎn)生活方式。
在這場應(yīng)用的變革中,越來越多的應(yīng)用所有方會將應(yīng)用基礎(chǔ)設(shè)施交由更加專業(yè)的公有云/混合云服務(wù)商進行管理,通過API的方式對基礎(chǔ)設(shè)施進行管理,由服務(wù)商提供更加敏捷和無縫的部署管理功能。如此,應(yīng)用所有方可以將更多的投資及人力投入聚焦到應(yīng)用本身的業(yè)務(wù)邏輯設(shè)計、開發(fā)、運維和體驗優(yōu)化,大大減少了產(chǎn)品上市的時間并得到了更高的可伸縮性,使應(yīng)用開發(fā)的ROI(投資回報率)最大化。
一、使用微服務(wù)架構(gòu)構(gòu)建云原生應(yīng)用
云原生應(yīng)用的定義有多種版本,最早為2015年pivital提出了云原生應(yīng)用的定義,隨后CNCF在2015年也對云原生應(yīng)用進行了定義,2018年進行了重定義,具體定義可以參考kubernetes-handbook??梢园l(fā)現(xiàn)自從云原生的概念出現(xiàn),微服務(wù)架構(gòu)就是云原生應(yīng)用中濃墨重彩的一部分。
1.1.使用微服務(wù)的場景
構(gòu)建云原生應(yīng)用,首先一定是企業(yè)或者個人想要最大程度將自己的時間和精力從復(fù)雜的底層依賴開發(fā)維護中解放出來,集中在業(yè)務(wù)場景的設(shè)計和實現(xiàn)上,并且能夠獨立解耦的自動化完成應(yīng)用各個模塊的開發(fā)落地。這意味著獨立開發(fā)的某一模塊或負責(zé)某一單獨業(yè)務(wù)的開發(fā)者,會最大程度的利用云廠商提供的DevOps工具鏈完成整個應(yīng)用開發(fā)運維的共同目標(biāo),這樣大家可以輕松地將應(yīng)用作為一個松耦合的服務(wù)集合快速發(fā)布和更新,降低成本的同時也更容易避免單點故障。
1.2.微服務(wù)應(yīng)用在技術(shù)棧中的位置
假設(shè)應(yīng)用所有者已經(jīng)做好了微服務(wù)的業(yè)務(wù)設(shè)計,我們來看看在落地階段,微服務(wù)應(yīng)用在產(chǎn)品研發(fā)和運行中的位置:
紅色部分為微服務(wù)應(yīng)用的核心模塊,是由應(yīng)用所有者開發(fā)和維護地運行時微服務(wù)應(yīng)用。隨著業(yè)務(wù)的增長,受系統(tǒng)能力影響,為了提高微服務(wù)的高可用、可靠性以及韌性,需要對微服務(wù)進行治理。常見的治理手段有:負載均衡、熔斷、限流、降級、容錯和隔離等,篇幅有限這里不加贅述。
黃色部分從左到右代表從Dev到Ops的技術(shù)。首先,選擇使用侵入式框架開發(fā)服務(wù)或者非侵入式網(wǎng)格接入遺留應(yīng)用或多語言服務(wù)。微服務(wù)框架可以選擇SpringCloud、Dubbo、ServiceComb等,服務(wù)網(wǎng)格可選擇Istio等。框架或服務(wù)網(wǎng)格可以幫助開發(fā)者處理微服務(wù)運行時面臨的橫切面問題(crosscutting concern),比如:日志框架(log4j/logback)、健康檢查、metrics、分布式追蹤等。其次,編碼完成后,可使用云服務(wù)廠商提供的DevOps工具鏈能力實現(xiàn)代碼的歸檔、編譯構(gòu)建、發(fā)布部署等能力,將微服務(wù)部署在運行環(huán)境中。最后,還可以利用云服務(wù)廠商提供的運維能力對微服務(wù)進行運維監(jiān)控。一般來說,云服務(wù)廠商提供的應(yīng)用平臺能力也是獨立而解耦的,應(yīng)用所有者可根據(jù)自己的需求和預(yù)算來自定義選擇自己需要的服務(wù)。
紫色部分是運行時技術(shù)棧,藍色箭頭代表流量的流向。當(dāng)微服務(wù)部署運行起來后,流量會從各種客戶端首先連接到入口(比如服務(wù)網(wǎng)關(guān)/ELB),同時,流量在這里會根據(jù)請求特征分發(fā)到各個對應(yīng)的業(yè)務(wù)處理微服務(wù),隨后對請求進行一系列的處理,返回結(jié)果。微服務(wù)的運行還依賴了很多中間件,比如:分布式事務(wù)、緩存、消息等;還有一些微服務(wù)的功能特性,比如:服務(wù)網(wǎng)格、服務(wù)注冊發(fā)現(xiàn)等,這些中間件或特性也都由框架或者云服務(wù)廠商提供。微服務(wù)和中間件等其實都是上層服務(wù)部署在基礎(chǔ)設(shè)施上,比如:虛機、容器或CCI實例。
綜上所述,一個應(yīng)用的落地其實涉及到很多技術(shù)和場景,使用微服務(wù)架構(gòu)開發(fā)應(yīng)用可以最大程度的簡化應(yīng)用所有者對底層設(shè)施和中間件的管理運維,通過自定義使用云服務(wù)廠商提供地全場景、端到端的應(yīng)用平臺能力,將資源聚焦在業(yè)務(wù)創(chuàng)新和落地上(紅框部分)。
二、華為云微服務(wù)基于云原生技術(shù)的案例
一個成熟的微服務(wù)解決方案產(chǎn)品需要經(jīng)歷足夠大的業(yè)務(wù)量侵襲,才能變得更加成熟和可靠。華為終端業(yè)務(wù)中的應(yīng)用市場、Vmall、瀏覽器、華為音樂、負一屏等20多款應(yīng)用,5億多的用戶量,日均千億次調(diào)用,背后正是由一萬多微服務(wù)實例集群在支撐。
早期華為終端業(yè)務(wù)部門自研GAF單體應(yīng)用架構(gòu)并不能滿足業(yè)務(wù)的高并發(fā)、敏捷迭代的需求,運維的成本和難度成幾何級上升?;贑SE微服務(wù)框架,智能助手將其后端拆分為多個微服務(wù),實施集群部署,開發(fā)效率提高一倍,系統(tǒng)吞吐量提高50%,系統(tǒng)開銷降低30%,運維效率也大幅提升,智能助手應(yīng)用SLA提升到99.96%。更輕量級的架構(gòu)拆分至多個3-5人的微服務(wù)團隊,采用DevOps開發(fā)模式,真正實現(xiàn)Cloud-Native敏捷開發(fā)。
華為消費者云基于Apache ServiceComb的高性能,低延遲的異步技術(shù)來實現(xiàn)1,500多個節(jié)點級的微服務(wù),支持7.6億移動手機用戶在線。使用ServiceComb,QPS提升2倍+,時延降低45%。目前,華為終端業(yè)務(wù)中的應(yīng)用市場已在全球100多個國家上線,支持70多種語言,累積下載超過1200億次。
一直以來,華為云作為Apache ServiceComb項目的開發(fā)主力,并基于Apache ServiceComb在華為云微服務(wù)應(yīng)用平臺ServiceStage提供對應(yīng)的商業(yè)化服務(wù),在云原生領(lǐng)域,華為云持續(xù)深耕,降低技術(shù)門檻,將云原生技術(shù)紅利不斷釋放給企業(yè);在商業(yè)領(lǐng)域,華為云不斷加強產(chǎn)品服務(wù)能力,為更多企業(yè)上云、數(shù)字化轉(zhuǎn)型提供共同發(fā)展的沃土。