云原生集成開發(fā)環(huán)境——TitanIDE
通過網(wǎng)頁在任何地方更安全、更高效地編碼2022-04-20
822
4月14日,《行云圓桌派第一期:云原生Dapr的發(fā)展與實踐》正式開播!活動由樂魚創(chuàng)新CEO馬洪喜,微軟最有價值專家、.NET技術(shù)專家張善友,微軟云技術(shù)布道師盧建暉,樂魚創(chuàng)新云原生架構(gòu)師張磊四位嘉賓與大家聊聊Dapr的發(fā)展情況和落地遇到的問題、Dapr應(yīng)用場景實踐、未來展望等。
以下內(nèi)容為活動實錄:
馬洪喜:我們這次活動有三方面的議題,第一部分,我們先來看一下Dapr的發(fā)展情況,其實我自己是門外漢,但我聽得很多,也跟經(jīng)常跟幾位老師交流。Dapr由微軟公司主要發(fā)起,我感覺它算是一個比較革命性的技術(shù),為開發(fā)者在構(gòu)建微服務(wù)上帶來很多優(yōu)勢。首先由盧老師來給大家講一講Dapr的前世今生,包括微軟為啥會投入推出Dapr,還有整個的社區(qū)的發(fā)展情況怎么樣?
盧建暉:如果要說微軟推出Dapr的原因,我反而是想從Dapr這個產(chǎn)品,它誕生的意義是什么來聊聊。談到分布式的云原生應(yīng)用,我們會先想到微服務(wù),即所謂現(xiàn)代的分布式云原生應(yīng)用程序的主要方式,有很多人會拿它去跟傳統(tǒng)的單體架構(gòu)做對比。微服務(wù)相比起傳統(tǒng)架構(gòu)有很多優(yōu)勢,但同時微服務(wù)架構(gòu)也會帶來非常多的挑戰(zhàn)。例如,微服務(wù)如何更好被發(fā)現(xiàn)?開發(fā)者如何輕松地在本地調(diào)用服務(wù)?如何在最大的限度里減少應(yīng)用升級需要的時間等。Dapr提供很多的構(gòu)建塊,主要解決了幾個問題:有服務(wù)到服務(wù)的調(diào)用,發(fā)布訂閱的信息,狀態(tài)的管理,觀察性和密鑰的一些管理,這些東西都是Dapr的能力。
我在這里舉一個Dapr常用的例子,例如一個微服務(wù)要調(diào)用另外一個微服務(wù),通常我們需要做幾件事?第一個,我們要實現(xiàn)服務(wù)之間的通信,如果你用K8S去實現(xiàn)的話,可能會用類似的DNS去做一些管理,如果開發(fā)人員在本地運行這些微服務(wù),那會遇到什么問題?由于每個微服務(wù)都會有不同的端口,這個時候需要有一些替代的機制來在本地運行使用這些正確的服務(wù)。但Dapr不論你是在自托管的這種模式,還是說k8s上面,都可以非常方便去運作。
另外是微服務(wù)之間的通訊,有可能會有網(wǎng)絡(luò)上的問題。開發(fā)者可能需要去重試,不斷得去重試。當(dāng)然你可能會用很多的一些庫去完成,很麻煩,Dapr自帶這功能。還有安全通信的問題。我們現(xiàn)在通信要用加密的話就是用mTLS ,用身份驗證去做相關(guān)的工作。但是如果你要自行配置,就會很麻煩,我自己也會有時候會懵掉。而Dapr已經(jīng)有所有的服務(wù)到服務(wù)之間的通訊,帶mTLS 的服務(wù),可以為你去加密,而且證書會自動循環(huán),可以消除很多煩惱。
分布式的跟蹤也是Dapr上自帶的功能。在安全性上,服務(wù)a可能被允許訪問服務(wù)b,但是相反的話是不能進(jìn)行的,所以在進(jìn)行配置的時候也會非常痛苦。如果不特別注重安全,也會很容易出錯。但是Dapr是非常方便的,通過控制的列表去提供這種訪問。作為http的微服務(wù)的訪問的一個替代的方案,從http遷移到grpc。如果你在微服務(wù)的環(huán)境里面去做,有些時候如果你不熟悉,也會遇到很多的問題。因為你同時需要做很多,客戶端的服務(wù)器都需要去升級,另外的就是兩個協(xié)議之間的改變,你可能都要花很多的時間,但是Dapr可以很好解決這些問題,所以Dapr的誕生為開發(fā)者提供的一些API,它支持了多語言,面向多跨云的能力,可以讓你更容易的去專注到業(yè)務(wù)上面,或者一些實際的工作上面,不需要太過復(fù)雜,而且它解決了很多開發(fā)者可能要面臨很多的配置化設(shè)定的一些問題。
大家會一直在問Dapr這個社區(qū)是怎么樣的,包括微軟是怎么用好Dapr的。微軟雖然說Dapr的發(fā)起方,但其實現(xiàn)在有很多的一些友商,包括說像阿里,華為也在Dapr社區(qū)去貢獻(xiàn)一些代碼,說明Dapr具有開放性。而且在社區(qū)里面我看得到,很多公司包括行云都在推廣推廣Dapr做社群,目前dapr是非常的年輕,相信隨著時間的推移,我覺得dap的社區(qū)會越來越壯大。
張善友:我用Dapr時間比較久,從一開始就跟蹤做一些例子,我博客上有一篇Dapr的介紹文章,目前為止大概有好幾萬的瀏覽量。今年我也用Dapr落地了幾個項目,有 .NET的,也有Java的。我覺得Dapr為項目解決非常大的一個問題就是語言選擇,特別是很多.NET開發(fā)同學(xué),或者從.NET轉(zhuǎn)到到j(luò)ava的同學(xué)會有較深的感受。有很多原來.NET開發(fā)者,想找一個較好的微服務(wù)框架,后來看上SpringCloud,它發(fā)展非常成熟。但多用戶用SpringCloud,不僅僅是要解決業(yè)務(wù)開發(fā)問題,還是解決一堆基礎(chǔ)設(shè)施的問題,搞一堆的中間件,而且局限于Java,而Dapr就能很好解決這個問題。而且我們開發(fā)的應(yīng)用通常會部署在多個云上,這樣就會容易被云廠商綁定,使用Dapr就比較自由,不用做太多的調(diào)整。
Dapr還有一個比較好的分布式模型Actor,如果是做.NET的同學(xué)會知道它有一個開源項目叫"奧爾良",也是微軟推出。Dapr 的實現(xiàn)基于項目 "奧爾良" 中引入的虛擬Actor模式,這也是我最看重Dapr的地方,也積極把Dapr推薦給行云,他們也把Actor的應(yīng)用他們的解決方案里面去。
張磊:我個人也是從張善友老師了解到Dapr。我簡單說下使用Dapr在項目應(yīng)用中的一些感受,首先最重要的感受是我不會被任何一個技術(shù)或者環(huán)境,包括中間件所綁架。原來在做應(yīng)用開發(fā)之前,要明確一些需求,包括語言,中間件,集中緩存等,一旦確定之后,在未來項目的生命周期中是很難被替換掉。還有運行環(huán)境,如果一開始使用虛擬機,或者選擇阿里云、騰訊云、微軟云,以及這些云廠商提供的一系列增值服務(wù)或中間件后,未來很有可能會被這些云廠商所綁架。因為我們對他們的一系列的服務(wù)和中間件以及運行環(huán)境,已經(jīng)有重度的依賴。如果說僅僅只是SaaS產(chǎn)品可能還好,但如果是需要部署到各地的一些私有化產(chǎn)品就很麻煩。
還有中間件,作為研發(fā)人員應(yīng)該很了解,用到什么中間件往往需要很深入的學(xué)習(xí),這對研發(fā)人員來說也是比較大的負(fù)擔(dān),而Dapr很好解決了這些問題。我們用了Dapr之后,最直觀的感受就是研發(fā)效率提升了很多,包括代碼量也減少了很多,所以我個人對Dapr還是蠻看好的。