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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

.NET 生态系统的蜕变之 .NET 6云原生

發布時間:2023/12/4 windows 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET 生态系统的蜕变之 .NET 6云原生 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

云原生的英文名是cloud native,native 就是土著的意思,也就是土著對當地的環境是非常適應的,在云的環境和傳統的數據中心是非常不同的,云原生就是要用的云的技術來構建應用, 利用云的技術來降低種端服務的風險和提高可用性,.NET Core和kubernetes 同年誕生發展, 2018年kubernetes 已經奠定了在容器編排領域的王者地位,2019年之后越來越多的企業選擇基于云原生的技術或管理方法,把業務生于云或遷移到云平臺,從而享受云的高效和持續的服務能力。

隨著2021年kubernetes 的進一步普及, 微服務構建也轉向了以Sidecar 模式,這種Sidecar 模式正在以更加迅猛的勢頭將中間件領域的能力下沉至 Kubernetes 這個新一代的應用基礎設施當中,除了已經如火如荼的 Istio 對流量治理領域的顛覆,微軟在CNCF 社區開源了 Open Service Mesh ,在Service Mesh這個領域處于戰國時期,各種框架百花齊放。而與此同時, OAM 在微軟的姊妹項目 Dapr 則直接拉齊了 Kubernetes 與中間件在“服務發現與綁定”側的距離。所有這一切背后的用戶動機是非常清晰的:云原生時代的中間件,既要語言無關,也要平臺無關。

在所有問題上,對于任何給定的項目而言,正確的方法都可能介于兩個極端之間(要么微服務架構,要么單體架構),微服務的構建在企業軟件設計中正在取得平衡,不會再走向極端,而是接受了微服務的真正內涵,既與語言無關,又與平臺無關,選擇適合自己團隊背景的技術構建云原生應用,對于dotnet 技術背景的團隊在構建云原生應用,.NET 6為你提供了很好的技術底座。

  • 體積更小:對于微服務分布式架構而言,更小的體積意味著更少的下載帶寬,更快的分發下載速度,.NET 6的鏡像體積都很小,alpine的鏡像更小,帶上應用程序通常80M。

  • 啟動速度更快:對于傳統單體應用,啟動速度與運行效率相比不是一個關鍵的指標。原因是,這些應用重啟和發布頻率相對較低。然而對于需要快速迭代、水平擴展的微服務應用而言,更快的的啟動速度就意味著更高的交付效率,和更加快速的回滾。尤其當你需要發布一個有數百個副本的應用時,緩慢的啟動速度就是時間殺手。對于Serverless 應用而言,端到端的冷啟動速度則更為關鍵,即使底層容器技術可以實現百毫秒資源就緒,如果應用無法在 500ms 內完成啟動,用戶就會感知到訪問延遲。

  • 占用資源更少:運行時更低的資源占用,意味著更高的部署密度和更低的計算成本。.NET 6的 CLR啟動速度非常快,降低啟動時資源消耗,可以減少資源爭搶,更好保障其他應用 SLA。

  • 支持水平擴展:.NET 6默認更好的支持Docker資源限制,官方團隊也在努力讓.NET 6成為真正的容器運行時,使其在低內存環境中具有容器感知功能并高效運行。隨著內存成本的下降和虛擬化的流行,大內存配比已經成為趨勢。所以我們一般是采用水平擴展的方式,同時部署多個應用副本,在一個計算節點中可能運行一個應用的多個副本來提升資源利用率。

上面說了.NET 6 在云原生方面所完成的蛻變,很多人可能會以Java生態豐富來說明Java的種種優勢,.NET 6相對于Java 17在云原生時代有太多的優勢,.NET團隊早在2014年完成轉型,在云原生時代完成了蛻變,和Java相比已經是不同的世界,.NET更多的向Go、Rust等輕量級平臺靠齊。隨著 Dapr 在2021年2月份發布了1.0版本,它為我們提供了一組構建塊和支持工具,可幫助我們以易于部署和可重復的方式實現關鍵的微服務設計模式,有了Dapr的支持,再來談Java 生態豐富就有點可笑。

Dapr 當前有7大模塊,每個模塊都是為云原生應用開發的特定問題準備的,其中核心模塊是Actor。

Actor 是一種并發編程的模型,Actor 表示的是一個最基本的計算單元,封裝了可以執行的行為和私有狀態。actor 之間相互隔離,它們并不互相共享內存,也就是說,一個 actor 能維持一個私有的狀態,并且這個狀態不可能被另一個actor所改變。在 actor 模型里每個 actor 都有地址(信箱),所以它們才能夠相互發送消息。每個 actor 只能順序地處理消息。單個actor不考慮并發。

Dapr 中 actor 是虛擬的,它們并不一定要常駐內存。它們不需要顯式創建或銷毀。dapr actor runtime 在第一次接收到該 actor ID 的請求時自動激活 actor。如果該 actor 在一段時間內未被使用,那么 runtime 將回收內存對象。如果以后需要重新啟動,它還將還原 actor 的一切原有數據。

Actor placement service 為系統提供了 actor 分發和管理,placement 會跟蹤 actor 類型和所有實例的分區,并將這些分區信息同步到每個 dapr 實例中,并跟蹤他們的創建和銷毀。

Dapr的Virtual Actor 源自dotnet的老牌開源項目Orleans:https://github.com/dotnet/orleans。Orleans 更像是Spring Cloud構建微服務的體系,局限在.NET社區里,如果你喜歡使用Orleans 構建微服務,最近正好出版了一本Orleans的中文書《Orleans:構建高性能分布式Actor服務》 ,Dapr Actor 把 Orleans 帶到所有的社區,如果你是用java,可以使用spring boot + dapr actor 寫業務,這里可以給你一個案例,就是深圳的 行云創新他們就是用的這個組合,具體可以參考b站視頻《直播回顧:Dapr——云原生開發新思路》。

總結

以上是生活随笔為你收集整理的.NET 生态系统的蜕变之 .NET 6云原生的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。