譯?:Top Three Use Cases for Dapr and Kubernetes

c04ecdec0c543c64d9f35488d52ef385.png

有關譯者:陳東海(seachen)?前就職于騰訊,同時在社區也是?名Dapr Member.

導語:在SDLC(Software Development Lifecycle軟件開發?命周期中),絕?多數CNCF項?都是專注于軟件開發的中后期階段,特別是運維和可觀測性??。?很少有CNCF項?專注于早期階段。?Dapr就是在軟件開發的早期階段,幫助開發者提??產?。

作者

原?標題

發布時間

Bilgin Ibryam

Top Three Use Cases for Dapr and Kubernetes

2022.12.20

適合閱讀?群:研發童鞋以及云原?產品童鞋。

內容摘要(若感興趣,再讀原?,閱讀原文可以到達)

1.?多數IT項?,都是來源于增加收?、降低成本和降低?險三個業務?標;由此推導出產?的三個副作?,分別是多語?、多負載和多環境的?持。并以此作為XYZ三維坐標軸,提出問題和分析問題;并引出云原?;

2.了解SDLC(軟件開發?命周期)不同階段的CNCF項?,往往都聚焦于中后期的應?運維,?較少地關注如何創建應?并提?開發者的?產?。?Dapr就是這樣的?款產品;

3.從集群上、集群外和多集群的三個案例,來分析Dapr如何與Kubernetes互補來幫助開發者開發出云原?應?。

---------------以下是譯者想告訴讀者的------------------

Bilgin Ibryam之前是Red Hat的產品經理和架構師。他在2020年寫過?Multi-Runtime?Microservices Architecture??,?章中的分布式原語(distributed primitives)就是這位童鞋提出來的。Dapr區開源產品和他提出的這個理念?常契合,2022年中旬了解到Dapr后并迅速加?了diagrid?型創業公司。?前在該公司擔任產品經理,?diagrid公司是由兩位前微軟童鞋?Mark Fussell(現任CEO)Yaron Schneider(現任CTO)2021年底創辦的。

diagrid公司融資詳情:Diagrid Emerges from Stealth with $24.2 Million in Funding, Launches Fully Managed Dapr for Kubernetes

?Dapr??KEDAKubernetes Event-Driven Autoscaling)創始??Mark Fussell??Yaron

Schneider?創辦的?Diagrid?最近獲得?2400?萬美元融資。投資?陣容?分強?,包括?Kubernetes?聯合創始??Joe BedaBuoyant CEO William Morgan(這?是開創性地提出了服務?格(Service Mesh)概念,其著名的開源項?Linkerd)筆者最早在2016年使?(java開發,?向服務治理的代理),?Azure CTO Mark Russinovich,前Atlassian CTO Sri Viswanath,以及前?Heroku?CEO Adam Gross。?

-----------------以下是譯?-------------------------

Kubernetes已經成為運?分布式應?的事實標準,?論它們是集群上的、集群外的還是多集群的。但是Kubernetes并沒有為業務開發者提供很多好處,也沒有為?多數其他CNCF項?提供好處。但是也有例外,新的CNCF項?(例如Dapr(孵化中))正在提?開發者的?產?讓業務開發變得簡單。在這篇?章中,我們將探索前三個案例,以展示Kubernetes也可以擴展新的運營領域,以及為什么Dapr是最適合開發者的Kubernetes伙伴。

技術擴散阻礙?產?

如果我們從較?的層?看?下?多數IT項?,它們都屬于以下類別之?:增加收?降低成本降低?險。在您的組織中,您可能有這三者的變體,例如提?客戶滿意度、減少客戶流失等,但它們?致屬于同?類。有多種?法可以實現這些?標,這?我挑選了?些作為示例,但對于您的組織??,這些?法的順序會有所不同。

a7fbd957b3c42086a5797fd97e1ef2af.png

業務?標與副作?

您可決定采??些很新很酷的開源機器學習技術,并利?它開發?些創新服務來增加收?。您可以通過迭代開發實踐和較?的開發單元(如微服務)按時更新軟件來降低合規?險。裁員并不是性價?最?的?式,在公司內部或者?團隊內并不是所有事情都需要親?親為,?是通過?動化,采?云和SaaS服務的?式來實現軟件?命周期的全流程管理,這樣性價?更?。但后果總是有的,您意識到機器學習最流?的語?是PythonJavascriptWeb開發的最佳語?,Java?于桌?,Swift?于移動終端,C++?于IoT應?等等,您最終會在組織內使?多種語?。

