《從零入門 Serverless | 一文詳解 Serverless 技術選型》

6.12頭圖.png

做者 | 李國強  阿里雲資深產品專家php

本文整理自《Serverless 技術公開課》。關注「Serverless」公衆號,回覆「入門」,便可獲取 Serverless 系列文章 PPT。java

今天來說,在 Serverless 這個大領域中,不僅有函數計算這一種產品形態和應用類型,而是面向不一樣的用戶羣體和使用習慣,都有其各自適用的 Serverless 產品。例如面向函數的函數計算、面向應用的 Serverless 應用引擎、面向容器的 Serverless Kubernetes,用戶能夠根據本身的使用習慣、使用場景或者應用類型,去選擇使用什麼樣的 Serverless 產品。下面經過本文給你們介紹一下,阿里雲都有哪些可供你們選擇的 Serverless 產品。node

Serverless 產品及分層

衆所周知,最先提出 Serverless 的是 AWS,其在 Serverless 領域的旗艦產品是 function compute。一樣阿里雲也有函數計算的產品,幫助用戶構建 Serverless 函數。但 Serverless 不只僅是函數,以下圖所示,其實用戶會指望在應用、容器等層面也可以享受到 Serverless 的好處,包括按量付費、極致彈性等,這樣也更符合用戶原有的使用習慣。python

幻燈片2.JPG

在上圖中,你們可以看到,阿里雲針對函數、應用和容器都推出了對應的 Serverless 產品,用戶能夠針對本身的使用場景選擇不一樣的產品。小程序

函數計算 

1. 函數計算介紹

幻燈片3.JPG

上圖展現了函數計算的使用方式。從用戶角度,他須要作的只是編碼,而後把代碼上傳到函數計算中。這個時候還不會產生費用,只有到被調用的時候纔有費用。調用的方式能夠是產品提供的 API/SDK,也能夠經過一些事件源,好比阿里雲的 OSS 的事件。好比用戶往 OSS 裏的某一個 bucket 上傳了一個文件,但願這個文件被自動處理;好比上傳一個 zip 包,但願可以自動解壓到另一個 bucket,這都是很典型的函數場景。後端

另外,函數計算可以提供很是好的彈性能力,最終的費用是根據時長和內存數進行計費的,若是調用量小的話,只會有不多的費用。而且它在語言方面也很是豐富,經常使用的 nodejs、php、python、java 都直接支持。同時提供自定義的運行環境,能夠支持任意的可執行的語言。安全

2. 函數計算典型場景

幻燈片4.JPG

從使用場景來講,主要有三類:網絡

  • Web 應用:能夠是各類語言寫的,這種可使用 Serverless 框架新編寫的程序,也能夠是已有的應用。好比小程序後端、或者發佈到 API 市場的 API 後端應用等;
  • 對計算能力有很強的彈性訴求的應用:好比 AI 推理、音視頻處理、文檔轉換等;
  • 事件驅動型的應用:好比經過其餘阿里雲產品驅動的場景、Web Hook、定時任務等,函數計算已經與不少產品進行了打通,好比對象存儲、表格存儲、定時器、CDN、日誌服務、雲監控等,能夠很是快速地組裝出一些業務邏輯。

3. 函數計算核心競爭力

幻燈片5.JPG

函數計算對客戶的一個最大的價值,就是可以讓用戶只關注本身的業務邏輯開發,徹底不須要管理運維,諸如計算資源、網絡設置等都不須要關心。在隔離性上提供 vm 級別的隔離,保證用戶在運行時的數據安全、運行時安全等;在可用性方面默認提供 3az 的高可用架構,保證客戶默認就是高可用的最佳實踐架構;在彈性方面,能夠作到毫秒級的彈性效率,知足客戶突發的流量衝擊;在計費方面也很是靈活,真正按照用戶的請求狀況進行收費,也支持對 long run 的應用更友好的預付費模式。架構

Serverless 應用引擎

1. SAE 概述

幻燈片6.JPG

SAE 是業內首款面向應用的 Serverless Paas 平臺。這個產品以面向應用的視角,幫助用戶在不作任何修改的前提下把存量應用上到雲端。在資源層,用戶再也不須要本身管理和運維機器及集羣,只須要關注本身應用所須要使用的規格以及實例數,再也不須要關心底層是虛機仍是容器。框架

SAE 從資源層面提供計算資源、彈性、隔離性等能力,讓用戶只須要關注本身的應用。在應用層,SAE 提供了監控、日誌、微服務治理等能力,幫助用戶解決應用可觀測性和治理需求。同時提供網絡配置、流量控制能力,提供了和 CICD 良好的集成,用戶可使用已有 CICD 部署到 SAE,好比 jenkins、雲效等,能夠說覆蓋了應用上雲的完整場景。

2. SAE 典型場景

幻燈片7.JPG

SAE 有幾個典型的使用場景,一個是存量業務上雲,特別是微服務、java 應用,同時也支持其餘語言的單體應用,都可以經過 SAE 這個平臺運行在阿里雲上,而且不須要作任何代碼的修改。在行業方面,SAE 特別適合有比較大的流量波動的在線業務,好比電商大促、在線教育等行業的場景。另外 SAE 做爲應用平臺也能夠被上層的行業 Saas 所集成,幫助用戶更快地構建行業 Saas。

