摘要:嶄露頭角在發布之后,眾多及廠商爭相入市,,阿里云函數計算,短短數年時間產品已遍地開花。目前知名的平臺有,,,等。統一的容器調度模型從當前及容器生態的發展來看,容器基本都是運行在云主機之上比如的,阿里云的。
說起當前最火的技術,除了最新的區塊鏈,AI,還有一個不得不提的概念是Serverless。Serverless作為一種新型的互聯網架構直接或間接推動了云計算的發展,從AWS Lambda到阿里云函數計算,Serverless一路高歌,同時基于Serverless的輕量計算開始登錄云計算的舞臺,本文將從兩個部分展開:
介紹 Serverless的概念,歷史及其現狀與未來的思考。
Serverless Container的概念及現狀。
前文講到serverless是一種新型的互聯網架構,目前尚沒有官方權威的定義,可以認為:
Serverless無服務器架構是基于互聯網的系統,其中應用開發不使用常規的服務進程。相反,它們僅依賴于第三方服務(例如AWS Lambda服務),客戶端邏輯和服務托管遠程過程調用的組合。
AWS Lambda 作為Serverless最早的框架產品由亞馬遜在2014年推出,但最早Serverless概念的并不是由亞馬遜提出,下面我們簡單來聊聊Serverless的歷史。
Serverless 歷史
發軔之始
2012年云基礎設施服務提供商Iron.io的副總裁Ken 提出軟件的未來 ,首次提出來Serverless概念, 以下是原文的一段摘錄:
Even with the rise of cloud computing, the world still revolves around servers. That won’t last, though. Cloud apps are moving into a serverless world, and that will bring big implications for the creation and distribution of software and applications.
初出茅廬
AWS Lambda產品的發布可以認為是Serverless的里程碑,再此之前Serverless幾乎是停留在概念期,直到14年Lambda發布,讓“Serverless”這一范式提高到一個全新的層面,為云中運行的應用程序提供了一種全新的系統體系架構,Serverless開始正式走向云計算的舞臺。
嶄露頭角
在AWS發布Lambda之后,眾多IaaS及Pass廠商爭相入市,Google Cloud Functions, Azure Funcions, IBM OpenWhisk,阿里云函數計算,短短數年時間Serverless產品已遍地開花。
未來已來
隨著容器技術,IoT,5G,區塊鏈等技術的快速發展, 技術上對去中心化,輕量虛擬化,細粒度計算等技術需求愈發強烈,而Serverless必將借勢迅速發展,未來Serverless將在云計算的舞臺上大放異彩!
首先,拋一個總結性觀點:云計算的發展從IaaS,PaaS,SaaS,到最新的BaaS,FasS,在這個趨勢中serverless(去服務器化)越來越明顯,而Serveless的完善帶給云計算將會是一次完美進化!
總所周知,云計算經歷了從IDC -> IaaS -> PaaS -> Serverless/FaaS 的發展歷程,下面對這些概念做一些基本介紹。
IaaS
PaaS(Platform as a Service) 平臺即服務,服務商提供基礎設施底層服務,提供操作系統(Windows,Linux)、數據庫服務器、Web服務器、負載均衡器和其他中間件,相對于IaaS客戶僅僅需要自己控制上層的應用程序部署與應用托管的環境。
目前知名的PaaS平臺有 Amazon Elastic Beanstalk,Azure,Google App Engine,VMware Cloud Foundry等。
SaaS
SaaS(Software as a Service) 軟件即服務, 服務商提供基于軟件的解決方案,如OA、CRM、MIS、ERP、HRM、CM、Office 365、iCloud等,客戶不需考慮任何形式的專業技術知識,只需要通過服務商平臺獲取軟件使用即可。
BaaS
BaaS(Backend as a Service) 后端即服務,服務商為客戶(開發者)提供整合云后端的服務,如提供文件存儲、數據存儲、推送服務、身份驗證服務等功能,以幫助開發者快速開發應用。
FaaS
FaaS(Function as a Service) 函數即服務,服務商提供一個平臺,允許客戶開發、運行和管理應用程序功能,而無需構建和維護基礎架構。 按照此模型構建應用程序是實現“無服務器”體系結構的一種方式,通常在構建微服務應用程序時使用。
IaaS,PaaS,FaaS 對比
舉個例子,比如小明想開一個水果店
IDC:如果蓋房子,裝修,然后上架水果這些工作都是小明自己來做。
IaaS:如果小明房子是租的,裝修,上架水果是自己做。
PaaS: 如果小明房子是租的,可是房子已經裝修好了,但是上架水果要自己來做。
FaaS:如果有一個商家提供裝修好的水果店,小明只負責把水果送過來,其余上架工作都由商家來做。
總結
從IDC → IaaS,用戶不用關注真實的物理資源。
從IaaS → PaaS,用戶不再關注操作系統,數據庫,中間件等基礎軟件。
從PaaS → BaaS/FaaS, 用戶可以很少甚至不用關注backend,app可以簡化為一個單頁面程序。
可以說,Serverless是云計算發展到一定階段的必然產物,云計算作為普惠科技,發展到最后一定是綠色科技(最大程度利用資源,減少空閑資源浪費),大眾科技(成本低,包括學習成本及使用成本)的產品,而Serverless將很好的詮釋這些!
Serverless/FaaS 模型Serverless是基于事件驅動的編程范型,其底層的計算平臺一般為輕量計算比如容器計算Docker。
針對該模型本文不再贅述, 下面以AWS Lambda及阿里云函數計算為例,簡單介紹該模型。
AWS Lambda
大致流程如下:
UI驅動,通過模擬鼠標點擊觸發事件
當觸發事件增多時lambda實例自動擴容
當觸發事件減少時lambda實例自動縮容
流程大致如下:
UI/Event/Message Driven觸發事件
用戶Function會package為一個docker鏡像
事件調度系統配合Docker集群運行Docker容器來執行Function
Serverless價值與影響低成本
運營成本,Serverless將用戶的服務器,數據庫,中間件委托于BaaS/FaaS,用戶將不再參與基礎設施及軟件的維護,尤其在大規模的集群運營上成本大幅度降低。
開發成本,對比IaaS或者PaaS平臺的服務器或者操作系統,Serverless的架構中,用戶操作的是服務化的組件比如存儲服務,授權服務等,可以縮短開發周期,降低開發難度。
真正的按需計費
Serverless/FaaS區別于IaaS/PaaS預先分配計算資源的計費方式,其計費方式通常是按請求次數及運行時間,一方面可以最大程度利用資源,另一方面真正的按需計費可以降低用戶的資源成本。
高擴展
Serverless架構一個顯而易見的優點即“橫向擴展是完全自動的、有彈性的、且由服務提供者所管理”。
“綠色”計算
據統計,商業和企業數據中心的典型服務器僅提供5%~15%的平均最大處理能力的輸出,本質上這是對社會資源的一種浪費。而在Serverless架構下,提供商將提供更細力度的計算能力最大限度滿足實時需求,資源利用率將大幅度提升,可以認為相對IaaS與PaaS Serverless/FaaS是一種 “綠色” 計算。
NoOps
運維的發展經歷了人肉運維,自動化運維,DevOps,AiOps等,而Serverless帶來一種新的運維模式,這種模式下用戶需要管理的只有Code可以認為NoOps。
事件驅動以及響應式架構
IoT物聯網場景中低頻請求
請求對及時響應需求不夠
固定時間觸發計算資源利用低的業務
流量突發場景
比如短時間大流量視頻轉碼
短周期內的流量峰值
跨云與混合云場
邊緣計算
其它 ...
Serverless未來的一些思考細粒度的計算資源
目前主流的Serverless/FaaS技術底層的計算環境通常是容器比如Docker,容器技術是一種比硬件虛擬化更輕量的實現,用戶可以在虛擬機上運行大量的容器,可以更大程度的利用計算資源。
而Serverless的需求可能是更細粒度的計算資源,比如最近華為發布的CCI產品容器的規格已經支持千分之一核,相信千分之一核只是開始,未來Serverless在細粒度資源使用上將發揮無限可能。
統一的容器調度模型
從當前Serverless/FaaS及容器生態的發展來看,容器基本都是運行在云主機之上比如aws的ec2,阿里云的ecs。
由于云廠商實現方式及不同產品的差異性,容器的調度框架選擇不盡相同,比如有的廠商其Serverless產品是基于kubernetes管理云主機集群進行容器編排及調度比如華為的CCI,而有的產品比如阿里云的函數計算產品是基于自研的Agent進行容器調度。那么為什么沒有一種產品可以為不同的Serverless服務提供通用的容器調度能力呢?
生態圈多樣化
Serverless的發展必然會帶動其周邊生態的完善,比如BaaS及FaaS產品的形態將多樣化輸出,舉個例子:
Serverless架構下用戶的Code是沒有服務端的,而這些服務將由云廠商以BaaS的服務形態提供,隨著Serverless的發展,必然會催生多樣化的BaaS服務。
產品抽象輸出
Serverless是云計算普惠科技的重磅技術!Serverless出現將開發者從復雜的硬件及軟件環境中解脫出來,而未來可以想象Serverless的產品將會以更加簡單的方式呈現給用戶,舉個例子:大家熟知的樂高積木,不同的小零件按照不同的方式組裝可以得到作品最終是多樣化的。
而Serverless天生具備這種優勢,可以想象如果Function以服務化的方式抽象,開發者開發一個Cloud App需要做的事情就是在無數的Function里面挑選自己需要的“積木“,然后通過一種可視化的工具進行"積木"組合!
二、Serverless Container前文講了一些Serverless生態的概念及現狀,從當前主流Serverless/FaaS 框架如AWS Lambda,IBM OpenWhisk,Iron.io,阿里云函數計算分析來看,其底層的計算資源通常是Docker容器。可以認為Serverless構建于容器(Docker)之上!
什么是Serverless Container
Serverless Container(無服務器容器),用戶不再需要關注容器集群和服務器,只需關注Docker容器或者Docker Image即可。
通過分析業界主流的的Serverless Container產品如 AWS Fargate, Azure ACI, 華為CCI 可以看出
Serverless Container 提供了更為簡單的體驗,用戶不再需要理解容器編排技術如k8s,swarm
Serverless Container 提供了更細粒度的的能力,比如微核粒度的CPU資源和MB粒度的內存資源
Serverless Container 提供了將容器作為基礎計算單元的思路
Serverless Container VS kubernets
kuberntes(k8s) 是谷歌開源的容器管理系統,類似的產品還有Docker Swarm, Apache Mesos以及集團內的產品Sigma。無疑這些優秀的集群管理系統尤其是k8s已經在生成得到了充分驗證,從使用角度來說k8s需要用戶具備容器及容器編排,集群管理等多方面的專業知識,而Serverless Container對用戶屏蔽了容器集群管理,用戶使用起來將更簡單!
結論:Serverless Container在容器產品形態上是高于kubernetes的,事實上大部分的Serverless Container產品都基于或者兼容kubernetes。
Serverless Container VS Serverless/FaaS
根據上文的分析Serverless Container對用戶提供的是一種容器計算資源,用戶不需要關心容器集群,只需要定制vCpu,mem及Docker Image;而Serverless/FaaS 提供的是一種服務化的計算能力,用戶同樣不用關心計算集群,只需指定vCpu,mem及Code。
結論:FaaS及Serverless Container的底層計算資源都是Docker容器!
閱讀原文
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27245.html
摘要:嶄露頭角在發布之后,眾多及廠商爭相入市,,阿里云函數計算,短短數年時間產品已遍地開花。目前知名的平臺有,,,等。統一的容器調度模型從當前及容器生態的發展來看,容器基本都是運行在云主機之上比如的,阿里云的。 說起當前最火的技術,除了最新的區塊鏈,AI,還有一個不得不提的概念是Serverless。Serverless作為一種新型的互聯網架構直接或間接推動了云計算的發展,從AWS Lamb...
摘要:云函數,就是模式的具體實現。比如一個廣告微服務,至少可以拆分出實時競價展示計數報表查詢等云函數。也就是說,云函數和微服務中的是同一粒度的。但不同于,每個云函數都是獨立部署,按需執行。可以用適合用,需要衡量改造的代價云函數帶來的收益。 可訪問誰明浪子心-ShiYis Blog,獲得更好的閱讀體驗。 什么是云函數 云函數提供了一種直接在云上運行,無狀態的、短暫的、由事件觸發的代碼的能力。 ...
摘要:前端框架總是帶入后端思維,而則是把前端思維帶入了后端運維。前端同學對應該尤為激動。而帶來了進一步優化的空間。當服務器面臨攻擊重啟磁盤故障時,打開復雜的工作臺或登陸后一通操作才能恢復。 1. 引言 Serverless 是一種 無服務器架構,讓用戶無需關心程序運行環境、資源及數量,只要將精力 Focus 到業務邏輯上的技術。 現在公司已經實現 DevOps 化,正在向 Serverles...
摘要:但是,有一件事是肯定的年對全棧開發者的需求量很大。有一些方法可以解決這個問題,例如模式,或者你可以這么想,其實谷歌機器人在抓取單頁應用程序時沒有那么糟糕。谷歌正在這方面努力推進,但不要指望在年會看到任何突破。 對于什么是全棧開發者并沒有一個明確的定義。但是,有一件事是肯定的:2019 年對全棧開發者的需求量很大。在本文中,我將向你概述一些趨勢,你可以嘗試根據這些趨勢來確定你可能要投入的...
摘要:但是,有一件事是肯定的年對全棧開發者的需求量很大。有一些方法可以解決這個問題,例如模式,或者你可以這么想,其實谷歌機器人在抓取單頁應用程序時沒有那么糟糕。谷歌正在這方面努力推進,但不要指望在年會看到任何突破。 對于什么是全棧開發者并沒有一個明確的定義。但是,有一件事是肯定的:2019 年對全棧開發者的需求量很大。在本文中,我將向你概述一些趨勢,你可以嘗試根據這些趨勢來確定你可能要投入的...
閱讀 3648·2021-10-09 09:58
閱讀 1188·2021-09-22 15:20
閱讀 2495·2019-08-30 15:54
閱讀 3509·2019-08-30 14:08
閱讀 886·2019-08-30 13:06
閱讀 1817·2019-08-26 12:16
閱讀 2678·2019-08-26 12:11
閱讀 2507·2019-08-26 10:38