關於 Serverless 應用架構對企業價值的一些思考

Serverless發表於2023-01-10

作者:寒斜

前言

對於企業方而言,最關心的核心訴求就是如何能獲取更多的營收,更高的利潤,通俗點說就是如何賺更多的錢;企業賺錢的方式主要是透過出售企業服務,當使用者購買更多的企業服務,企業賺的錢就越多;而出售企業服務所付出的成本越低,企業獲取的利潤收益就會增加。進一步總結下來就是,企業最希望的事情是他們的企業服務在效率,成本,體驗上可以不斷地提升,因為企業服務體驗做的好,購買他的客戶自然便會增加;企業服務效率高的公司,在同等單位時間內提供的企業服務就會更多;而企業服務的成本降低,單個企業服務的利潤營收就會變高。

image.png

明確企業服務價值後,我們瞭解到成本,效率,體驗是營收利潤增長的關鍵。

何謂 Serverless 架構?

我們可以簡單地理解為,構建應用中需要的計算,儲存,網路,資料庫,中介軟體服務等都實現了 Serverless 化,各個系統實現了最精細化的用雲,並且該架構體系在安全,高可用方面以及處理高併發的能力,可擴充套件性都達到了價值的最大化。下面我舉一個實際的例子:_Serverless 架構實現的 Websocket 叢集場景-彈幕應用 _來為大家更詳細地解釋一下。
image.png
該專案綜合運用了計算,儲存,網路,資料庫,中介軟體全部件,用企業的標準構建,同時具備安全,高效能,穩定性,可擴充套件等能力,且實現了雲,邊,端的現代化訪問架構思路。

其中 websocket.serverless-developer.com 主域名透過全球加速 DCDN 管理,主域的請求會被轉發給邊緣節點中的 ER 程式,ER 程式進行快取處理和動靜態分流,動態的資源轉發到阿里雲函式計算閘道器。函式計算閘道器彈性啟動例項,處理業務邏輯以及訪問 MNS 訊息中介軟體和 tablestore 資料庫儲存,靜態資源則盡最大限度進行快取,必要時從 OSS 物件儲存進行回源。其中 DCDN 可以進行邊緣防護,防止 DDOS 攻擊,並且增加了 Https 安全證書進行網站的加密傳輸,邊緣節點的 ER 程式是 Serverless 化的啟停,可以達到毫秒級響應時間。同時函式計算會對更復雜的業務算力進行彈性,訪問量大的時候多彈例項,無訪問資料則釋放至 0。

barrage.websocket.serverless-developer.com 則單獨提供 websocket 服務,由 DCDN 自動回源到函式計算,因為本身 websocket 協議無法被邊緣應用程式轉發。

值得一提的是,筆者作為一名前端程式設計師,幾乎沒有高可用,高併發,安全等專業方面的知識,但是這並不妨礙我把這些能力構建到自己的應用上,Serverless is More ,這句話越品味越有感覺。更詳細地介紹可參考《人人都是Serverless 架構師-websocket 叢集實踐》[1]

企業數字化轉型中 Serverless 架構的優勢

現在我們能夠達到的一個基本共識就是:期望透過企業的數字化轉型來最佳化企業服務的成本,效率,使用者體驗。但是我們暫且先不去討論企業方因此需要在組織文化方面做的改變,單純去看數字化管理工具,具體而言就是業務軟體部分。構建軟體的基本架構在慢慢的發生變化,從 IDC 到容器叢集,今天 K8s 已經幫助企業在基礎軟體架構層面進行了運維體驗,效率,成本的提升。下一個階段的進化是 Serverless。這裡需要明確一點是,現在尋求的是 效率,成本,體驗三者整體的最佳平衡點,並不是單一項的絕對值提升,因為這三者中存在互斥的現象,比如你提升體驗的前提可能是把成本和效率增加了,而降低成本或者提升效率本身也可能會影響體驗。我們期待 Serverless 架構能夠在適合領域中相較於容器叢集管理,去實現三者更優的平衡。

成本

從計算資源成本方面:Serverless 具有比容器化更細粒度的計算抽象。可以做到按量付費,從而極大的節省計算資源的浪費。
image.png
開發成本: Serverless 架構應用隨著分散式的拓撲節點增多,開發運維成本會提升上去,另外市場上因為新的應用架構相關的人才缺乏,從而也會影響 Serverless 架構的應用落地。不過值得注意的是,Serverless 開發者工具正日漸完善,Serverless 應用的開發正規化也會更加明確,市面上 Serverless 應用架構的實踐案例將會越來越多,相信開發成本會很快被彌補上來。

效率

1.數字化工具本身的迭代更新效率

Serverless 架構本質上是一種精細化用雲的架構。傳統伺服器中的網路,計算,儲存,資料庫,中介軟體等都被單獨的劃分出來,每一項都只關注自己最擅長的部分。比如邊緣節點提供的網路能夠降低使用者的訪問時延和流量資費,Serverless 化的計算服務提供極致彈性,儲存則提供了無限容量的可能,資料庫高效能讀寫分離,中介軟體可以提供應用高併發的處理能力,總結下來 Serverless 架構中的元件體系解決了應用邏輯以外的各類複雜的 IT 問題,使得開發人員不必關心非業務開發以外的東西,這實際上能夠大大提高數字化工具的迭代更新效率。

再結合 DevOps、AIOps 這些現代化的開發工程體系,Serverless 可以進一步提升開發效率。

2.透過數字化工具提升的企業服務效率

未來對於企業發展而言,會越來越依賴企業級的數字化服務能力,包含效能,高可用,高併發,安全這些屬性在內。但是通常對於業務型的研發團隊而言,很難處理這些非業務並且很複雜的軟體工程問題。Serverless 的應用架構本質上是一種組裝正規化,其中的元件是被高度抽象化之後並且由專業團隊花費數年打造出來的具備企業級能力的技術方案,所以對於業務研發而言不必掌握其技術底層細節,只需要能夠將其利用起來去服務好業務本身即可。這樣組裝出來的軟體應用天然具備企業級的能力。

image.png
Serverless 架構的組裝式研發

使用者體驗

這裡主要指數字化服務體驗,更具體一點就是企業業務中涉及軟體應用的使用體驗。比如軟體功能本身亦或是軟體的易用性。軟體功能除了跟業務的抽象定義相關,也跟技術團隊的實現相關。豐富的原子化能力使得 Serverless 架構能夠幫助企業跨越技術鴻溝,在構建更復雜的數字化服務軟體上有著天然的優勢。

還是以上面 webscoket 叢集為例,企業相關業務推出彈幕應用,但是因為受限於技術實現無法做到大規模高併發實現,勢必會影響希望使用這項服務的使用者,但是有了 Serverless 架構可組裝實現高可用架構,那麼即使公司沒有高可用高併發領域相關的專家,也可以實現具備高效能,高併發的業務訴求。

image.png

另外,得益於 Serverless 在全鏈路地擴充套件,使得開發人員可以在網路層面介入效能最佳化,利用邊緣 Serverless 計算能力,我們可以做邊緣渲染和邊緣的快取,讓數字化服務觸達使用者的時間更短,提升數字化服務的訪問體驗。


場景體驗:

更多內容關注 Serverless 微信公眾號(ID:serverlessdevs),彙集 Serverless 技術最全內容,定期舉辦 Serverless 活動、直播,使用者最佳實踐。

相關文章