日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

云原生 | 阿里巴巴的Dapr实践与探索

發(fā)布時間:2023/12/4 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 云原生 | 阿里巴巴的Dapr实践与探索 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【Dapr|?原文/敖小劍,翻譯/Edison


本文原文來自Dapr Blog,作者阿里云高級技術(shù)專家敖小劍。本文是我根據(jù)自己的理解翻譯了其中的一部分并加了一些參考文獻中的內(nèi)容,所以并非完整翻譯,點擊本文底部“閱讀原文”即可閱讀原版英文全文。

1關(guān)于Dapr

Dapr(Distributed?Application?Runtime)是一個開源、可移植、事件驅(qū)動的運行時。它使開發(fā)人員能夠輕松地構(gòu)建運行在云平臺和邊緣的彈性而微服務化的應用程序,無論是無狀態(tài)還是有狀態(tài)。Dapr 讓開發(fā)人員能夠?qū)W⒂诰帉憳I(yè)務邏輯,而不是解決分布式系統(tǒng)的挑戰(zhàn),從而顯著提高生產(chǎn)力并減少開發(fā)時間。此外,Dapr 也降低了大部分中小型企業(yè)基于微服務架構(gòu)構(gòu)建現(xiàn)代云原生應用的準入門檻。

2為什么阿里巴巴選擇Dapr?

多語言多環(huán)境的需求

眾所周知,阿里巴巴在過去的十多年里基于Java技術(shù)棧構(gòu)建了眾多的業(yè)務系統(tǒng)、中間件和基礎(chǔ)設施。

但是,隨著阿里巴巴業(yè)務的快速發(fā)展和云原生技術(shù)的逐步應用,包括Node.js、Golang、C、C++ 以及 Rust 等在內(nèi)的多開發(fā)語言并存的需求 就變得需要解決,總不能重復給各個語言造輪子吧?

因此,阿里巴巴急切需要一個能夠不受語言技術(shù)棧限制的,且能夠快速開發(fā)微服務的有效解決方案。

多運行時的微服務架構(gòu)

最終,阿里巴巴選擇了基于Sidecar形式運行的多運行時解決方案,這和之前Bilgin Lbryam提出的“多運行時的微服務架構(gòu)”的理念十分類似。

這種架構(gòu)的理念其實是將業(yè)務邏輯和基礎(chǔ)中間件進行分離的實踐。

很可能在將來,我們最終將使用多個運行時來實現(xiàn)分布式系統(tǒng)。多個運行時,不是因為有多個微服務,而是因為每個微服務都將由多個運行時組成,最有可能是兩個運行時環(huán)境:自定義業(yè)務邏輯運行環(huán)境和分布式原語運行環(huán)境。

因此,在這種軟件體系結(jié)構(gòu)中,我們可能會將擁有構(gòu)成應用程序核心的業(yè)務邏輯和提供強大的現(xiàn)成分布式原語的sidecar組件。

Dapr是踐行多運行時環(huán)境理念的第一個開源項目,阿里巴巴也因此從它發(fā)布release版本就開始重點關(guān)注,因為Dapr具有足夠的潛力能夠幫助阿里巴巴解決其所遇到的問題和挑戰(zhàn)。

換句話說,Sidecar模式所具有的優(yōu)點能夠方便地支持多語言,且基于Dapr可以更加輕便快速地構(gòu)建應用程序,而不是像以前一樣需要引入一大堆客戶端SDK。

阿里巴巴資深技術(shù)專家 李響(etcd作者)說道“在阿里云,我們相信Dapr將會改變微服務的部署方式。通過引入Dapr,我們的客戶可以更加快速和便捷地構(gòu)建具有可移植性和健壯性的分布式系統(tǒng)”。

3Dapr在阿里巴巴的實踐

從2020年中旬開始,阿里巴巴在內(nèi)部啟動了一個小規(guī)模的試驗,意在使用Dapr來探索和驗證Dapr在真實環(huán)境下的可行性。與此同時,阿里巴巴也在積極參與Dapr社區(qū)的建設,并積極提交了大量的改進建議、反饋 以及 代碼。

Serverless場景下多開發(fā)語言的支持

阿里巴巴的電商系統(tǒng)包括了大量的支持業(yè)務活動和購買流程的需求,這些需求大多都是需要短期內(nèi)實現(xiàn),支持穩(wěn)定交易運行 且 快速響應客戶的。因此,FaaS(Function as a Service)這種Serverless的場景是十分適合于這類需求的模式。

