歷川:華為云 Serverless 研發(fā)專家
分散治理、數(shù)據(jù)去中心化、基礎(chǔ)設(shè)施自動化等優(yōu)秀設(shè)計原則,使得微服務(wù)架構(gòu)在過去幾年中逐漸發(fā)展為企業(yè)應(yīng)用架構(gòu)的首選。然而,隨著應(yīng)用規(guī)模的持續(xù)增長和微服務(wù)生態(tài)的成熟,新的挑戰(zhàn)也在不斷涌現(xiàn)出來。相比于傳統(tǒng) SOA 等架構(gòu), 微服務(wù)架構(gòu)給予開發(fā)者更多設(shè)計和開發(fā) “自由度”,同一應(yīng)用的各微服務(wù)模塊,可以采用不同的技術(shù)棧來實現(xiàn)獨立自治的業(yè)務(wù)邏輯。但自由也相應(yīng)增加了開發(fā)運維的復(fù)雜度,提高了軟件開發(fā)者的認知成本;同時,微服務(wù)架構(gòu)在業(yè)務(wù)資源開銷、交付速度、擴展性能和基礎(chǔ)設(shè)施彈性等方面,也面臨一系列新的挑戰(zhàn)。Serverless 編程范式的興起,允許開發(fā)者聚焦業(yè)務(wù)邏輯本身,無需再感知底層運行時細節(jié)和后端資源的維護伸縮等問題,給微服務(wù)應(yīng)用開發(fā)提供了效率更高的選擇。本文結(jié)合華為云函數(shù)工作流 FunctionGraph、事件網(wǎng)格 EventGrid 以及云應(yīng)用引擎 CAE 等在 Serverless Microservice 方面的實踐,總結(jié)提煉出包括基礎(chǔ)設(shè)施無感知、全生命周期可觀測、 狀態(tài)管理自動化等在內(nèi)的七大 Serverless Microservice 開發(fā) “實踐標準”,為加速全域 Serverless 產(chǎn)業(yè)升級、推動企業(yè)應(yīng)用開發(fā)框架從微服務(wù)向 Serverless 演進提供一些思考。圖 1. 微服務(wù)應(yīng)用開發(fā)的生命周期示意如圖 1 所示,在微服務(wù)架構(gòu)中,應(yīng)用程序由一組功能自治的小型化服務(wù)圍繞業(yè)務(wù)能力構(gòu)建,服務(wù)之間采用輕量級通信,可以獨立開發(fā)、構(gòu)建、測試、發(fā)布和監(jiān)控。微服務(wù)的目的是有效拆分應(yīng)用,實現(xiàn)敏捷開發(fā)和部署 [1]。Martin Fowler 和 James Lewis 在《Microservices: A Definition of This New Architectural Term》中,列舉了微服務(wù)架構(gòu)的九大特征,如表 1 所示 (參見 [2]),這些特征使得微服務(wù)相比于傳統(tǒng)軟件開發(fā)架構(gòu),具有更加靈活的設(shè)計開發(fā)模式,服務(wù)之間支持獨立部署和擴展,有效提升了企業(yè)應(yīng)用的開發(fā)、迭代和運維效率。盡管微服務(wù)架構(gòu)秉承眾多優(yōu)秀設(shè)計原則,隨著應(yīng)用規(guī)模增長、技術(shù)生態(tài)的成熟和工具鏈的多元化發(fā)展,一系列新的挑戰(zhàn)逐漸呈現(xiàn)在企業(yè)應(yīng)用開發(fā)者面前。挑戰(zhàn)一:開發(fā)運維的復(fù)雜性高相比于單體(Monolithic)或 SOA(Service-Oriented Architecture)等傳統(tǒng)架構(gòu)下的 “規(guī)范標準”,微服務(wù)更提倡基于 “實踐標準” 解決分布式問題 [2];因此,對于服務(wù)注冊發(fā)現(xiàn)、負載均衡、配置和安全、事務(wù)處理等,在微服務(wù)場景中不再有統(tǒng)一的解決方案。例如,服務(wù)間通信方案就有數(shù)十種,包括 REST、gRPC、Thrift、Dubbo 等,服務(wù)發(fā)現(xiàn)也包含 CoreDNS、Eureka、ZooKeeper、ETCD 等多種技術(shù)選型 ; 應(yīng)用開發(fā)人員從這些各有千秋的技術(shù)中,選擇最適合自己業(yè)務(wù)場景的系統(tǒng)性方案,無疑是一件門檻很高的任務(wù) ; 盡管有 Spring Cloud 等一站式的全家桶工具集,對應(yīng)用設(shè)計和運維人員來說,一攬子工具集所提供的技術(shù)組合復(fù)雜多樣,導(dǎo)致問題定位、定界效率低。除 Spring Cloud,Kubernetes 也逐漸成為一種主流的微服務(wù)解決方案。與 Spring Cloud 相比,Kubernetes 的配置管理和服務(wù)注冊功能更加友好,且“邊車代理模式”、服務(wù)網(wǎng)格 (e.g., Istio) 等技術(shù)的提出,顯著提高了服務(wù)治理的效率;但要實現(xiàn)這類解決方案的高效利用,開發(fā)者的認知成本和所面對的復(fù)雜性并不低;從 Spring Cloud 到 Kubernetes,復(fù)雜性沒有被減弱,更多地是被轉(zhuǎn)移。微服務(wù)架構(gòu)也需要開發(fā)者掌握并發(fā)編程框架和分布式事務(wù)一致性等技術(shù),這些技術(shù)本身具備不低的復(fù)雜性,以事務(wù)一致性為例,常見機制就包括 TCC (Try-Confirm-Cancel)、2/3PC (2/3 Phase Commit)、SAGA 等模式。挑戰(zhàn)二:服務(wù)擴展效率與應(yīng)用規(guī)模難平衡盡管微服務(wù)提倡對應(yīng)用進行拆分,但微服務(wù)的粒度仍然比較大。同一個微服務(wù)單元中,不同子功能之間的使用頻率(e.g., QPS、RPS et al.)、變更頻率等往往也不相同,因而對擴展性的訴求也不一樣。圖 2 展示了一個 Web 應(yīng)用中“用戶管理”微服務(wù)的例子 [3],該微服務(wù)包含賬號注冊 API、登錄 API 和登出 API 三項子功能,在實際使用中,注冊 API 和登錄 API 的調(diào)用頻率通常遠高于登出 API,因此對擴展性的要求也高于后者;此時雖然可以對微服務(wù)進一步進行拆分,但整個應(yīng)用的服務(wù)數(shù)量也可能會隨之翻倍,從而加重應(yīng)用基礎(chǔ)設(shè)施的管理負擔。圖 2. 一個 Web 應(yīng)用中“用戶管理”微服務(wù)的示例微服務(wù)粒度較大的問題也使得單個服務(wù)的擴容速度十分受限,在高并發(fā)場景下要實現(xiàn)微服務(wù)的快速彈性是一件十分困難的事;對于時延敏感型應(yīng)用,并發(fā)請求的擴容訴求通常在秒級以內(nèi),甚至毫秒級,但在微服務(wù)架構(gòu)下,服務(wù)彈性擴容則通常需要秒級以上甚至分鐘級的時延。與服務(wù)擴展效率和應(yīng)用規(guī)模平衡相關(guān)的另一個難題是成本問題。受限于單個服務(wù)的彈性能力,微服務(wù)架構(gòu)通常采用“多實例主備”或“多實例多活”的方案,來保障應(yīng)用的高可用性,實現(xiàn)容錯、容災(zāi)、負載均衡等目標。但與前文中討論的相似,同一個微服務(wù)應(yīng)用的不同子服務(wù)之間,其承載的流量大小、調(diào)用頻率等的差距也可能很大,因此對資源的橫向、縱向擴縮容訴求也不一致,這種差距往往給企業(yè)帶來無畏的成本浪費。圖 3 展示了一個由 6 個功能不可或缺的子服務(wù)構(gòu)建而成的微服務(wù)應(yīng)用, 每個服務(wù)運行在虛機或容器中,圖中實線表示在給定的一段時間內(nèi)企業(yè)為每個服務(wù)所占據(jù)的虛機或容器所支付的資源成本,虛線表示服務(wù)在業(yè)務(wù)運行中所實際消耗的資源成本。圖 3. 一個微服務(wù)應(yīng)用的資源成本示意在圖 3 的示例中,微服務(wù) F 由于被調(diào)用的頻率很高,其所占據(jù)的資源利用率也較高,而微服務(wù) A 則相反,其所占據(jù)的資源成本和 F 相差不大(e.g., 2u2G 的容器),但 A 被調(diào)用的頻率則相對低很多,資源利用率也相應(yīng)更低。在實際應(yīng)用開發(fā)運維中,為保障高可用性和資源彈性,圖中實線與虛線之間通常存在較大的差距,這部分成本是企業(yè)為應(yīng)用所占據(jù)但未使用的資源付出的成本,屬于一種成本浪費;同時,由于微服務(wù)架構(gòu)通常不支持(一般也不建議)單個服務(wù) “Scale-to-Zero”,且微服務(wù)應(yīng)用逐漸變得越來越 “重”,上述 “資源占而不用” 導(dǎo)致的浪費現(xiàn)象也更加嚴重。事件驅(qū)動式 Serverless 函數(shù)架構(gòu)
云原生基礎(chǔ)設(shè)施的發(fā)展,有力促進了事件驅(qū)動的 Serverless 架構(gòu)的廣泛應(yīng)用。相比于微服務(wù),Serverless 提供了一種更加細粒度的應(yīng)用開發(fā)模型,以及更加便捷、輕量的應(yīng)用運維框架。以 FaaS(Function-as-a-Service)為例,應(yīng)用開發(fā)支持以單個函數(shù)作為最小部署單元,開發(fā)者只需提供函數(shù)代碼(包括源碼文件、鏡像等)和一些配置信息,即可實現(xiàn)應(yīng)用的快速發(fā)布和上線;同時,后端資源的維護及其隨流量的自適應(yīng)伸縮等復(fù)雜任務(wù),則全部被下移到 Serverless 平臺側(cè),顯著降低了開發(fā)者的認知成本和開發(fā)、運維門檻,如圖 4 所示;開發(fā)者只需為應(yīng)用函數(shù)所實際使用的資源時長進行付費,付費粒度精確到毫秒級;同時,在應(yīng)用流量負載為零的所有時間區(qū)間中,函數(shù)實例通過“Scale-to-zero”可以有效消除成本浪費,實現(xiàn)應(yīng)用開發(fā)經(jīng)濟化。圖 4. Serverless 應(yīng)用開發(fā)架構(gòu)的資源邊界示意與在微服務(wù)場景下相似,事件驅(qū)動式(Event-driven)也是 Serverless 函數(shù)架構(gòu)的核心特征。Serverless 函數(shù)一般由函數(shù)代碼包和事件處理程序(event handler)構(gòu)成,函數(shù)通過事件進行觸發(fā),并對接收到的事件進行響應(yīng)、處理。例如,F(xiàn)unctionGraph 支持多種類型的事件觸發(fā)器,滿足應(yīng)用在不同業(yè)務(wù)場景下的訴求;同時,通過原生集成事件網(wǎng)格服務(wù) EventGrid,F(xiàn)unctionGraph 為各類云服務(wù)、自定義應(yīng)用、SaaS 應(yīng)用提供了標準化、中心化的接入方式,事件可以在不同應(yīng)用和服務(wù)之間靈活路由,幫助開發(fā)者快速構(gòu)建松耦合、分布式的事件驅(qū)動式 Serverless 應(yīng)用,如圖 5 所示。圖 5. EFG:基于 EventGrid 和 FunctionGraph 的事件驅(qū)動式 Serverless 應(yīng)用模型基于函數(shù)快速實現(xiàn) Serverless Microservice 應(yīng)用
圖 6 給出了基于 FunctionGraph 和 APIG(API Gateway)的 Serverless Microservice 簡易應(yīng)用模型,整個應(yīng)用采用云上托管服務(wù)(managed services)構(gòu)建,每個微服務(wù)由函數(shù)實現(xiàn),并通過 APIG 對外暴露,函數(shù)之間采用 Workflow 進行功能編排。在該模型基礎(chǔ)上,我們用函數(shù)快速實現(xiàn)一個 Serverless Microservice 示例。圖 6. 基于 FunctionGraph 和 APIG 的 Serverless Microservice 模型以經(jīng)典的電商應(yīng)用為例,首先用 FunctionGraph 創(chuàng)建三個函數(shù),分別實現(xiàn) Product, Basket, Order 微服務(wù),其中,Product 實現(xiàn)商品清單及詳情瀏覽,Basket 負責加購,Order 完成下單。交易相關(guān)的狀態(tài)采用分布式緩存服務(wù) DCS(Distributed Cache Service)進行存儲,DCS 實例通過綁定獨立 VPC 來實現(xiàn)網(wǎng)絡(luò)私有和隔離,最后,我們?yōu)槊總€函數(shù)分別綁定一個 APIG 觸發(fā)器,對外暴露服務(wù);如圖 7(1) - 7(5) 所示。圖 7-(1). 分別創(chuàng)建三個函數(shù),實現(xiàn)微服務(wù)功能圖 7-(2). 授權(quán) FunctionGraph 訪問 VPC 內(nèi)服務(wù) (i.e., DCS 實例)圖 7-(4). 在函數(shù)中獲取對應(yīng)環(huán)境變量圖 7-(5). 最后為每個函數(shù)綁定 APIG 觸發(fā)器我們用 APIPost 進行簡單測試并返回函數(shù)界面查看監(jiān)控信息,如圖 8(1) – (3) 所示:圖 8-(1). 用 APIPost 測試函數(shù)微服務(wù)圖 8-(3). 查看并發(fā)數(shù)等監(jiān)控信息最后,我們通過 EventGrid 進行異步事件解耦,并采用分布式消息服務(wù) DMS(Distributed Message Service)實現(xiàn)基于 Fan Out/Fan In 的批處理,如圖 9 所示:圖 9. 一個基于事件驅(qū)動的 Serverless 函數(shù)架構(gòu)的電商應(yīng)用示例其中,EventGrid 創(chuàng)建事件訂閱時,事件源選擇 DCS 實例,事件目標選擇 FunctionGraph 函數(shù),如圖 10 所示:圖 10. 創(chuàng)建 EventGrid 事件訂閱云上 Serverless Microservice 實踐標準探索
在基于事件驅(qū)動式 Serverless 函數(shù)架構(gòu)開發(fā)應(yīng)用的過程中,遵循一定的設(shè)計 / 開發(fā)原則或“實踐標準”,有利于開發(fā)者構(gòu)建更加高效、經(jīng)濟和穩(wěn)健的企業(yè)應(yīng)用。本文結(jié)合華為云 FunctionGraph、EventGrid 以及 CAE 等云服務(wù)在 Serverless 領(lǐng)域的最佳實踐,總結(jié)并提煉出 Serverless microservice 應(yīng)用開發(fā)的七類實踐標準,為開發(fā)者的架構(gòu)決策提供參考;如表 2 所示。表 2. 云上 Serverless Microservice 應(yīng)用開發(fā)的實踐標準探索基礎(chǔ)設(shè)施無感知(Infra-less):基礎(chǔ)設(shè)施無感知幫助開發(fā)者更快、更高效地構(gòu)建應(yīng)用程序,并顯著降低應(yīng)用運維的成本和復(fù)雜性。除服務(wù)器無感知外,基礎(chǔ)設(shè)施無感知具有更廣泛的含義。包括開發(fā)者對平臺底層操作系統(tǒng)、分布式運行時以及硬件的有限制訪問,開發(fā)者無需感知 FunctionGraph 平臺是如何架構(gòu)的,其它云服務(wù)與 FunctionGraph 的集成由華為云統(tǒng)一管理,只公開少量配置選項給開發(fā)者,開發(fā)者也無需感知函數(shù)在任何時間點被調(diào)用時實例資源位于哪個可用區(qū)(Available Zone, AZ),等等;這種抽象允許開發(fā)者專注于應(yīng)用程序本身的功能開發(fā)、數(shù)據(jù)流設(shè)計和業(yè)務(wù)邏輯優(yōu)化,從而更聚焦地為應(yīng)用的終端用戶提供價值。全生命周期可觀測(Deep Observability):基礎(chǔ)設(shè)施無感知在提供便捷性的同時,也在開發(fā)者的“心智模型”方面降低了透明性,因此,全生命周期、深度、實例級的可觀測性,對于開發(fā)者實現(xiàn)對應(yīng)用的自主掌控具有關(guān)鍵作用。Serverless 可觀測性包含鏈路追蹤,日志,和指標三類,主要服務(wù)于異常監(jiān)控、性能調(diào)測、故障定位、問題定界等。例如,F(xiàn)unctionGraph 通過內(nèi)置對接云日志服務(wù) LTS,為應(yīng)用函數(shù)提供日志監(jiān)控能力,包括高級日志分析能力(e.g., loginsight)等;通過對接應(yīng)用性能管理服務(wù) APM,提供指標豐富的函數(shù)實例級監(jiān)控;同時,支持全鏈路調(diào)用鏈管理等。開發(fā)者無需復(fù)雜的配置,即可享受應(yīng)用函數(shù)全生命周期的深度可觀測性能力。流式編排(Flow Orchestration):編排是 Serverless 的核心概念之一,狹義的編排主要指工作流編排,如 FunctionGraph Workflow,在 Serverless microservice 應(yīng)用開發(fā)中,開發(fā)者應(yīng)盡量避免在單個函數(shù)中定制化地開發(fā)應(yīng)用的各類分支邏輯及其異常處理程序,應(yīng)盡可能采用函數(shù)工作流編排來實現(xiàn),工作流編排提供了一種更加便捷的分支路由、錯誤捕獲以及異常處理方法,能夠增強應(yīng)用邏輯的穩(wěn)健性并提高全鏈路可觀測性 [4]。廣義的編排還包括服務(wù)流編排(Service Flow),應(yīng)用架構(gòu)所依賴的三方功能,如網(wǎng)關(guān)、消息、緩存等,也應(yīng)盡可能采用云上托管服務(wù),通過配置驅(qū)動、服務(wù)流編排的方式進行組裝式構(gòu)建,從而盡可能減少定制化代碼的開發(fā)和維護,降低應(yīng)用運維的負擔。FunctionGraph 原生支持開發(fā)者集成云上其它服務(wù),表 3 列出了在 Serverless microservice 開發(fā)中最常用的幾類云服務(wù)。表 3:Serverless microservice 應(yīng)用程序開發(fā)中常用的幾類云服務(wù)事件驅(qū)動(Event-driven):事件,表示狀態(tài)的變化。采用事件驅(qū)動的方式構(gòu)建應(yīng)用的優(yōu)點在于松耦合、獨立擴縮容、良好的擴展性等。在狀態(tài)查詢、數(shù)據(jù)存取、函數(shù)調(diào)用等場景中,優(yōu)先采用事件來代替?zhèn)鹘y(tǒng)應(yīng)用開發(fā)中常用的輪詢、Webhook 等機制,可以有效降低應(yīng)用的復(fù)雜性、提高系統(tǒng)性能、或降低應(yīng)用成本 [5]。以輪詢?yōu)槔捎谙到y(tǒng)狀態(tài)的更新在時間維度上不一定是規(guī)律且連續(xù)的,使得輪詢類策略往往是低效或非經(jīng)濟的;Webhook 機制則在被集成的服務(wù)之間不一定能夠得到廣泛的支持。同時,輪詢和 webhook 機制在支持應(yīng)用按需擴縮容方面也存在較大挑戰(zhàn)。采用事件驅(qū)動模式,開發(fā)者既可以很方便地構(gòu)建實時系統(tǒng),實現(xiàn)數(shù)據(jù)按需流動并避免過量的批處理任務(wù);也可以通過將事件發(fā)布到 DMS 等消息服務(wù),利用彈性緩沖區(qū)實現(xiàn)異步解耦,然后利用 EventGrid 對事件進行過濾和路由,從而增強應(yīng)用在流量激變情形下的可伸縮性。交互式控制(Interactive Autopilot):交互式控制主要解決如何通過廣義的自動駕駛技術(shù)(autopilot)[7] 實現(xiàn)應(yīng)用迭代和生產(chǎn)的高性能、低成本;對于 Serverless 函數(shù)而言,自動駕駛主要包括函數(shù)代碼包瘦身、源碼優(yōu)化、資源規(guī)格選擇、并發(fā)度調(diào)優(yōu)等問題。以函數(shù)資源規(guī)格選擇為例,過去主要依賴于開發(fā)者的工程經(jīng)驗和其對自身業(yè)務(wù)場景的理解進行設(shè)定,但經(jīng)驗性配置往往具有誤差大、靜態(tài)性、黑盒化等缺點;因此,F(xiàn)unctionGraph 提出在線式資源消耗感知與規(guī)格動態(tài)推薦等 autopilot 技術(shù),配合離線式最佳規(guī)格調(diào)優(yōu)(power tuning),最大限度幫助用戶實現(xiàn)應(yīng)用函數(shù) FinOps 效果,讓開發(fā)者能夠真正享受到 Economical Serverless 的福利 [8];開發(fā)者無需感知應(yīng)用自動駕駛技術(shù)的實現(xiàn)細節(jié),但整個過程 “處處可觀察、 實時可干預(yù)”。狀態(tài)管理自動化(Automatic State Management):盡管 Serverless 提倡無狀態(tài)優(yōu)先,但在多數(shù)分布式應(yīng)用中,狀態(tài)管理是無法回避且復(fù)雜度很高的任務(wù)。隨著數(shù)據(jù)密集型應(yīng)用逐漸成為云上應(yīng)用的主流,如大規(guī)模機器學(xué)習(xí)、大數(shù)據(jù)與流處理、實時交互型應(yīng)用、多人協(xié)作類應(yīng)用等,Serverless 編程框架對支持有狀態(tài)的訴求越來越強烈。FunctionGraph 作為業(yè)界首個支持有狀態(tài)的 Serverless 平臺,為開發(fā)者提供多種狀態(tài)一致性模型和自動化的并發(fā)處理機制,開發(fā)者通常只需要對函數(shù)中的簡單結(jié)構(gòu)體進行操作,即可實現(xiàn)狀態(tài)數(shù)據(jù)的快速存取,整個狀態(tài)管理過程由平臺內(nèi)置提供,無需與外部存儲服務(wù)之間進行頻繁交互,顯著減少了涉及大量狀態(tài)數(shù)據(jù)操作的網(wǎng)絡(luò)訪問次數(shù),具有自動化、高性能、高可用等特點。伸縮原子輕量化(Lightweight Scaling Unit):伸縮原子,指最小可伸縮的運行單元,如單個函數(shù)。在 Serverless microservice 應(yīng)用開發(fā)中,函數(shù)應(yīng)盡可能小型化,功能上保持邏輯內(nèi)聚,以響應(yīng)外部事件為主,對應(yīng)用全局邏輯弱感知;伸縮原子的輕量化,不僅能夠支持快速的獨立擴縮容以及高并發(fā)下的快速彈性能力,也能夠最大限度地保證應(yīng)用的各個微服務(wù)函數(shù)能夠“按需擴縮容”,從而在保障應(yīng)用負載 QoS 的前提下,實現(xiàn)極致成本。以事件驅(qū)動式函數(shù)架構(gòu)為代表的 Serverless 編程模型,正在成為微服務(wù)應(yīng)用開發(fā)的新一代標準框架。本文結(jié)合華為云 FunctionGraph 和 EventGrid 等在 Serverless 微服務(wù)方面的最佳實踐,總結(jié)并提煉出七大 Serverless Microservice 實踐標準, 為推動全域 Serverless 產(chǎn)業(yè)升級提供一些思考。更進一步地,華為云事件網(wǎng)格服務(wù) EventGrid 將于近期正式轉(zhuǎn)商用,并聯(lián)合 FunctionGraph 推出事件驅(qū)動式函數(shù)應(yīng)用開發(fā)模型 EFG(EventGrid-FunctionGraph); 同時,基于七大實踐標準并結(jié)合豐富的客戶實踐,EFG 將推出 Serverless Microservice 參考架構(gòu),為開發(fā)者構(gòu)建事件驅(qū)動式 Serverless 解決方案提供可視化的架構(gòu)抽象和優(yōu)秀的業(yè)務(wù)建模支持。[1] Introduction to Microservices. https://www.nginx.com/blog/introduction-to-microservices/
[2] 周志明,《鳳凰架構(gòu):構(gòu)筑可靠的大型分布式系統(tǒng)》
[3] 劉方明, 李林峰, 王磊, 《華為 Serverless 核心技術(shù)與實踐》.
[4] Understanding event-driven architecture – Part 1https://aws.amazon.com/blogs/compute/operating-lambda-design-principles-in-event-driven-architectures-part-2/
[5] Design principles in event-driven architectures – Part 2https://aws.amazon.com/cn/blogs/compute/operating-lambda-design-principles-in-event-driven-architectures-part-2/
[6] Anti-patterns in event-driven architectureshttps://aws.amazon.com/cn/blogs/compute/operating-lambda-anti-patterns-in-event-driven-architectures-part-3/
[7] Rzadca, K., Findeisen, P., Swiderski, J., Zych, P., Broniek, P., Kusmierek, J., ... & Wilkes, J. (2020, April). Autopilot: workload autoscaling at google. In Proceedings of the Fifteenth European Conference on Computer Systems (pp. 1-16).
[8] 歷川, 平山, 馮嘉, Serverless 遇到 FinOps: Economical Serverless,https://www.infoq.cn/article/ckibtiofxn4whycfjt8b
原文標題:Serverless時代的微服務(wù)開發(fā)指南:華為云提出七大實踐新標準
文章出處:【微信公眾號:華為DevCloud】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
原文標題:Serverless時代的微服務(wù)開發(fā)指南:華為云提出七大實踐新標準
文章出處:【微信號:華為DevCloud,微信公眾號:華為DevCloud】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
相關(guān)推薦
電子發(fā)燒友網(wǎng)站提供《超值音棒參考設(shè)計套件開發(fā)指南.pdf》資料免費下載
發(fā)表于 12-21 09:16
?0次下載
電子發(fā)燒友網(wǎng)站提供《BQ7690x軟件開發(fā)指南.pdf》資料免費下載
發(fā)表于 11-07 10:19
?0次下載
電子發(fā)燒友網(wǎng)站提供《MSP430? MCU開發(fā)指南.pdf》資料免費下載
發(fā)表于 11-06 09:57
?0次下載
微服務(wù)架構(gòu)與容器云密切相關(guān)又有所區(qū)別。微服務(wù)將大型應(yīng)用拆分為小型、獨立的服務(wù),而容器云基于容器技術(shù),為微
發(fā)表于 10-21 17:28
?214次閱讀
電子發(fā)燒友網(wǎng)站提供《MSP430 MCU開發(fā)指南.pdf》資料免費下載
發(fā)表于 10-10 17:19
?1次下載
電子發(fā)燒友網(wǎng)站提供《PGA460軟件開發(fā)指南.pdf》資料免費下載
發(fā)表于 10-09 10:30
?0次下載
【摘要】 近年來,華為云持續(xù)構(gòu)筑全域 Serverless 云服務(wù),推出了一系列競爭力領(lǐng)先的 Serve
發(fā)表于 09-27 00:06
?836次閱讀
電子發(fā)燒友網(wǎng)站提供《LVGL開發(fā)指南介紹.pdf》資料免費下載
發(fā)表于 09-09 10:24
?16次下載
電子發(fā)燒友網(wǎng)站提供《RA/RX電機應(yīng)用開發(fā)指南.pdf》資料免費下載
發(fā)表于 08-15 09:44
?0次下載
隨著數(shù)字化時代的快速發(fā)展,AI 技術(shù)已成為推動行業(yè)創(chuàng)新的關(guān)鍵動力。華為云緊跟時代步伐,全新上線 Serverless 應(yīng)用中心,為用戶提供海
發(fā)表于 03-19 22:57
?463次閱讀
迅為RK3568開發(fā)板驅(qū)動開發(fā)指南-輸入子系統(tǒng)
發(fā)表于 02-23 15:11
?869次閱讀
一、ArkTS\\\\API9,服務(wù)器端基于serverless開發(fā)的應(yīng)用與元服務(wù)華為賬號注冊登錄功能暫時是不支持的
二、3月1日后的審核
發(fā)表于 02-20 10:14
新賬戶,Serverless云存儲沒法創(chuàng)建 ,沒法進行下一步。
解決方式
請按照這個方式修改一下就能正常創(chuàng)建了,瀏覽器中打開控制臺輸入
window.top.cfpConfig.cloudStorageSwitch=‘off’ 后再創(chuàng)建桶
發(fā)表于 02-19 11:21
電子發(fā)燒友網(wǎng)站提供《RA家族QE電機應(yīng)用開發(fā)指南.pdf》資料免費下載
發(fā)表于 01-31 09:57
?0次下載
電子發(fā)燒友網(wǎng)站提供《keil arm軟件開發(fā)指南.pdf》資料免費下載
發(fā)表于 01-26 15:51
?7次下載
評論