Matt Asay
“乏味”(boring)是對(duì)基礎(chǔ)架構(gòu)技術(shù)所能給予的最高贊譽(yù)之一。沒有人想要在“火辣時(shí)髦”的技術(shù)上運(yùn)行關(guān)鍵任務(wù)應(yīng)用程序。但如果是乏味的技術(shù)呢?那很好。
乏味表明一項(xiàng)技術(shù)的普遍性和可信度已到了某種程度,它廣為人知且易于管理。Kubernetes已部署在78%的企業(yè)的生產(chǎn)環(huán)境中,可以說已到了這個(gè)程度,已被廣泛認(rèn)為是“切實(shí)可行”的支持云的標(biāo)準(zhǔn)底層技術(shù)。
或者換句話說,Kubernetes已變得“乏味”。
就在云原生計(jì)算基金會(huì)(CNCF)幫助協(xié)調(diào)其他一系列項(xiàng)目的開發(fā),以填補(bǔ)Kubernetes在基礎(chǔ)架構(gòu)層留下的任何空白之際,Kubernetes方面的對(duì)話已開始轉(zhuǎn)移到堆棧上層。今年4月,知名的開發(fā)者倡導(dǎo)者Kelsey Hightower表示,Kubernetes只解決了更新改造應(yīng)用程序的一半問題:
“在基礎(chǔ)架構(gòu)層‘更新改造應(yīng)用程序方面投入了大量的努力,但是在應(yīng)用程序?qū)樱ㄏ胂肟蚣芎蛻?yīng)用程序服務(wù)器)方面沒有同等的投入,我們只解決了一半問題?!?/p>
對(duì)此我們?cè)撛趺崔k?
Lightbend的首席技術(shù)官兼聯(lián)合創(chuàng)始人Jonas Bonér在接受采訪時(shí)說:“基礎(chǔ)架構(gòu)與構(gòu)建完整應(yīng)用程序之間存在巨大空白。”Bonér幫助啟動(dòng)了開源項(xiàng)目Akka,該項(xiàng)目位于堆棧中的Kubernetes之上,旨在解決基礎(chǔ)架構(gòu)和應(yīng)用程序之間的一個(gè)復(fù)雜問題。正如Bonér所說:“程序員要做的實(shí)際工作就是填補(bǔ)這個(gè)巨大的空白,這就意味著為業(yè)務(wù)部門提供服務(wù)等級(jí)協(xié)議(SLA),這在分布式系統(tǒng)中很難實(shí)現(xiàn),但應(yīng)用程序?qū)右浞掷肒ubernetes及其生態(tài)系統(tǒng),就需要這么做。”
Bonér繼續(xù)說,企業(yè)組織需要讓介于應(yīng)用程序和基礎(chǔ)架構(gòu)之間的系統(tǒng)完全切實(shí)可行。不是說關(guān)鍵在于替換任何系統(tǒng),而是往工具箱添加更多工具,并將基礎(chǔ)架構(gòu)隔離模型以及網(wǎng)絡(luò)施加的約束擴(kuò)展到應(yīng)用程序本身中——并以一種直觀、靈活、強(qiáng)大但又簡(jiǎn)單的編程模型來提供。
正如特斯拉的兩名工程師在去年一次會(huì)議上所討論的,特斯拉依賴“數(shù)字孿生”功能支持其電網(wǎng),這一切得益于Akka和Kubernetes的結(jié)合。特斯拉工程師Colin Breck說:“我們的大多數(shù)微服務(wù)在Kubernetes中運(yùn)行,而Akka和Kubernetes可謂天作之合。”
他解釋道:“Kubernetes可以處理擴(kuò)展方面的粗粒度故障,因此可以進(jìn)行諸如增加或減少Pod、運(yùn)行存活監(jiān)測(cè)或以指數(shù)退避機(jī)制重啟失效Pod之類的操作。然后,我們使用Akka處理細(xì)粒度故障,比如斷路或重試單個(gè)請(qǐng)求,以及為單個(gè)實(shí)體的狀態(tài)(比如電池在充電或放電)建模?!?p>
據(jù)Bonér聲稱,云原生堆棧上的Kubernetes方面仍存在3個(gè)尚未解決的領(lǐng)域,帶來了Akka等技術(shù)提供的新抽象:應(yīng)用程序?qū)咏M合、狀態(tài)性用例和傳輸中數(shù)據(jù)用例。
Bonér特別指出:“人們常常使用一套舊的工具、習(xí)慣和模式,它們通常源自傳統(tǒng)的(整體式三層)設(shè)計(jì),這種設(shè)計(jì)抑制和約束了Kubernetes提供的云模型?!彼硎?,我們需要將容器、服務(wù)網(wǎng)格和編排“非常好”的模型一直擴(kuò)展到應(yīng)用程序/業(yè)務(wù)邏輯,那樣我們可以在充分利用它的同時(shí)代表應(yīng)用程序維護(hù)端到端保證。
無服務(wù)器技術(shù)指明了道路:它提高了抽象級(jí)別,并提供一種聲明式模型:平臺(tái)消除和管理盡可能多的樣板代碼、基礎(chǔ)架構(gòu)和操作,從而使開發(fā)人員專心于核心方面:業(yè)務(wù)邏輯及工作流程。
云生態(tài)系統(tǒng)的大部分主要處理所謂的類似12因素應(yīng)用程序(12-factor)的應(yīng)用程序,即無狀態(tài)應(yīng)用程序。有時(shí)這可能正是你需要的。但重要的應(yīng)用程序通常結(jié)合無狀態(tài)用例和狀態(tài)性用例。
Bonér說:“我們需要更多更好的工具來處理好狀態(tài)。如今,價(jià)值通常在于數(shù)據(jù),通常在于蘊(yùn)含大多數(shù)業(yè)務(wù)價(jià)值的狀態(tài)性用例——確保你可以快速訪問這些數(shù)據(jù),同時(shí)確保正確性、一致性和可用性?!?/p>
在云中,除非有非常好的模型以及支持它的工具,否則會(huì)被迫回到三層架構(gòu):每次將所有內(nèi)容推送到數(shù)據(jù)庫(kù)中,無論它用于狀態(tài)的通信、協(xié)調(diào)還是長(zhǎng)期運(yùn)行。
重要的是,你還需要良好的狀態(tài)模型來補(bǔ)充無狀態(tài)方法,從而為工具箱增添更多的選擇。Bonér特別指出,如今,Kubernetes處理狀態(tài)性用例的程度實(shí)際上僅在其StatefulSets功能中得到支持,但StatefulSets是為實(shí)施數(shù)據(jù)庫(kù)等基礎(chǔ)架構(gòu)的人員設(shè)計(jì)的,而不是為應(yīng)用程序開發(fā)人員設(shè)計(jì)的。
Bonér說:“因此,這里仍存在巨大空白。這是Akka真正發(fā)揮用場(chǎng)的地方?!?h3>處理快速數(shù)據(jù)或傳輸中數(shù)據(jù)用例
可以說,Kubernetes生態(tài)系統(tǒng)尚未為基于流和基于事件的用例提供強(qiáng)大支持。Bonér表示,像Istio這樣的服務(wù)網(wǎng)格是圍繞請(qǐng)求-響應(yīng)模型設(shè)計(jì)的,“可能會(huì)擋路”。流也常常是狀態(tài)性的,各階段在內(nèi)存中聚合數(shù)據(jù),同時(shí)需要確??捎眯?。Bonér表示,Knative社區(qū)正在竭力解決該問題,但我們剛邁出了一步。
推動(dòng)業(yè)界邁向這些新方向的主力軍似乎是低代碼/無代碼/“前后端脫鉤”概念,這些概念為無服務(wù)器運(yùn)動(dòng)起到了推波助瀾的作用。
Bonér說:“無服務(wù)器使我們更有望解決將Kubernetes模型擴(kuò)展到應(yīng)用程序本身這個(gè)問題。這就是關(guān)鍵。盡可能地進(jìn)行抽象,轉(zhuǎn)而使用一種聲明式配置模型,而不是編程模型,在該模型中你定義應(yīng)該執(zhí)行的操作,而不是定義如何執(zhí)行?!?h3>“切實(shí)可行”的應(yīng)用程序基礎(chǔ)架構(gòu)
隨著云原生堆棧繼續(xù)在Kubernetes基礎(chǔ)架構(gòu)層上發(fā)展,應(yīng)用程序?qū)拥倪@些概念如何實(shí)際服務(wù)于特定的語(yǔ)言開發(fā)人員還需拭目以待。雖然應(yīng)用程序架構(gòu)許多最棘手的挑戰(zhàn)長(zhǎng)期以來一直是服務(wù)器端Java開發(fā)關(guān)注的點(diǎn),但我們似乎正朝著Jamstack架構(gòu)邁進(jìn):JavaScript開發(fā)人員日益要求訪問切實(shí)可行的應(yīng)用程序基礎(chǔ)架構(gòu),尤其是當(dāng)端點(diǎn)設(shè)備數(shù)量急劇增加時(shí)。
這倒不是說后端基礎(chǔ)架構(gòu)不重要。正如Ian Massingham所言,這是承認(rèn)前端開發(fā)人員的數(shù)量遠(yuǎn)超過后端開發(fā)人員,這有其充分理由:需要構(gòu)建的應(yīng)用程序比需要為托管它們而創(chuàng)建的基礎(chǔ)架構(gòu)多得多。通過Akka之類的開源項(xiàng)目在兩者之間架起橋梁變得越來越重要。
本文作者M(jìn)att Asay是亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)的負(fù)責(zé)人。Asay以前是Adobe的開發(fā)者生態(tài)系統(tǒng)負(fù)責(zé)人。加盟Adobe之前,Asay在多家開源公司擔(dān)任過一系列職務(wù)。他是開源組織(OSI)的名譽(yù)董事會(huì)成員,擁有斯坦福大學(xué)法學(xué)博士學(xué)位,主要研究開源及其他知識(shí)產(chǎn)權(quán)(IP)許可問題。
原文網(wǎng)址
https://www.infoworld.com/article/3567648/what-comes-after-kubernetes.html