新的多云:無服務(wù)器、應(yīng)用程序流和自動化

開源云中文社區(qū)
面向服務(wù)的架構(gòu)(SOA)是一種軟件設(shè)計風格,應(yīng)用程序組件通過網(wǎng)絡(luò)上的通信協(xié)議向其他組件提供服務(wù)。SOA服務(wù)是一個獨立的功能單元,可以遠程訪問、獨立操作和更新,例如在線檢索信用卡對賬單。SOA還打算獨立于供應(yīng)商、產(chǎn)品和技術(shù)。

當人們聽到無服務(wù)器這個詞時,它常常會讓人聯(lián)想到在Amazon Lambda上執(zhí)行的功能即服務(wù)(functions-as-a-service)。但這只是一個方面。顧名思義,它是提供云原生應(yīng)用程序所需的所有基礎(chǔ)設(shè)施的抽象。這包括Google Cloud Storage等存儲,Azure SQL等數(shù)據(jù)庫,以及Confluent托管版本Apache Kafka提供的分析。

請注意,筆者的例子涉及三個不同的云提供商。這是因為,隨著我們走向一個無服務(wù)器的世界,我們很可能會采取多云的方法,即從多個提供商那里消費最好的服務(wù)。請不要與在多個云提供商的類似基礎(chǔ)設(shè)施上運行相同的工作負載相混淆。

現(xiàn)在多云還不是常態(tài),但它是20世紀90年代面向服務(wù)的架構(gòu)(SOA)提出的愿景,到2020年,我們離這個目標更近了。

面向服務(wù)的架構(gòu)(SOA)是一種軟件設(shè)計風格,應(yīng)用程序組件通過網(wǎng)絡(luò)上的通信協(xié)議向其他組件提供服務(wù)。SOA服務(wù)是一個獨立的功能單元,可以遠程訪問、獨立操作和更新,例如在線檢索信用卡對賬單。SOA還打算獨立于供應(yīng)商、產(chǎn)品和技術(shù)。

其思想是大型軟件應(yīng)用程序可以分解為提供離散功能的服務(wù)。這些是“黑盒”服務(wù),底層基礎(chǔ)設(shè)施從最終用戶抽象出來。將服務(wù)組合起來作為一個應(yīng)用程序以一致的方式運行。

微服務(wù)和事件驅(qū)動架構(gòu)

隨著微服務(wù)已經(jīng)發(fā)展成為一種設(shè)計模式,我們看到基礎(chǔ)設(shè)施提供商如谷歌、紅帽、Datadog、Twilio、Salesforce和其他提供通用基礎(chǔ)設(shè)施(如對象存儲)和更專業(yè)服務(wù)(如機器學習和監(jiān)控)的廠商。理想情況下,在云原生世界中,你應(yīng)該使用最好的方法組合這些服務(wù)來創(chuàng)建應(yīng)用程序。

那么,這些服務(wù)的交互框架是什么呢?事件,事件,事件。事件只是從一個系統(tǒng)到另一個系統(tǒng)的消息,其中一個系統(tǒng)中的更改被傳遞到另一個系統(tǒng)。例如,當一個數(shù)據(jù)集上傳到對象存儲時,機器學習服務(wù)可以提供對數(shù)據(jù)集內(nèi)容的一些分析。

這些事件在系統(tǒng)之間來回流動,利用一個系統(tǒng)的結(jié)果驅(qū)動另一個系統(tǒng)。這是一個事件驅(qū)動的架構(gòu)(EDA)。實時流式傳輸這些事件為應(yīng)用程序提供數(shù)據(jù)管道、流式分析和數(shù)據(jù)集成。共享事件的流行方式是通過流式平臺(如Apache Kafka)或消息代理(如Rabbit MQ)來實現(xiàn)。

EDA的趨勢正被行業(yè)中一些最大的廠商所利用。SAP正在開發(fā)Kyma,一個用基于Knative的無服務(wù)器功能和微服務(wù)擴展應(yīng)用程序的平臺。它提供了一系列“粘在一起”的云原生項目,以簡化擴展的創(chuàng)建和管理。Kyma項目支持以下圍繞事件的愿景:

——使客戶能夠插入最適合其需求的消息傳遞中間件,以及并行運行多個消息傳遞實現(xiàn)。

——篩選事件并僅傳輸具有現(xiàn)有訂閱(觸發(fā)器)的事件。

——支持在一個請求中發(fā)送多個事件。

Cloud Run for Anths是Google Kubernetes Engine(GKE)上的一個無服務(wù)器開發(fā)平臺,也是由Knative提供的?,F(xiàn)在它包含了一個事件特性,允許用戶在Google Cloud上運行事件驅(qū)動的系統(tǒng)。一些例子包括:

——云存儲事件觸發(fā)數(shù)據(jù)處理管道。

——每次數(shù)據(jù)加載完成時,BigQuery審核日志事件都會啟動一個進程。 ——云調(diào)度程序事件觸發(fā)批處理作業(yè)。與Linux系統(tǒng)上的cronjob不同,它是基于云的。

這些特性正在包含到產(chǎn)品中。這表明,未來將是事件驅(qū)動的,并將加速云原生應(yīng)用程序的自動化。

應(yīng)用程序流

在這一點上,絕大多數(shù)的EDA似乎都被軟件的技術(shù)基礎(chǔ)所吸引。例如,GitHub Actions自動化了CI/CD、構(gòu)建、測試和部署的軟件工作流。另一個例子是AWS EventBridge,它接收來自SaaS(如Zendesk和Auth0)的事件,并將它們路由到AWS服務(wù)(如Lambda)。

然而,從長遠來看,將云服務(wù)連接在一起的能力,并不是只與與筆者所說的一般基礎(chǔ)設(shè)施(存儲、計算和網(wǎng)絡(luò))相關(guān),而是更專業(yè)化的服務(wù),將提供更強大、更強大的應(yīng)用程序。例如,TriggerMesh正在尋找在Salesforce和數(shù)據(jù)湖之間共享數(shù)據(jù)的方法,并將這些數(shù)據(jù)通過Elastic進一步分析?;蛘邚腉itHub到Twilio/SendGrid,從Azure日志到Splunk,從SonarSource靜態(tài)代碼分析到Kaka轉(zhuǎn)換和過濾事件,并將它們導出為可供谷歌、微軟和亞馬遜云服務(wù)使用的云事件。

總結(jié)

我們正進入一個激動人心的時刻。從價格和易用性的角度來看,基礎(chǔ)設(shè)施從未如此容易訪問。微服務(wù)是一個云原生代理,面向在單體中使用的軟件庫。當你把它們結(jié)合在一起,你就可以制造應(yīng)用程序——不僅僅是客戶端服務(wù)器,而是獨立的網(wǎng)絡(luò)應(yīng)用程序,這些應(yīng)用程序跨云,甚至是一個內(nèi)部數(shù)據(jù)中心。由于事件驅(qū)動的架構(gòu)和低延遲網(wǎng)絡(luò),這些應(yīng)用程序能夠以更快的速度實時移動。

原文鏈接:

https://thenewstack.io/the-new-multicloud-serverless-application-flows-and-automation/

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論