近日,2019攜程技術(shù)峰會在上海舉行,本屆峰會主題為“技速前進(jìn),與智攜行”,聚焦大數(shù)據(jù)與人工智能、無線大前端、架構(gòu)演進(jìn)、云原生四大熱門技術(shù)領(lǐng)域,網(wǎng)易云首席架構(gòu)師劉超受邀在云原生分會場發(fā)表演講,為與會嘉賓分享了網(wǎng)易大規(guī)模容器化與Service Mesh的實(shí)踐經(jīng)驗(yàn)。
網(wǎng)易云首席架構(gòu)師 劉超
隨著云原生技術(shù)的發(fā)展,容器化和微服務(wù)也在企業(yè)數(shù)字化轉(zhuǎn)型升級的過程中發(fā)揮著越來越重要的作用。網(wǎng)易作為業(yè)內(nèi)云原生技術(shù)的先行者,在容器和微服務(wù)的實(shí)踐上積累了豐富的經(jīng)驗(yàn)。劉超將網(wǎng)易的容器和微服務(wù)化歷程總結(jié)為四個(gè)階段。
階段1:應(yīng)用層和基礎(chǔ)設(shè)施各自為戰(zhàn)
第一個(gè)階段,應(yīng)用層和基礎(chǔ)設(shè)施層各自為戰(zhàn),表現(xiàn)在組織架構(gòu)上就是開發(fā)只負(fù)責(zé)寫代碼,運(yùn)維只負(fù)責(zé)管理資源和部署應(yīng)用。隨著應(yīng)用的增多,應(yīng)用層成為煙囪式的架構(gòu),運(yùn)維也倍感壓力,通過腳本化部署解放人力。這個(gè)階段的主要問題是腳本不成體系,難以維護(hù);虛擬機(jī)依賴人工調(diào)度;高可用依賴底層FT、HA、DR機(jī)制,無法區(qū)分業(yè)務(wù)優(yōu)先級;網(wǎng)絡(luò)、虛擬化、存儲等基礎(chǔ)設(shè)施無抽象化概念,復(fù)雜度高,全面依賴運(yùn)維,大量審批。
階段2:應(yīng)用層服務(wù)化,進(jìn)入“云原生怪圈”正循環(huán)
這些問題迫使應(yīng)用層開始進(jìn)行服務(wù)化拆分,進(jìn)入第二階段。但微服務(wù)的體系建立并非一蹴而就,服務(wù)化的拆分,服務(wù)的注冊和發(fā)現(xiàn)只是基礎(chǔ)。服務(wù)化架構(gòu)給應(yīng)用層帶來的直接問題包括服務(wù)雪崩,大量請求堆積、故障恢復(fù)慢等問題,需要引入fail fast、熔斷、軟負(fù)載均衡等機(jī)制。另一方面,隨著應(yīng)用層服務(wù)數(shù)量的增多,也會對基礎(chǔ)設(shè)施層產(chǎn)生壓力,造成服務(wù)器資源的分配困難以及環(huán)境的管理和部署困難。
“云原生怪圈”驅(qū)動的應(yīng)用層與資源層正循環(huán)
而當(dāng)企業(yè)通過基礎(chǔ)設(shè)施層云化,平臺自助化實(shí)現(xiàn)資源層的靈活調(diào)度后,又會激發(fā)應(yīng)用層數(shù)量的增長。劉超將這個(gè)過程形象地比喻為“云原生怪圈”,而這個(gè)圈中的正向循環(huán)是云原生概念的核心體現(xiàn),也是驅(qū)動網(wǎng)易不斷在容器和微服務(wù)領(lǐng)域探索和優(yōu)化的動力。
階段3:基礎(chǔ)設(shè)施層提供統(tǒng)一應(yīng)用層框架
這時(shí)微服務(wù)框架和服務(wù)治理還停留在應(yīng)用層,業(yè)務(wù)方面臨大量業(yè)務(wù)代碼之外的開發(fā)工作,一方面需要基礎(chǔ)設(shè)施層統(tǒng)一微服務(wù)框架與開源技術(shù)棧,來服務(wù)業(yè)務(wù)方;另一方面需要基于Jenkins打造CI/CD服務(wù),并抽象出產(chǎn)品、環(huán)境等多級概念,匹配實(shí)際研發(fā)情境。據(jù)劉超介紹,在第三個(gè)階段,網(wǎng)易一方面通過微服務(wù)治理邏輯抽離為微服務(wù)治理框架NSF,以無侵入的方式實(shí)現(xiàn),并支持Spring Cloud、Dubbo等開源技術(shù)棧;另一方面通過引入APM,API網(wǎng)關(guān),容器和分布式事務(wù)等,解決這個(gè)階段遇到的最新問題。尤其是容器化的改造,要兼容虛擬機(jī)部署模式,逐漸遷移,并且要和IaaS做到深度的融合,從而實(shí)現(xiàn)最優(yōu)的性能。
階段4:基礎(chǔ)設(shè)施層提供Service Mesh框架
現(xiàn)階段,也就是第四個(gè)階段,網(wǎng)易的部分業(yè)務(wù)已經(jīng)在進(jìn)行基礎(chǔ)設(shè)施層提供Service Mesh框架的嘗試。以網(wǎng)易嚴(yán)選為例,其向Service Mesh遷移的方案整體基于Envoy+Istio,從數(shù)據(jù)面來看,Outbound指向Sidecar,Inbound可配置流量攔截,控制面以Pilot為核心,注冊中心通過Kubernetes原生方式實(shí)現(xiàn)。同時(shí),遷移過程中由于要兼容舊的架構(gòu),可以通過灰度引流的方式實(shí)現(xiàn)逐步遷移。
此外,為了應(yīng)對容器化后,測試環(huán)境需求指數(shù)增長的問題,輕舟微服務(wù)還提供了流量染色功能。比如基于流量染色的測試環(huán)境管理,整個(gè)測試環(huán)境共享一套基準(zhǔn)環(huán)境,部署所有應(yīng)用,分支環(huán)境僅部署增量服務(wù);全棧多環(huán)境多機(jī)房流量染色方案,可以同機(jī)房部署多套Kubernetes實(shí)現(xiàn)A/B測試,也可應(yīng)對Kubernetes的升級風(fēng)險(xiǎn)問題。
云原生架構(gòu)的“一棧式”工具鏈
網(wǎng)易將在微服務(wù)領(lǐng)域的實(shí)踐經(jīng)驗(yàn)以輕舟微服務(wù)平臺的方式賦能內(nèi)外部用戶,幫助其實(shí)現(xiàn)易接入、易運(yùn)維的微服務(wù)解決方案。輕舟微服務(wù)平臺包括七大產(chǎn)品線,可以覆蓋云原生架構(gòu)的“一棧式”工具鏈。例如,API網(wǎng)關(guān)、NSF微服務(wù)框架和分布式事務(wù)主要用于構(gòu)建中臺體系,加速業(yè)務(wù)創(chuàng)新;容器平臺主要用于探索互聯(lián)網(wǎng)模式,支撐高并發(fā)應(yīng)用;CI/CD和GoAPI測試平臺,主要實(shí)現(xiàn)持續(xù)集成和灰度發(fā)布,用于優(yōu)化產(chǎn)品體驗(yàn)。
申請創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!