首先,FaaS應用具有強烈的支持多語言的需求,特別是不能受限于阿里巴巴已經(jīng)成熟的Java技術(shù)棧生態(tài),因為阿里巴巴的大部分Java應用都對多語言需求的支持不足,特別是像Dart或Rust為代表的不同類型的開發(fā)語言。

其次,FaaS應用還需要和本地部署的服務、不同類型的中間件 和 基礎(chǔ)設施 進行通信,因此,多語言支持就變得十分的重要。

基于Dapr,阿里巴巴解決了FaaS應用存在的多語言支持不足的問題,幫助客戶提高了FaaS應用的開發(fā)效率。

生態(tài)系統(tǒng)多語言開發(fā)的應用系統(tǒng)的集成

在過去的多年中,阿里巴巴通過收購入股了大量不同行業(yè)的企業(yè),這些企業(yè)都在使用不同的技術(shù)棧構(gòu)建解決方案。

這些被收購入股的公司已經(jīng)有了大量的應用系統(tǒng),而且大部分都不是使用Java技術(shù)棧開發(fā)的。所以,這些應用系統(tǒng)具有強烈的多語言集成需求,以便能夠快速地融入阿里巴巴的生態(tài)系統(tǒng)之中。例如,部分企業(yè)使用了Node.js 和 Golang開發(fā)了部分應用,又使用Dart 和 C++ 開發(fā)了其他部分應用,在技術(shù)的選型上也是根據(jù)場景擇優(yōu)選擇的,你不能說他們就有錯。

但是,現(xiàn)狀是阿里巴巴的生態(tài)系統(tǒng)不能良好的支持除Java之外的開發(fā)語言進行集成,特別是其中一些中間件和基礎(chǔ)設施。在實際中,阿里巴巴基于不重復造輪子和成本和時間考慮,也不會為所有的開發(fā)語言都重復開發(fā)類似的客戶端接入。

最后,阿里巴巴選擇基于Dapr來為這些應用提供多語言的集成解決方案。

已有的復雜Java遺留系統(tǒng)

在過去的多年中,阿里巴巴基于ClassLoader(Java中的一個核心概念)來設計和開發(fā)了大量的復雜的Java系統(tǒng),這些系統(tǒng)的設計往往是復雜的,而且應用也是很臃腫的。

此外,一些業(yè)務開發(fā)團隊還維護了一些列的多語言中間件SDK來和已有中間件進行聯(lián)接。但是,這些SDK的維護工作需要和中間件團隊的更新保持同步,不能有一點遺漏。這些必要的工作量,也為其帶來了潛在的穩(wěn)定性風險。

因此,阿里巴巴期望基于Dapr來解決上面提到的兩個問題。值得一提的是,阿里云為Java的遺留系統(tǒng)設計了一個適配器層,可以方便地將原始的Java調(diào)用轉(zhuǎn)換為Dapr客戶端API。

下圖展示了上述三個場景提到的多語言支持的設計實現(xiàn):

除此之外,阿里巴巴還在Cloud-to-Cloud的遷移方面進行了實踐,這里就不再多贅述。

4未來阿里巴巴的Dapr計劃

在未來,阿里巴巴還將繼續(xù)在試驗應用中驗證Dapr的可行性,將會主要集中在以下幾個方面:

  • 適用場景

  • 性能

  • 穩(wěn)定性

  • 可移植性

此外,阿里巴巴也正在開發(fā)Dapr相關(guān)組件來和更多的中間件和基礎(chǔ)設施進行集成,其中包括了阿里云的眾多內(nèi)部產(chǎn)品和已發(fā)布的商業(yè)產(chǎn)品。

通過驗證之后,阿里巴巴還將會貢獻在阿里云商業(yè)產(chǎn)品上實踐的集成代碼給Dapr社區(qū),也會持續(xù)地和Dapr社區(qū)一起努力提高Dapr的功能、性能以及穩(wěn)定性。

Ref學習資料

可以使用文檔中的入門指南進行學習,然后通過快速入門來深入了解。如果你需要更多信息,樣本庫是 Dapr 社區(qū)捐贈的不同的應用程序的展示。

Dapr 文檔docs.dapr.io是全面的指南,還有幾本書,包括《 Learning Dapr》、《使用 Dapr 和 .NET 實踐微服務》以及最新發(fā)布的免費電子書《Dapr for .NET 開發(fā)者》。

原文地址

敖小劍發(fā)布于Dapr Blog,https://blog.dapr.io/posts/2021/03/19/how-alibaba-is-using-dapr/?

總結(jié)

以上是生活随笔為你收集整理的云原生 | 阿里巴巴的Dapr实践与探索的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。