然后您意識到您必須運維微服務、函數、單體服務以及介于這兩者之間的許多其他應?。?且您必須在本地和?個或多個云上執?此操作。從組織層?來看,所有這些都導致了同時發?多個維度的技術擴散。

6d2535f12bb5a77bbc5bef43c2465a59.png

技術擴散對開發和運維的影響

英?

譯?

1

How to do reliable service invocation

如何可靠地執?服務調??

2

How run heterogeneous workloads consistently

如何?致性地運?異構的?作負載?

3

How to connect 3rdparty services?

如何連接第三?服務?

4

How to provision and automate hybrid ?infrastructure uniformly?

如何統?地配置和?動化混合基礎設施?(這個翻譯

怪怪的),?概含義就是在混合基礎設施環境下,如

何通過配置來統?部署




5

How to do pub/sub with DLQx in language X?

如何?任意?種語?處理帶死信隊列的消息發布與

訂閱?

6

How to package and distribute polyglot apps ?consistently?

如何?致性地打包和分發多語?應??

技術擴散不同程度地影響著不同的團隊。僅僅使?Python,您就可以有??的數據科學團隊,但是這個平臺的?程團隊必須為使?不同語?的多個團隊提供構建和打包?具。您可能有新創建的微服務,它們遵循12-factor則。但是運維團隊可能還必須照顧單體應?,以及不斷增加函數的實例。您的基礎設施團隊必須創建?動化以遵循多個云和本地部署上進?配置。

平臺和運維團隊的挑戰在于如何保證許多團隊之間的?致性和統?性,開發團隊的挑戰在于其團隊內部的?產?。通常,開發團隊使?某些語?(例如:java.net,他們更適合創建分布式應?,和可以連接到各個SaaS端點的應?),?使?不同語?的其他團隊往往是孤?的,他們并不能從豐富的云原??態系統中受益。這些團隊不能復?相同的?具和模式來解決常?問題。應對技術擴散帶來的這些挑戰,答案是什么??個答案就是成為云原?,這是CNCF定義?式以及那?不斷增?的項??態系統。

開發者的期望仍未得到滿?作為?名前開發?員,我決定檢查哪些CNCF項?,可以幫助開發者編寫代碼并實現云原?應?。我粗略地繪制了SDLC階段(全稱:Software Development Lifecycle軟件開發?命周期),并將它們放在所有已畢業的CNCF項?中,趨勢很明顯。沒有任何?個已畢業的CNCF項?可以幫助軟件開發的早期階段。我也增加了孵化中的CNCF項?,專注于運維和可觀測性應?的趨勢更加強烈。如下圖所示:

dba46e942a4cb399306e8dc5cbde60d0.png

在軟件開發?命周期中的CNCF項?

該圖不是完整的,它不能完全代表?態系統中的所有變化。例如:這?有些是聚焦運?時的項?,也幫助了開發者。例如,可觀測性?具總是提供SDKKnative serving為運?應?提供?動伸縮和藍綠發布功能,?Knative eventing幫助開發者實現事件驅動的應?。與此同時,?論是Kubernetes,?代理還是基于eBPFlinux內核,任何以前屬于應?層的分布式系統職責也正在通過eBPF轉移到基礎設施層。但是總體來說,所顯示的趨勢是準確的,CNCF項?的重點仍然是運維應?,?不是創建應?。好消息是這?有新的項?,例如:Dapr和其他針對開發者的項?,并專注于實現適應云原?環境的應?。

接下來,我們將研究三個具體的?例,其中?Kubernetes正在成為部署和運維應?的事實標準,?Dapr使開發者能夠實現云原?應?,并以云原??式使?基礎設施。這些?例展示了Dapr如何與Kubernetes互補并提?開發者的?產?,就像Kubernetes提?運維團隊的?產??樣。

創建和運維集群上的應?

如今,Kubernetes API是部署和運?分布式系統最流?的?式。容器和Kubernetes允許我們定義和實施應?程序資源約束。具有初始化容器和SidecarPod抽象提供了應??命周期的保障。健康檢查APIs提供了從短暫地運?時故障中檢測和恢復的能?。有聲明式部署、回滾和策略驅動的應?placement。所有這些都允許運維?動化部署和管理?量?作負載,但對開發?員來說有什么好處呢?

Dapr幫助開發者實現運維能夠在k8s上運?的分布式應?

開發?員可以使?Kubernetes?帶的服務發現,但它缺乏重試、超時和熔斷等?絡彈性功能。

