
云計算(cloud computing)
關于云計算的定義有多種說法,現階段廣為接受的是美國國家標準與技術研究院(NIST)定義:云計算是一種按使用量付費的模式,這種模式提供可用的、便捷的、按需的網路訪問, 進入可配置的計算資源共享池(資源包括網路,服務器,存盤,應用軟體,服務),這些資源能夠被快速提供,只需投入很少的管理作業,或與服務供應商進行很少的互動,從技術上看,大資料與云計算的關系就像一枚硬幣的正反面一樣密不可分,大資料必然無法用單臺的計算機進行處理,必須采用分布式計算架構,它的特色在于對海量資料的挖掘,但它必須依托云計算的分布式處理、分布式資料庫、云存盤和虛擬化技術, 由云計算又衍生出來三個概念,即業界廣泛認同的劃分方式,云計算的三大服務模式:IaaS(基礎設施即服務)、PaaS(平臺即服務)、SaaS(軟體即服務),我們來依次消化掉,
1、IaaS(基礎設施即服務)
消費者通過Internet 可以從完善的計算機基礎設施獲得服務,這類服務稱為基礎設施即服務,基于 Internet 的服務(如存盤和資料庫)是 IaaS的一部分,
2、PaaS(平臺即服務)
提供了基礎架構,軟體開發者可以在這個基礎架構之上建設新的應用,或者擴展已有的應用,同時卻不必購買開發、質量控制或生產服務器,比如,容聯云通訊就采用了PaaS的模式,容聯通過將專業的通訊能力打包成API介面與SDK,大幅降低企業和開發者對通訊服務的使用門檻,讓App、Web端、企業系統可以輕松接入短信/語音驗證碼、語音通話、語音通知、呼叫中心/智能IVR、語音對講/會議、視頻通話/會議等20多種專業通訊能力,提升開發和使用效率,快速實作短信/智能呼叫、通話、呼叫中心、移動IM、會議等五大功能,致力于讓通訊成為互聯網基礎服務,
3、SaaS(軟體即服務)
是應用軟體的一種銷售方式,客戶按使用時間或使用量付費這些應用軟體通常是在企業管理軟體領域,并通過互聯網來使用,通常理解下的SaaS軟體主要應用于CRM(客戶關系管理)、HRM(人力資源管理)、SCM(供應鏈)以及ERP等企業管理軟體,比如,容聯七陌就是SaaS云服務提供商,憑借在中國呼叫中心領域十年的積累,自主研發了基于云端的呼叫中心通訊平臺,同時結合客戶的使用場景提供:云客服、云電銷、云總機、云會議等企業通訊產品,平臺用戶涵蓋客服坐席、銷售坐席、企業總機等客戶,公司企業客戶涵蓋金融、教育、互聯網、O2O、汽車、醫療等多個行業,
4、BaaS(后端即服務)
Baas 的英文翻譯成中文的含義:后端即服務,它的應用架構由大量第三方云服務器和API組成的,使應用中關于服務器的邏輯和狀態都由服務提供方來管理的,比如我們的典型的單頁應用SPA和移動APP富客戶端應用,前后端互動主要是以RestAPI呼叫為主,只需要呼叫服務提供方的API即可完成相應的功能,比如常見的身份驗證,云端資料/檔案存盤,訊息推送,應用資料分析等,
5、什么是FaaS(函式即服務)
FaaS可以被叫做:函式即服務,開發者可以直接將服務業務邏輯代碼部署,運行在第三方提供的無狀態計算容器中,開發者只需要撰寫業務代碼即可,無需關注服務器,并且代碼的執行它是由事件觸發的,其中AWS Lambda是目前最佳的FaaS實作之一,
6、無服務(ServerLess)
Serverless的應用架構是將BaaS和FaaS組合在一起的應用,用戶只需要關注應用的業務邏輯代碼,撰寫函式為粒度將其運行在FaaS平臺上,并且和BaaS第三方服務整合在一起,最后就搭建了一個完整的系統,整個系統程序中完全無需關注服務器,

