推薦一個基於Dapr的 Red Dog 的完整微服務應用程式

張善友發表於2022-02-04

微服務儘管構建起來非常困難,但它們已成為一種越來越流行的架構模式。隨著開發人員開始將他們現有的單體程式碼庫遷移到微服務系統,他們花費大量時間來處理分散式應用程式帶來的固有挑戰,例如狀態管理和服務呼叫。通過引入Dapr 通過以 http/gRPC API 的形式提供一致的構建塊來解決其中一些與微服務相關的挑戰。

微軟Azure的Cloud Native Global Black Belt Team 團隊開發的一個代號為 Red Dog 的完整微服務應用程式,Red Dog 應用程式是一個簡化的電子商店應用程式,客戶下訂單,這些訂單由 Worker 處理。 同時,訂單、收據和賬號 儲存在不同的永續性系統中。電子商務平臺不包含任何 UI,除了用於監視訂單的儀表板。它利用 Dapr(分散式應用程式執行時),因此可以輕鬆適應多種場景。

邏輯應用架構圖

以下是應用程式的不同元件的說明

image

這個Reddog的程式碼儲存庫是為你更深入地瞭解如何構建由 dapr 提供支援的雲原生分散式應用程式的軟體開發人員所建立的資源。程式碼庫可以在您的本地開發機器上執行或部署到您選擇的容器託管平臺。為了幫助您最好地利用程式碼庫,Azure 雲原生全球黑帶團隊還建立了一系列示例,展示如何使用 Azure 平臺的關鍵服務和功能部署應用程式。每個部署例項的程式碼在獨立倉庫裡:

image

倉庫地址:

https://github.com/Azure/reddog-code
https://github.com/Azure/reddog-containerapps
https://github.com/Azure/reddog-aks

https://github.com/Azure/reddog-hybrid-arc

這個示例代號為reddog,這讓我想起了Azure 的原始版本,代號為“Red Dog”,微軟 Azure於 2010 年 2 月 1 日上市,也正好12歲,是一個初長成的少年,從最初的Windows作業系統,到擁抱開源,擁抱Linux,擁抱Kubernetes的雲原生。在過去的幾年裡,Linux 容器席捲了整個行業。最初由 Docker 驅動,容器化導致了一種基於微服務模式的新形式的應用程式開發和部署。

隨後,Kubernetes 成為大規模管理容器和微服務的首選平臺。Kubernetes 的原始創始人 Google 推出了 Google Kubernetes Engine (GKE),這是雲中的第一個託管 Kubernetes 服務,然後將程式碼和治理移交給雲原生計算基金會 (CNCF)。

2016 年,微軟聘請了 Kubernetes 的聯合創始人之一、谷歌的首席工程師Brendan Burns 。Brendan 領導了 Azure 的容器戰略,幫助微軟推出了一個名為 Azure Kubernetes Service (AKS) 的託管 Kubernetes 平臺。

除了啟動對 Windows 容器的支援之外,微軟還為許多有趣和創新的專案做出了貢獻,例如 Virtual Kubelet、基於 Kubernetes 的事件驅動自動縮放、服務網格介面(SMI)和開放服務網格(OSM)、開放應用程式模型(OAM)和分散式應用程式執行時 (DAPR)。

今天,微軟和 Azure 在容器和 Kubernetes 開發者社群中享有盛譽。微軟與谷歌、AWS、SAP、思科等公司也是 CNCF 的白金會員。

企業已經開始看到兩個關鍵趨勢——資料中心接受 Kubernetes 和多雲投資。

企業對 Kubernetes 的採用有所增加,導致傳統基礎設施和現代基礎設施共存。由於 Kubernetes 幾乎可以在任何公共雲環境中執行,因此它正在成為多雲和混合雲部署的共同點。

意識到這一趨勢,微軟推出了基於 Kubernetes 的改進混合雲戰略。這個名為Azure Arc的新平臺使客戶能夠從單個控制平面管理由 Kubernetes 管理的虛擬機器、物理機和容器化工作負載。與 AWS Outposts、Google Anthos、VMware Tanzu、IBM Multi-cloud Manager 和 Red Hat OpenShift 等其他一些競爭產品不同,Azure Arc 將傳統和現代工作負載帶到了公平競爭的環境中。Azure Arc 可以在本地資料中心甚至競爭雲平臺中託管 Azure 公有云的一些託管服務。

這個微服務應用程式代號也叫reddog,是不是也有那麼一番意味, 採用相同技術構建的微服務應用程式可以自適應各種環境,不管是微軟自己的雲平臺還是競爭對手的雲平臺上。

相關文章