Serverless 技術架構 — 初探傳說中的FAAS(Function as a Service)

各位看官,你必定或多或少聽到關於API Gateway,Docker,Function Compute, Serverless 等各類酷酷的新單詞,跟人聊天的時候簡直是裝*利器呀,
那麼你真的知道這個概念是什麼嗎?數據庫

肉肉強行理解一波概念:

Serverless 是一種基於互聯網的技術架構理念,應用邏輯並不是所有在服務端實現,而是採用FAAS(Function as a Service)架構,經過功能組合來實現應用程序邏輯。
同時呢,Serverless架構可以讓開發者在構建應用的過程當中無需關注計算資源的獲取和運維,由平臺來按需分配計算資源並保證應用執行的SLA,按照調用次數進行計費,有效的節省應用成本安全

圖片描述

那麼,你必定好奇 Serverless 和傳統架構有什麼類似和不一樣點呢?

傳統的互聯網APP主要採用C/S架構,服務器端需長期維持業務進程來處理客戶端請求,並調用代碼邏輯完成請求響應流程。
而在Serverless架構中,應用業務邏輯將基於FAAS架構造成獨立爲多個相互獨立功能組件,並以API服務的形式向外提供服務;同時,不一樣功能組件間的邏輯組織代碼將存儲在阿里雲Function Compute,Amazon Lambda,Azure Function,Google Cloud Functions等產品上,業務代碼僅在調用時才激活運行,當響應結束佔用資源便會釋放。服務器

說了這麼多,Serverless 有哪些優點呢?

1) 節約使用成本
在業務突發性極高的場景下,系統爲了應對業務高峯,必須構建可以應對峯值需求的系統,這個系統在大部分時間是空閒的,這就致使了嚴重的資源浪費和成本上升。在Serverless架構下,服務將根據用戶的調用次數進行計費,節省了使用成本,同時,用戶可以經過共享網絡、硬盤、CPU等計算資源,在業務高峯期經過彈性擴容方式有效的應對業務峯值,在業務波谷期將資源分享給其餘用戶,有效的節約了成本網絡

2) 簡化設備運維
在原有的IT體系中,開發團隊即須要維護應用程序,同時還要維護硬件基礎設施;Serverless架構中,開發人員面對的將是第三方開發或自定義的API 和URL,底層硬件對於開發人員透明化了,技術團隊無需再關注運維工做,可以更加專一於應用系統開發架構

3) 提高可維護性
Serverless架構中,應用程序將調用多種第三方功能服務,組成最終的應用邏輯。
目前,例如登錄鑑權服務,雲數據庫服務等第三方服務在安全性、可用性、性能方面都進行了大量優化,開發團隊直接集成第三方的服務,可以有效的下降開發成本,同時使得應用的運維過程變得更加清晰,有效的提高了應用的可維護性框架

那那那,Serverless 架構可以知足哪些行業實際場景呢?怎麼快速上手用起來呢?

移動行業、物聯網行業是很是典型的Sreverless架構使用場景,簡單舉下例子less

  • 低頻請求場景運維

物聯網行業中,因爲物聯網設備傳輸數據量小,且每每是固定時間間隔進行數據傳輸,所以常常涉及低頻請求場景。例如:物聯網應用程序每分鐘僅運行一次,每次運行50ms,這意味着CPU的使用率爲0.1%/小時,這也意味着其實有1000個相同的應用能夠共享計算資源。而Serverless架構下,用戶能夠購買每分鐘100ms的資源來知足計算需求,經過這種方式就可以有效解決效率問題,下降使用成本函數

  • 流量突發場景性能

例如:移動互聯網應用常常會面對突發流量場景,例如:移動應用的一般流量狀況是QPS 20,但每隔五分鐘會有一個持續10s的QPS 200流量(10倍於一般流量),傳統架構下企業必須擴展QPS 200的硬件能力來應對業務高峯,即便高峯時間僅佔整個運行時間的4%;而在Serverless架構下,用戶能夠利用彈性擴展特性,快速構建新的計算能力來知足當前需求,當業務高峯後,資源可以自動釋放,有效節省成本

固然啦,Serverless領域 AWS Lambda是先行者。隨後其餘廠商相繼推出了本身的函數服務,包括Azure Function,Google Cloud Functions。
阿里雲的Serverless產品函數服務(Function Compute)如今正在緊張的研發階段,預計2016年末以前會正式對外發布。

阿里雲將來會圍繞Serverless概念構建完整的生態體系,產品層面將全力打造API Gateway,Docker,Function Compute等爲主的Serverless基礎產品序列,同時圍繞基礎框架提高大數據服務能力,推進API經濟發展

咱們先設一個小目標:努力成爲中國 Serverless 的領導者 (羞羞臉...

相關文章
相關標籤/搜索