無服務器架構的特點
- 不需要管理服務器
- 無狀態
- 自動伸縮
- 沒有運營成本
- 成本由事件驅動
- 處理第一個事件需要一些啟動時間
- 因為運行時小,所以具有較高的安全性
- 無服務器的生命周期
下圖描述了一個 Function 的生命周期

無服務器應用程式架構示例:
假設有一個簡單的線上汽車拍賣應用程式,用戶可以登錄并出價,拍賣時間結束時價高者得,
傳統上,架構里會包含一個部署了應用程式和前端的單體服務器,

上述架構采用的是瘦客戶端方式,所有的業務邏輯(如認證、回話管理、車輛管理等)都部署在服務器端,
那么,在一個無狀態的微服務架構中,這個應用程式又會是什么樣子?

原來的單體應用程式被拆分成了多個服務器端組件,
- 認證 Function:這是一個用于管理用戶認證(登錄)的 Function(Function,FaaS),
- 車輛管理服務:一個處理與車輛相關操作的微服務,如列出車輛、查看車輛資訊、比較車輛,等等,這個服務可以使用任意的語言或框架來開發,它與資料庫通信,并且獨立運行,
- 車輛出價 Function:這是另外一個 Function,也與資料庫通信,錄入用戶出價記錄,
- API 網關:所有服務的入口點和反向代理,來自客戶端的請求會先到達網關,網關根據路由規則將請求重定向到特定的服務,
在將服務拆分成微服務或 FaaS 時,需要考慮到業務邏輯、負載、規模等方面的因素,
上述的例子描述了無服務器架構和基于無服務器架構設計微服務時的大致程序,
無服務器架構與 PaaS
平臺即服務(Platform as a Service)是另一個不需要開發人員管理服務器(包括硬體和軟體)的架構莫斯,正因為如此,開發人員容易把無服務器架構和 PaaS 混為一談,接下來,我們來看一看它們之間的相似點和不同點:
相似點
- 開發人員不需要管理服務器,
- 開發人員只要關注應用程式代碼本身,
不同點
- PaaS 提供了更為可控的部署方式,而無服務器的部署則更為嚴格,
- 無服務器架構可以自動伸縮,而 PaaS 的伸縮需要進行配置,
- 無服務器架構的成本是由事件驅動的,而 PaaS 是固定的,
- PaaS 應用程式在部署之后會一直運行,并馬上開始處理請求,而無服務器需要等待第一個事件,具體取決于事件的發生頻率,
用例:
無服務器的應用應該不僅限于某個領域、業務或架構,在進行應用程式架構時,你需要考慮多個因素,這些因素同樣適用于無服務器架構,
成本——無服務器架構非常節約成本,具體取決于實際的負載,
服務器管理——無服務器架構可以極大地降低用于管理服務器的運營成本,
伸縮——無服務器架構可以自動伸縮,
回應時間——FaaS 需要一些初始化時間,如果負載很小(比如一個小時只有一個事件),每個請求都會經歷冷啟動,導致整體回應變慢,
更快的發布周期——因為這些 Function 都是很小的單位,發布周期就變得很短,
以下是一些常見的用例
Web 應用程式;
批處理和調度;
移動和 IOT 后端;
聊天機器人,
使用無服務器架構和 FaaS 有以下這些好處:
減少服務器管理成本;
減少運營成本;
自動伸縮;
比不間斷運行的服務更安全;
成本由請求或事件數來決定;
更簡單的打包和部署流程;
縮短發布周期;
開箱即用的監控,
與其他任何一種技術架構一樣,無服務器架構也存在同樣的限制,
啟動延遲;
廠商鎖定,對服務器缺乏控制;
性能優化局限于代碼內部;
執行時間限制(AWS Lambda 的執行時間限制為 15 分鐘);
成本不可預測;
開發環境和生產環境不一樣;
測驗和除錯更為復雜,
總結
無服務器架構是一種架構風格,通過 FaaS 將業務邏輯從長期運行的組件中移到臨時的 Function 里,它可以解決很多架構和運營問題,簡化開發者和運維人員的作業,
與其他解決方案一樣,無服務器架構并不是銀彈,它無法直接取代現有的組件,在決定是否要采用無服務器架構之前需要先分析一下自己的業務和技術需求,通盤考慮各種優點和缺點,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/244821.html
標籤:其他