雖然KubernetesConfigMapsSecrets,但它們缺乏動態更新和細粒度的訪問控制。

Kubernetes有StatefulSet,但沒有?于訪問該狀態的API。?Kubernetes有健康檢查,但它不會申請出?連接,例如從隊列中消費(翻譯得不太明?)Kubernetes中沒有任何東?可以幫助實現事件驅動的應?。

這就是?Dapr?的?武之地。Dapr?解決了這些限制,并為開發者提供了與Kubernetes為運維提供了相同的?產?。Kubernetes通過抽象基礎設施來幫助運維應?。Dapr幫助開發者實現這些應?并以可靠的?式連接它們。?Dapr具有服務調?Pub/SubAPI,可幫助以任何語?編寫的應?,在動態云基礎設施上可靠地交互。它具有狀態管理配置中?秘鑰其他API,可幫助開

發者通過通?且可復?的模式實現應?需求和使?基礎設施。

提供和使?集群外的資源

Kubernetes可以很好地管理集群上的應?。但這些集群上的應?需要并依賴于集群外的資源,例如數據庫、?檔存儲、消息隊列和數?種其他云服務。如果您已經在使?Kubernetes?來運維應?,那意味著您使?的是YAML語法,以及定義所需資源狀態的聲明性概念。如果您正在使?基礎設施即代碼和GitOps等?具來實現?動化,那么您也可以使?Kubernetes API來管理外部資源。這使得Kubernetes成為資源所需狀態的單?真實來源,不僅適?于集群上的容器,也適?于集群外的資源。現在有這樣的Kubernetes云?商,例如?AWS Controller for Kubernetes、Azure Service Operator、Google Config Connector,以及像Crossplane這樣的?CNCF?項?,它們使??Kubernetes CRD來管理外部資源。但是這些?具的職責在管理外部資源的?命周期之后結束,并且不會擴展到綁定到在?Kubernetes?數據平?中運?的應?。通常,這些云?商有?種機制,可以將外部資源的坐標和訪問機制添加到configmapsecret?CRD?中。但是使?特定協議從應?到資源的實際綁定會再次留給開發者處理。

a7ccc99f7a836338d83d362ad6565cf4.png

Dapr幫助開發者使?運維通過k8s提供的第三?服務

這就是Dapr能夠幫助開發者的地?。?Dapr綁定幫助開發者將應?與外部資源連接起來,?論您的應?程序使?何種語?。提供外部資源只是故事的?半。?Dapr幫助您從應?中使?該基礎設施。并通過添加彈性、跟蹤、安全性并以?致性的?式做到這?點,并通過?API?sidecars以云原??式做到這?點,?不是將難以升級的庫嵌?到應?中。

開發和編排多集群的應?

我們已經了解了?Kubernetes?如何?于管理集群上的應?程序以及如何?于管理集群外的資源。使??Kubernetes API還有?種趨勢,那就是管理多個遠端集群上的應?。

如今,由于規模、應?和數據本地化、隔離等各種原因,組織必須將應?部署到多個數據中?、云和?Kubernetes集群中。Kubernetes集群的物理邊界并不總是符合所需的應?邊界。通常,必須將同?個應?或?組應?部署到多個集群中,這需要多集群部署和編排。有許多項?和服務可以讓您在多個集群上運?應?,例如?Azure Arc、Google Anthos、Red Hat Advanced Cluster?ManagerHypershift?kcp.io等項?。這些項?提供統?的?戶界?、儀表板、警報、?志、策略和對多個集群的訪問控制。他們中的?多數通過提供Kubernetes API作為控制平?,并將每個集群作為數據平?來實現這?點。為了使??致的操作、安全、合規模型,您可以集成DevOps??具包。

Dapr幫助開發者創建運維可以通過Kubernetes API操作的多云應?

在這種場景下,Dapr幫助創建可以運?并與任何云環境交互的多云應?。在不同的云環境中打包和運?應??是故事的另?半。通常在云環境中運?的應?必須使?該云環境的本地服務,?Dapr?持這?點。通常,不同的云?商提供不同的抽象、模式和?具來解決相同的問題,這些問題在不同的環境中不可轉移和重?。?例如,Azure?有?Event Grid,AWS?有?EventBridge,GCP??Eventarc??于創建事件驅動的應?程序。這些服務中的每?個都有獨特的學習曲線,并與云?商耦合。另???,Dapr pub/sub API?提供了通?的異步構建塊,可?于為任何云和本地創建事件驅動的應?程序。

