微軟上周宣佈推出兩項開源專案 OAM 及 Dapr,旨在讓雲端、前端和 Kubernetes 應用開發更容易。
開放應用模型 (Open Application Model, OAM) 可讓開發人員為跑在 Kubernetes 叢集和其他平台上的 App 定義需要多少資源的規格標準。 Dapr(Distributed Application Runtime) 則是簡化開發雲端和前端微服務複雜性的 runtime 。
OAM 是由微軟和阿里雲在開 Web 基金會 (Open Web Foundation) 專案下共同開發,目的在簡化 Kubernetes 管理的大小 App 的開發作業。 Kubertnetes 是廣受歡迎的開源容器協作系統,可自動化多個主機叢集上的 App 部署、擴充和管理。

微軟指出,OAM 是一種描述應用程式的規格,使 App 描述和 App 實際部署及基礎架構管理的細節切分開來。在這裏,切開有多種好處;真實環境下,每個 Kubernetes 叢集都不一樣,從 ingress 到 CNI(containers network interface) 再到 services mesh 。將 App 定義和叢集運作細節切開可讓開發商專注在 App 重要元素,而不是它運作的技術細節上。此外,這也讓平台架構師得以開發可重覆利用的元件,也讓 App 開發人員專注在整合這些元件和和程式碼,使打造穩定的 App 更快更容易。
阿里雲將推出基於 OAM 的代管服務,微軟說,視 OAM 採用程度而定,Azure 也可望有類似服務。
至於 Dapr,微軟稱它是「雲端和前端微服務組成元素 (building block)」,是「協助開發人員撰寫跑在雲端和前端的微服務、無狀態 (stateless) 及狀態 (stateful) 應用程式的一種事件驅動的可攜式 runtime」。講白話文,意思是 Dapr 支援各種程式撰寫語言和開發框架,可以透過標準 API 像是 HTTP 或 gRPC API 存取,讓開發人員更輕鬆撰寫分散式微服務為基礎的 App,像是電商 App 。
微軟解釋,傳統開發需要事件驅動,因此需要管理事件、回應驅動事件 (trigger);需要微服務之間溝通,因此需要 pub/sub;此外還需要服務發現 (service discovery) 及狀態管理能力,而視狀態或無狀態 App 而定,開發人員還需要不同 SDK 和程式語言模型。相較之下 Dapr 並不需 SDK,因為它是透過 HTTP 或 gRPC 端點來交付服務,使 App 程式碼得以和 Dapr 程式碼切開。因此,Dapr 也獨立於開發人員使用的程式語言。
Dapr 包含一組可以 HTTP 或 gRPC API 存取的組成元件,可以任何程式語言呼叫。所有組成元件提供最佳業界典範 (best practice),每個元件相互獨立,讓開發人員可以使用一個、數個或是所有元件來開發成分散式服務。
來源:Techcrunch
