當咱們在聊 Serverless 時你應該知道這些

S001

做者 | 楊澤強(竹澗)阿里雲技術專家html

提及當前最火的技術,除了最新的區塊鏈、AI,還有一個不得不提的概念是 Serverless。Serverless 做爲一種新型的互聯網架構,直接或間接推進了雲計算的發展,從 AWS Lambda 到阿里雲函數計算,Serverless 一路高歌,同時基於 Serverless 的輕量計算開始登陸雲計算的舞臺,本文將從兩個部分展開:docker

  1. 介紹 Serverless 的概念,歷史及其現狀與將來的思考;
  2. Serverless Container 的概念及現狀。

1、聊聊 Serverless

前文講到 Serverless 是一種新型的互聯網架構,目前尚沒有官方權威的定義,能夠認爲:數據庫

Serverless 無服務器架構是基於互聯網的系統,其中應用開發不使用常規的服務進程。相反,它們僅依賴於第三方服務(例如 AWS Lambda 服務),客戶端邏輯和服務託管遠程過程調用的組合。編程

AWS Lambda 做爲 Serverless 最先的框架產品,在 2014 年由亞馬遜推出,但最先的 Serverless 概念並非由亞馬遜提出,下面咱們來簡單聊聊 Serverless 的歷史。後端

Serverless 歷史

S002

發軔之始

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 開始正式走向雲計算的舞臺。app

嶄露頭角

在 AWS 發佈 Lambda 以後,衆多 IaaS 及 Pass 廠商爭相入市,Google Cloud FunctionsAzure FuncionsIBM OpenWhisk阿里雲函數計算短短數年時間 Serverless 產品已遍地開花。負載均衡

將來已來

隨着容器技術、IoT、5G、區塊鏈等技術的快速發展, 技術上對去中心化,輕量虛擬化,細粒度計算等技術需求愈發強烈,而 Serverless 必將借勢迅速發展,將來 Serverless 將在雲計算的舞臺上大放異彩!框架

雲計算髮展看 Serverless

首先,拋一個總結性觀點:雲計算的發展從IaaS、PaaS、SaaS,到最新的 BaaS、FasS,在這個趨勢中 serverless (去服務器化)愈來愈明顯,而 Serveless 的完善帶給雲計算將會是一次完美進化!
S003

衆所周知,雲計算經歷了從 IDC -> IaaS -> PaaS -> Serverless/FaaS 的發展歷程,下面對這些概念作一些基本介紹。

IaaS

S004

IaaS(Infrastructure as a Service) 基礎設施即服務,服務商提供底層/物理層基礎設施資源(服務器,數據中心,環境控制,電源,服務器機房),用戶須要經過 IaaS 提供的服務平臺購買虛擬資源,選擇操做系統、安裝軟件、部署程序、監控應用。

目前知名的 IaaS 平臺有 AWS、Azure、Google Cloud Plantform、阿里雲以及開源的 OpenStack 等。

PaaS

S005

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 36五、iCloud 等,客戶不需考慮任何形式的專業技術知識,只須要經過服務商平臺獲取軟件使用便可。

S006

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

S007

大體流程以下:

  1. UI 驅動,經過模擬鼠標點擊觸發事件;
  2. 當觸發事件增多時,lambda 實例自動擴容;
  3. 當觸發事件減小時,lambda 實例自動縮容。

阿里雲函數計算

S008

流程大體以下:

  1. UI/Event/Message Driven 觸發事件;
  2. 用戶 Function 會 package 爲一個 docker 鏡像;
  3. 事件調度系統配合 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。

Serverless 應用場景

  • 事件驅動以及響應式架構

    • 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 裏面挑選本身須要的「積木」,而後經過一種可視化的工具進行"積木"組合!

2、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。這些優秀的集羣管理系統,尤爲是 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 容器!

 

閱讀原文

本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索