閱讀540 返回首頁    go 微軟 go windows


入門篇:函數計算的基本概念和通用場景概述

4月26日,阿裏雲正式推出了函數計算這個微服務產品,在此之前Serverless的概念被炒的極其火熱,仿佛大家要歡天喜地進入了微服務的狂歡階段,不過光有概念很容易暈,今天我帶大家一起來細化一下Serverless的基本概念、Serverless跟傳統IT架構的對比、Serverless和函數計算的區別,以及函數計算最典型場景都有哪些。

Serverless的基本概念

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

我畫個簡單對比圖來對比傳統IT架構和Serverless的真正區別在哪裏:

7852bc729a21269b8982e3bc813df94590ac1184

在該架構中,我們在雲服務器上是部署了web容器來解析web圖片處理應用,用戶通過手機上的APP上傳圖片,應用程序對圖片進行定製,例如按用戶屬性分類、按區域分類,審核鑒黃圖片、以及建立圖片索引等個性化數據處理後,把圖片存儲到雲存儲中,用戶通過最近節點CDN可以讀取經過處理的圖片,達到圖片分享的功能。

當應用上線後,在營銷推廣的高峰值就要考慮雲服務器的負載均衡問題,架構就開始演變後的集群架構圖:

67757e78c4ebd8040d609cf94a2ab768d2703dd2

在這個架構中,我們需要做如下事情:

1.管理雲服務器。我們要關心CPU數量、內存大小、IP地址等等係統級的配置。

2.管理雲服務器操作係統,為部署容器設置訪問策略,操作係統版本以及容器安全補丁也不能忽視,否則競爭對手可能雇傭黑客來攻擊我們的係統。

3.配置整套環境的彈性擴容的策略,應對高峰期突發訪問量。

4.需要配置雲存儲、CDN

5.編寫WEB圖片處理應用。

Serverless(函數計算)架構圖:

在使用函數計算的用戶可以設置雲存儲的觸發器(PutObject事件),當用戶上傳圖片到OSS會立即一個新的觸發函數計算的執行,同樣當業務訪問量是峰值的時候,Function Compute會自動擴容來支撐整個業務處理。處理後的數據回傳到OSS中,其他用戶通過CDN可以訪問被處理後的圖片訪問。

其中架構圖如下:

fc26cb1220934679bab948d59c85915b03562b44

我隨手摘錄網文上介紹的Serverless的優勢:

1、節約使用成本

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

2、簡化設備運維

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

3、提升可維護性

Serverless架構中,應用程序將調用多種第三方功能服務,組成最終的應用邏輯。

目前,例如登陸鑒權服務,雲數據庫服務等第三方服務在安全性、可用性、性能方麵都進行了大量優化,開發團隊直接集成第三方的服務,能夠有效的降低開發成本,同時使得應用的運維過程變得更加清晰,有效的提升了應用的可維護性

Serverless和函數計算的區別

阿裏雲的函數計算(Function Compute)是基於Serverless這種理論框架下推出彈性海量計算平台,是Serverless的一種實現,函數計算主打的旋律是輕和快,從一定意義上來看也可以認為函數計算就是Serverless的一個Pass平台。下麵來大致看看Function Compute的主要組成部分和基本概念:

包含關係:
b3f37a4fa8f203a63dbb46997867c18769f5cbea

函數概念解釋:

1、Service有兩層意義,一層可以按照業務屬性來劃分不同的服務專區,方便用戶做分類識別,另外一層對執行單元的授權、配置專屬日誌等,都在service進行配置。

2、一個Service可以設置10組Function,一個Function可以設置10個Trigger,一個Trigger隻能被一個Event定義。

3、Function是函數計算最小的執行單位,是核心代碼的執行區域。

函數計算的典型用戶場景

阿裏雲函數計算目前是通過事件來觸發函數的執行,處理的函數符合執行無狀態、執行冪等性等特點。一一來講解這些典型用戶場景:

1、IoT應用:設備端通過函數計算來訂閱天氣信息和空氣質量,設備和設備之間無依賴,執行過程中無需記錄狀態,獲取到第三方數據即可返回。

2、WEB應用:某WEB網站在用戶注冊成功後,會發一封歡迎郵件,通過函數計算把郵件內容定製成模板,每次觸發,每次執行都是冪等無狀態。

3、圖片處理:基於OSS的事件觸發,當用戶上傳的圖片轉入到某Bucket中後,自動觸發函數歲圖片進行可定製化處理

音頻轉換文字處理:當用戶通過語音來發出某些指令的時候,可以通過函數計算來觸發阿裏雲的ET公開API獲取到音頻轉換成文字的方式。

1、OSS(雲存儲)應用:

A、圖片處理:監控Bucket、Object事件(Put、Delete、Get、Head等)觸發用戶對函數運行,比如圖片的轉碼、水印或者鑒黃後的圖片分發到多個區域的Bucket等。

B、日誌處理:通過函數計算事件觸發,把存放的不同區域的bucket下的日誌文件進行匯總,分解,計算,並把計算結果通過回調函數通知Invoke程序。

2、APIGateway的應用:

A、API數據商,通過APIGateway連接函數計算,把從獲取到阿裏雲市場中獲取到的數據,例如天氣、股票、空氣質量等進行數據分析和數據清洗後,通過回調函數返回運算過的數據,達到自由定製的功能。同時享受APIGateway高附加值,例如流控、鑒權、監控的功能。

B、API代理商:通過APIGateway分發標準化的API接口,建立自己的生態係統,在APIGateway背後調用函數計算把後端對資源和跨產品的能力包裝起來(對圖片、AI、數據等),形成統一解決方案,例如對空氣質量的定製,對多個來源,IOS,Android,WEB,物聯網Hub都統一輸出。

以上就是對函數計算產品的綜述,擁有最新、最辣、最火爆的技術,永遠是開發者的終極追求,套用廣告詞,誰用誰知道!


最後更新:2017-06-19 22:32:00

  上一篇:go  [MySQL 5.6優化] --order by limit x,x 優化
  下一篇:go  雲服務器更換PHP版本升級的問題,升級PHP後,網站打不開