在多云場景中,Dapr API充當統?的構建塊,使開發者能夠創建獨?于云的解決?案,并使運維團隊能夠應?彈性策略并從統?的獨?于云的應?程序運?時獲取指標和跟蹤。Diagrid?Conductor等服務可以幫助在多個云環境中運?Dapr所有這些使得Dapr成為創建多云應?的開發者和運維這些應?程序的理想補充。

ps.?譯者備注,開發和編排多集群的應?:主要是講可移植性。使?Dapr Sidecar后就與云?商解耦了。)

?處不在的云原?API

Kubernetes已經不僅僅是?個容器編排器。它也可以管理集群內、集群外和多集群資源。它是?于管理多種資源的通?且可擴展的操作模型。其聲明式YAML API和異步協調過程已成為資源編排范式的代名詞。它的CRD??Operators已經成為將領域知識與分布式系統合并的通?擴展機制。

f61b52f7465db52f816a725e96f0436a.png

Kubernetes和Dapr APIs的特點

Dapr建?在與Kubernetes相同的原則和基礎之上。Dapr通過定義明確的API(稱為構建塊)提供其?協議上運?,使它們?持多種語?,并且可以從任何語?或環境中訪問。?Dapr功能隨著新構建塊的添加?不斷增?,例如最近的分布式鎖API,以及內容存儲和?作流?API提案。?Dapr功能還通過添加當前超過100個并且還在增?的構建塊來擴展。

這篇?章基于我在底特律Dapr社區?的演講@bibryam@diagridio關注我,看看我使?Dapr和構建Diagrid Cloud旅程,或者說出您的任何想法和評論。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/279898.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279898.shtml
英文地址,請注明出處:http://en.pswp.cn/news/279898.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL數據庫的datetime與timestamp

MySQL數據庫中有datetime與timestamp兩種日期時間型數據類型,其中timestamp可以用timestamp(n)來表示年月日時分秒的取值精度,如果n14則完整匹配于datetime的精度,那為什么還需要datetime這種類型呢?我做過試驗,timest…

平視相機svo開源項目_什么是平視顯示器(HUD),我應該得到一個嗎?

平視相機svo開源項目In a world full of augmented reality snowboard goggles and Google Glass, it seems only fair that our cars get to enjoy some of the same treatment. Heads-up displays, or “HUDs” as they’re better known, are a new type of add-on for cons…

yum 下載RPM包而不進行安裝

yum命令本身就可以用來下載一個RPM包&#xff0c;標準的yum命令提供了--downloadonly(只下載)的選項來達到這個目的。 $ sudo yum install --downloadonly <package-name> 默認情況下&#xff0c;一個下載的RPM包會保存在下面的目錄中: /var/cache/yum/x86_64/[centos/fe…

react項目打包后路徑找不到,項目打開后頁面空白的問題

使用 npm install -g create-react-app快速生成項目腳手架打包后出現資源找不到的路徑問題&#xff1a; 解決辦法&#xff1a;在package.json設置homepage 轉載于:https://www.cnblogs.com/lan-cheng/p/10541606.html

linux 下實現ssh免密鑰登錄

小伙伴經常在運維的時候需要ssh到很多其他的服務器&#xff0c;但是又要每次輸入密碼&#xff0c;一兩臺還沒什么&#xff0c;多了就煩了。所以這里教大家如何直接ssh到其他機器而不用輸入密碼。[rootjw ~]# ssh-keygen -t rsaGenerating public/private rsa key pair.Enter fi…

一些部署django用到的linux命令

mv untitled45/ /1601F/wang/ 將XXXX移動到XXX&#xff0c;也可以用于給XXX重新命名 zip -r -q -o hello.zip /1601F/3/untitled45 安靜的遞歸壓縮成zip文件 gunicorn -w 3 -b 0.0.0.0:8080 untitled45.wsgi:application啟動項目&#xff08;需要在manage.py同級目錄下運行&am…

ios 拍照 實現 連拍_如何在iOS設備上使用連拍模式拍照

ios 拍照 實現 連拍We’re sure you’ve tried to capture that perfect moment with your camera and you’re just a tad too late or too early and you miss it. If you own an iPhone or iPad, you can use burst mode and never miss that perfect shot again. 我們確定您…

pta l2-6(樹的遍歷)

