有人說 2019 年可能是最近十年最壞的一年,但也有可能是往后十年最好的一年。我們不贊同這樣的觀點(diǎn)。對(duì)未來,我們依然保持樂觀,因?yàn)楸^者往往正確,樂觀者往往成功。 2020 年值得關(guān)注的十大技術(shù)趨勢(shì)有哪些呢?讓我們一起來了解一下。
云原生將以容器的形態(tài)落地
2019 年,還是有很多人會(huì)對(duì)“云原生”充滿了疑惑甚至誤解。這想必也是為何我們一直能夠在不同場合聽到關(guān)于云原生的各種不同定義的原因所在。有人說,云原生就是 Kubernetes 和容器;也有人說,云原生就是“彈性可擴(kuò)展”;還有人說,云原生就是 Serverless;而后來,有人干脆做出判斷:云原生本身就是“哈姆雷特”,因?yàn)槊總€(gè)人的理解都不一樣。
實(shí)際上,自從這個(gè)關(guān)鍵詞被 CNCF 和 Kubernetes 技術(shù)生態(tài)“借用”之初,云原生的意義和內(nèi)涵就是非常確定的。在這個(gè)生態(tài)當(dāng)中, 云原生的本質(zhì)是一系列最佳實(shí)踐的結(jié)合;更詳細(xì)地說,云原生為實(shí)踐者指定了一條低心智負(fù)擔(dān)的,能夠以可擴(kuò)展、可復(fù)制的方式最大化地利用云的能力、發(fā)揮云的價(jià)值的最佳路徑。所以說,云原生并不指代某個(gè)開源項(xiàng)目或者某種技術(shù),它是一套指導(dǎo)軟件與基礎(chǔ)設(shè)施架構(gòu)設(shè)計(jì)的思想。 這種思想,以一言以蔽之,就是“以應(yīng)用為中心”。
正是因?yàn)橐詰?yīng)用為中心,云原生技術(shù)體系才會(huì)無限強(qiáng)調(diào)讓基礎(chǔ)設(shè)施能更好地配合應(yīng)用,以更高效的方式為應(yīng)用“輸送”基礎(chǔ)設(shè)施能力,而不是反其道而行之。而相應(yīng)的, Kubernetes 、Docker、Operator 等在云原生生態(tài)中起到關(guān)鍵作用的開源項(xiàng)目,就是讓這種思想落地的技術(shù)手段。以應(yīng)用為中心,是指導(dǎo)整個(gè)云原生生態(tài)和 Kubernetes 項(xiàng)目蓬勃發(fā)展至今的重要主線。2020 年,隨著容器,尤其是 Kubernetes 的迅猛發(fā)展,CNCF 基于 Kubernetes 這樣一個(gè)“種子”迅速構(gòu)建起來一個(gè)以數(shù)百個(gè)開源項(xiàng)目組成的龐大生態(tài),使得云原生的落地趨勢(shì)越來越清晰:以容器的形態(tài)落地, 把“以應(yīng)用為中心”進(jìn)行到底。
DDD 即將撞上敏捷式的尷尬
DDD(領(lǐng)域驅(qū)動(dòng)設(shè)計(jì))的思想發(fā)端于 2004 年,在過去的十余年時(shí)間中一直不溫不火,直到最近兩年才得到越來越多的關(guān)注度。有人說,正是托微服務(wù)的福,DDD 才有了流行的土壤。實(shí)際上,目前微服務(wù)的劃分方法里全球共識(shí)的就是 DDD,但 DDD 的核心思想并不僅僅局限于微服務(wù)本身。 因?yàn)槲⒎?wù)是一種架構(gòu)風(fēng)格,而 DDD 是一種思想。微服務(wù)定義的九大核心特質(zhì),跟 DDD 的原則是完全一致的,這在某種程度上也是業(yè)界愿意在微服務(wù)上下文中采用 DDD 方法和實(shí)踐的原因。
雖然 DDD 的關(guān)注度日漸提升,但在實(shí)踐過程中,也遇到了敏捷開發(fā)式的尷尬:如何調(diào)整組織架構(gòu)以適配 DDD?過去業(yè)界提到敏捷開發(fā),都說對(duì)個(gè)體的要求太高,但實(shí)際上并不是。表面上看敏捷對(duì)開發(fā)人員的技能要求高,實(shí)際上是因?yàn)槊艚蓍_發(fā)要求調(diào)整組織架構(gòu),很多人不愿意動(dòng),因此業(yè)務(wù)和技術(shù)協(xié)作上的問題很難解決。
DDD 面臨的困境同樣如此。在過去,技術(shù)這條線的劃分可能是開發(fā)一部、開發(fā)二部,業(yè)務(wù)這條線的劃分可能是業(yè)務(wù)一線、業(yè)務(wù)二線。但 DDD 的劃分理念是從業(yè)務(wù)角度劃分成領(lǐng)域,領(lǐng)域再劃成服務(wù),落地的時(shí)候采用微服務(wù)架構(gòu),以前的劃分方式完全適配不了。所以直接造成 DDD 落地難的阻礙也是組織結(jié)構(gòu)。具體表現(xiàn)就是協(xié)作不起來,各條線相互甩鍋,領(lǐng)導(dǎo)抱怨團(tuán)隊(duì)人員能力不夠??梢灶A(yù)見,隨著微服務(wù)和中臺(tái)思想的持續(xù)升溫,2020 年 DDD 將會(huì)變得更加流行,但由此帶來的問題也會(huì)愈加凸顯。
Service Mesh將迎來技術(shù)的普及年
2018 年至今,Service Mesh 的熱度直線上升。而隨著 Kubernetes 生態(tài)體系的逐漸建立和完善,基于 Kubernetes 應(yīng)用程序的規(guī)模和復(fù)雜性將增加,Service Mesh 將成為有效管理那些應(yīng)用程序所必需的一切。企業(yè)對(duì)其的需求將會(huì)快速增長。
2020 年 Istio 作為控制平面的一種技術(shù)實(shí)現(xiàn)仍將在 Service Mesh 領(lǐng)域扮演核心角色。Istio 獲得業(yè)界廣泛關(guān)注的原因,在于背靠 Google 公司的內(nèi)部工程實(shí)踐,以及對(duì)工程實(shí)踐的再思考和重新提煉。而在國內(nèi)也有阿里巴巴等大玩家參與其中。未來市場上可能還有其他競爭者的空間,但市場的整合將于 2020 年開始。從長遠(yuǎn)來看,很可能會(huì)看到類似 Kubernetes 的情況,其中出現(xiàn)了贏家,公司開始標(biāo)準(zhǔn)化那個(gè)贏家。目前來看,業(yè)界正在圍繞 Istio 建立生態(tài),Istio 似乎最有可能成為事實(shí)上的 Service Mesh。
2019 年 Service Mesh 的解決方案用例較為單一,展望 2020 年,相信會(huì)有更多的公司通過實(shí)踐而對(duì) Service Mesh 的價(jià)值更有體會(huì),通過創(chuàng)造更多的成功用戶故事、案例而加速 Service Mesh 的普及。也許,2020 年將成為 Service Mesh 技術(shù)的普及年。
Serverless 從觀望走向落地
Gartner 最近的一份報(bào)告表明,到 2020 年,全球?qū)⒂?20% 的企業(yè)部署無服務(wù)器架構(gòu)。這說明無服務(wù)器架構(gòu)不只是一個(gè)流行語,更是一種眾所周知的云計(jì)算趨勢(shì),并且已經(jīng)在軟件世界掀起一場革命。大型廠商(如亞馬遜、微軟和谷歌)已經(jīng)在無服務(wù)器架構(gòu)領(lǐng)域重資投入,追趕革命的浪潮。
Serverless 已從觀望期走向了落地進(jìn)程,O'Reilly 近期的一份千人樣本的調(diào)查顯示,超過 40% 的受訪者已在使用,50% 的開發(fā)者想要嘗試。2020 年 Serverless 的發(fā)展將取得更多進(jìn)展:Serverless 計(jì)算平臺(tái)的能力有了長足進(jìn)步,變得更加通用;Serverless 正在從偏離線業(yè)務(wù)進(jìn)入在線業(yè)務(wù);Serverless 生態(tài)不斷發(fā)展,在應(yīng)用構(gòu)建、安全、監(jiān)控報(bào)警等方面涌現(xiàn)了很多開源項(xiàng)目和創(chuàng)業(yè)公司,工具鏈越來越成熟;用戶對(duì) Serverless 的接受度不斷增加。除了互聯(lián)網(wǎng)等迅速擁抱新技術(shù)的行業(yè),傳統(tǒng)企業(yè)如銀行用戶也開始采用 Serverless 技術(shù);Java 語言、社區(qū)不斷努力,試圖成為 Serverless 平臺(tái)的主流語言;基于 WebAssembly(WASM)的 FaaS 方案有望出現(xiàn)。
WebAssembly 將成為 Web 新技術(shù)浪潮主角
雖然前端一直是推陳出新速度最快、開發(fā)者最愛抱怨“學(xué)不動(dòng)”的技術(shù)領(lǐng)域,但是回顧剛剛過去的 2019 年,多位專家都會(huì)這樣告訴我們:2019 年大前端領(lǐng)域增速放緩,并沒有出現(xiàn)很多顛覆性技術(shù)。仔細(xì)想想這個(gè)說法確實(shí)也站得住腳,無論框架、語言還是前后端分工,2019 年并未出現(xiàn)重磅新聞,主要的“廝殺”都在細(xì)分領(lǐng)域展開。這未嘗不是好事,可能意味著前端正在走向成熟。
WebAssembly 至今已經(jīng)發(fā)展了三四年時(shí)間,2019 年發(fā)展速度之快超乎想象。3 月份 Mozilla 提出 WASI ;Mozilla、Fastly、英特爾與紅帽宣布成立 Bytecode Alliance(字節(jié)碼聯(lián)盟);2019 年末的大事件則是 WebAssembly 進(jìn)入 W3C 成為正式推薦標(biāo)準(zhǔn)。
Docker 聯(lián)合創(chuàng)始人在 Twitter 上說的一句話更是給 WebAssembly 添了一把火:“如果 WASM+WASI 在 2008 年就已誕生,那么我們就用不著創(chuàng)建 Docker 了?!钡罱鼘?duì) Java 開發(fā)人員進(jìn)行的一項(xiàng)調(diào)查顯示,只有一小部分人在使用 WebAssembly,因?yàn)槟壳按蠹疫€找不到放棄 Java 的理由。
Wasm 現(xiàn)階段的應(yīng)用場景還比較少,主要的幾個(gè)應(yīng)用場景都集中在前端密集計(jì)算業(yè)務(wù)的優(yōu)化上,除此之外也有 AI、區(qū)塊鏈上的嘗試。預(yù)測 2020 年 WebAssembly 應(yīng)該主要還是以標(biāo)準(zhǔn)制定及基礎(chǔ)設(shè)施(瀏覽器、編譯器等)實(shí)現(xiàn)發(fā)展為主,在 Post-MVP 沒有被完全落地的情況下,Wasm 很難跳出目前的幾個(gè)應(yīng)用場景來進(jìn)行能夠放到生產(chǎn)環(huán)境上的試驗(yàn),這也是 2020 年 Wasm 將會(huì)面臨的一個(gè)比較大的挑戰(zhàn)。
當(dāng)然現(xiàn)階段對(duì)于 Java 開發(fā)者而言,由于現(xiàn)階段 Wasm 標(biāo)準(zhǔn)的落地進(jìn)度并沒有達(dá)到可以為 Java 開發(fā)者或者前端開發(fā)者提供很多的、能夠解決前端實(shí)際問題的 Wasm 落地場景,因此導(dǎo)致更多的開發(fā)者只是采取觀望態(tài)度。2020 年這樣的情況是否會(huì)有所改善,可能還要看 Wasm 標(biāo)準(zhǔn)在工具鏈和瀏覽器層面的落地實(shí)現(xiàn)程度。
除了 WebAssembly,2020 年值得關(guān)注的前端趨勢(shì)還有很多,比如 Serverless,比如前端智能化。