微軟推出OAM及Dapr兩款開原專案 簡化K8S與微服務的設定與部署
微軟上周宣佈推出兩項開源專案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