題目鏈接&#xff1a;https://pintia.cn/problem-sets/994805046380707840/problems/994805069361299456 題意&#xff1a;給出一個二叉樹的結點數目n&#xff0c;后序遍歷序列post&#xff0c;中序遍歷序列in&#xff0c;求其層序遍歷序列。 思路&#xff1a;首先給二叉樹每個…

路由熱備份(HSRP)DynamipsGUI小試牛刀

——好久不見啊&#xff0c;大家最近過的還好嗎&#xff1f;——學而不思則罔&#xff0c;思而不學則殆。好了&#xff0c;既然已經踏上了CCNP之旅&#xff0c;那就和大家一起分享一下學習HSRP的體會吧——在CCNA中我們設計網絡的目的主要是——通&#xff01;到了CCNP&#xf…

WPF 如何實現簡單放大鏡

WPF 如何實現簡單放大鏡控件名&#xff1a;Magnifier作 者&#xff1a;WPFDevelopersOrg - 驚鏵原文鏈接[1]&#xff1a;https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用.NET40&#xff1b;Visual Studio 2019;實現此功能需要用到 VisualBrush &#xff0c;放大鏡…

input 禁用智能提示_如何在智能手機上禁用緊急警報

input 禁用智能提示AMBER and emergency alerts occur when there’s a child abduction or there’s an important event such as a severe weather alert (tornado warning) that local governments needs to make people aware of. While we don’t recommend disabling the…

laravel中使用的PDF擴展包——laravel-dompdf和laravel-snappy

這兩天項目中需要將HTML頁面轉換為PDF文件方便打印&#xff0c;我在網上搜了很多資料。先后嘗試了laravel-dompdf和laravel-snappy兩種擴展包&#xff0c;個人感覺laravel-snappy比較好用。 一、使用laravel-dompdf擴展包 1、安裝擴展包 我們通過composer來安裝 composer requi…

「讀懂源碼系列2」我從 lodash 源碼中學到的幾個知識點

前言 上一篇文章 「前端面試題系列8」數組去重(10 種濃縮版) 的最后&#xff0c;簡單介紹了 lodash 中的數組去重方法 _.uniq&#xff0c;它可以實現我們日常工作中的去重需求&#xff0c;能夠去重 NaN&#xff0c;并保留 {...}。 今天要講的&#xff0c;是我從 _.uniq 的源碼實…

有小伙伴問:上位機用QT還是winform/wpf好?

楔子有小伙伴問&#xff1a;上位機用QT還是winform/wpf好&#xff1f;Qt是C寫的&#xff0c;跨平臺的UI框架&#xff0c;Winform/wpf是C#寫的不跨平臺的Windows上運行的UI框架。這兩個說到底是語言本質的爭論或者區別。優點Qt的優點是可以跨平臺運行UI界面&#xff0c;在Linux&…

使用jenkins進行項目的自動構建部署

jenkins 簡介 Jenkins是基于Java開發的一種持續集成工具&#xff0c;用于監控持續重復的工作&#xff0c;功能包括&#xff1a;持續的軟件版本發布/測試項目和監控外部調用執行的工作。 官網地址地址&#xff1a; https://jenkins.io 下載安裝啟動 CentOS 下用yum進行安裝啟動 …

如何刪除Apple Music中的連接功能

Love Apple Music, but tired of the intrusive Connect feature taking up space on your favorite artist’s page? Well, don’t worry, because getting “dis-Connected” is just a matter of changing a few simple settings in your iPhone or iPad running iOS 8.0 o…

python設計模式(十四):模板方法模式

定義一個算法或者流程&#xff0c;部分環節設計為外部可變&#xff0c;用類似于模板的思想來實例化一個實體&#xff0c;可以往模板中填充不同的內容&#xff1b;在模板思想下&#xff0c;實體的整體框架是確定的&#xff0c;他是一個模板&#xff0c;但是模板下內容可變&#…

FirstBird--項目流程

創建項目(英文路徑)—–img圖片文件創建窗體–設置大小(Basic—size–>320*480)—最大化功能禁用(Expert–>setResizable(false))添加面板–設置布局方式(set Layout—>AbsoluteLayout)自己創建面板 GameMain中將Jpanel1改為WinJpanel–創建對應類–>extends JPane…

PeeringDB初探

做網絡相關工作的&#xff0c;可能需要了解PeeringDB這個網站&#xff08;https://www.peeringdb.com)&#xff0c; 這里有大部分公開注冊的 ASN&#xff08;Autonomous System Number) 以及他們相互直接做Peering的信息&#xff0c;這也是這個網站名字的由來。據統計&#xff…