3. SAE 特性

幻燈片8.JPG

經過上面的場景介紹,咱們能夠看到 SAE 除了 Serverless 體驗自己所帶來的極致彈性、免運維等特性以外,重點在應用層給用戶提供全棧的能力,包括對微服務的加強支持,以及整合了和應用息息相關的能力,包括配置、監控、日誌、流量控制等。再加上用戶零代碼的改動,是企業在線業務平滑上雲很是好的選擇。

Serverless Kubernetes

1. ASK 概述

幻燈片9.JPG

另外一個阿里雲提供的 Serverless 產品是 Serverless K8s。可是 K8s 怎麼還能 Serverless 呢?這就須要先了解一下技術架構的演進歷程。

最先的時候你們都把 Docker 鏡像部署在虛機裏,用戶須要購買 ECS,而後部署鏡像,最後是網絡的一些配置,好比 SLB、EIP 等。在這個過程當中,用戶須要本身完成部署動做,擴容須要本身重複上面的動做,或者本身構建一套自動化腳本,相對來講成本和穩定性都比較低。

以後有了 K8s 來幫你們解決容器編排的問題。這種標準化的方式確實大大提升了你們的生產力。用戶經過使用 deployment、service 等標準的 K8s 的方式進行編排,並進行部署。但 K8s 的運維和管理仍是相對比較複雜的,技能要求比較高,用戶須要運維 ECS 以及經過 ECS 構建出來的 K8s。另一個痛點時 K8s 集羣裏的 ECS 是須要預先購買的,若是客戶的負載有比較大的波動,就會出現比較多的資源浪費。雖然技術上也有解決方案,好比 worker node 的彈性,但這對於初級用戶來講,仍是有比較高的複雜度。

那有沒有一種方案可讓用戶既能享受到 K8s 提供的容器編排能力,又可以不須要關心 ECS 和 K8s 的運維、管理和彈性問題呢?這就是 Serverless K8s 的方案。對應到阿里雲的產品就是 ASK。在 ASK 的方案裏,用戶建立一個 ASK 集羣,但不須要指定任何 ECS 節點,而後經過標準的 K8s 容器編排、deployment 等部署鏡像。ASK 會根據用戶的負載需求,自動在底層資源池構建須要的 POD 並進行彈性伸縮,用戶再也不須要關心容量規劃、ECS 機器運維、資源限制等 LaaS 層的問題,很是便利。

2. ASK 典型場景

幻燈片10.JPG

那 ASK 主要用在哪些場景裏呢?首先能夠用來跑在線業務,部署模式靈活,能夠是 deployment、helm chart 等全部的 K8s 原生模式,特別是可以很好地應對突發流量,極致彈性,能夠在 30 秒完成 500 個容器實例的彈性。這樣的彈性效率,能夠很好地支撐大數據計算類的任務,好比 Spark、Presto 等,也能夠在須要的時候即時獲取資源,支撐 10000 以上 Pod 的規格,有效下降客戶成本。

另一個很是適合的場景是用來構建隨需啓動的構建任務,好比在 ASK 中運行 jenkins、Gitlab-Runner 等。在有構建任務的時候,即時啓動。沒有任務的時候 0 消費,成本作到最低。這裏只是列出了一些例子的場景,實際上基於 ASK 的這個特性,用戶能夠運行不少 K8s 原生的須要極致彈性的工做負載。

3. ASK 特性

幻燈片11.JPG

ASK 徹底容器部署,經過容器進行隔離。在使用的過程當中,用戶無需運維 ECS 或者 K8s 集羣,也不須要考慮集羣升級、容量規劃、OS 及系統軟件問題等事情,理論上能夠提供無限的彈性容量。由於是徹底按照使用量進行收費,因此就不須要爲限制資源付費。

總結

總結一下,能夠看到阿里雲今天在 Serverless 領域有很是多樣的產品,既有面向函數的函數計算,用戶能夠只關注代碼,快速開發交付;也有面嚮應用的 Serverless 應用引擎,讓用戶更關注應用視角,而且提供了圍繞應用的一系列能力,包括監控、日誌、流量等能力的集成;對於更習慣 K8s 生態的用戶,ASK 讓用戶在不改變當前 K8s 使用習慣的前提下,也能享受到 Serverless 的優點。多樣的產品,在知足不一樣用戶訴求的同時,也使用戶體驗到了 Serverless 的免運維、極致彈性、按量付費等優點。

課程推薦

爲了更多開發者可以享受到 Serverless 帶來的紅利,這一次,咱們集結了 10+ 位阿里巴巴 Serverless 領域技術專家,打造出最適合開發者入門的 Serverless 公開課,讓你即學即用,輕鬆擁抱雲計算的新範式——Serverless。

點擊便可免費觀看課程:https://developer.aliyun.com/learning/roadmap/serverless

阿里巴巴雲原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,作最懂雲原生開發者的公衆號。」
相關文章
相關標籤/搜索