您好,登錄后才能下訂單哦!
本篇文章為大家展示了Serverless 技術(shù)選型該如何理解,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
下面通過本文給大家介紹一下,阿里云都有哪些可供大家選擇的 Serverless 產(chǎn)品。
眾所周知,最早提出 Serverless 的是 AWS,其在 Serverless 領(lǐng)域的旗艦產(chǎn)品是 function compute。同樣阿里云也有函數(shù)計算的產(chǎn)品,幫助用戶構(gòu)建 Serverless 函數(shù)。但 Serverless 不僅僅是函數(shù),如下圖所示,其實用戶會期望在應用、容器等層面也能夠享受到 Serverless 的好處,包括按量付費、極致彈性等,這樣也更符合用戶原有的使用習慣。
在上圖中,大家能夠看到,阿里云針對函數(shù)、應用和容器都推出了對應的 Serverless 產(chǎn)品,用戶可以針對自己的使用場景選擇不同的產(chǎn)品。
上圖展示了函數(shù)計算的使用方式。從用戶角度,他需要做的只是編碼,然后把代碼上傳到函數(shù)計算中。這個時候還不會產(chǎn)生費用,只有到被調(diào)用的時候才有費用。調(diào)用的方式可以是產(chǎn)品提供的 API/SDK,也可以通過一些事件源,比如阿里云的 OSS 的事件。比如用戶往 OSS 里的某一個 bucket 上傳了一個文件,希望這個文件被自動處理;比如上傳一個 zip 包,希望能夠自動解壓到另外一個 bucket,這都是很典型的函數(shù)場景。
另外,函數(shù)計算能夠提供非常好的彈性能力,最終的費用是根據(jù)時長和內(nèi)存數(shù)進行計費的,如果調(diào)用量小的話,只會有很少的費用。并且它在語言方面也非常豐富,常用的 nodejs、php、python、java 都直接支持。同時提供自定義的運行環(huán)境,可以支持任意的可執(zhí)行的語言。
從使用場景來說,主要有三類:
Web 應用??梢允歉鞣N語言寫的,這種可以使用 Serverless 框架新編寫的程序,也可以是已有的應用。比如小程序后端、或者發(fā)布到 API 市場的 API 后端應用等。
對計算能力有很強的彈性訴求的應用。比如 AI 推理、音視頻處理、文檔轉(zhuǎn)換等。
事件驅(qū)動型的應用。比如通過其他阿里云產(chǎn)品驅(qū)動的場景、Web Hook、定時任務等。函數(shù)計算已經(jīng)與很多產(chǎn)品進行了打通,比如對象存儲、表格存儲、定時器、CDN、日志服務、云監(jiān)控等,可以非??焖俚亟M裝出一些業(yè)務邏輯。
函數(shù)計算對客戶的一個最大的價值,就是能夠讓用戶只關(guān)注自己的業(yè)務邏輯開發(fā),完全不需要管理運維,諸如計算資源、網(wǎng)絡設置等都不需要關(guān)心。在隔離性上提供 vm 級別的隔離,保證用戶在運行時的數(shù)據(jù)安全、運行時安全等;在可用性方面默認提供 3az 的高可用架構(gòu),保證客戶默認就是高可用的最佳實踐架構(gòu);在彈性方面,可以做到毫秒級的彈性效率,滿足客戶突發(fā)的流量沖擊;在計費方面也非常靈活,真正按照用戶的請求情況進行收費,也支持對 long run 的應用更友好的預付費模式。
SAE 是業(yè)內(nèi)首款面向應用的 Serverless Paas 平臺。這個產(chǎn)品以面向應用的視角,幫助用戶在不做任何修改的前提下把存量應用上到云端。在資源層,用戶不再需要自己管理和運維機器及集群,只需要關(guān)注自己應用所需要使用的規(guī)格以及實例數(shù),不再需要關(guān)心底層是虛機還是容器。
SAE 從資源層面提供計算資源、彈性、隔離性等能力,讓用戶只需要關(guān)注自己的應用。在應用層,SAE 提供了監(jiān)控、日志、微服務治理等能力,幫助用戶解決應用可觀測性和治理需求。同時提供網(wǎng)絡配置、流量控制能力,提供了和 CICD 良好的集成,用戶可以使用已有 CICD 部署到 SAE,比如 jenkins、云效等,可以說覆蓋了應用上云的完整場景。
SAE 有幾個典型的使用場景,一個是存量業(yè)務上云,特別是微服務、java 應用,同時也支持其他語言的單體應用,都能夠通過 SAE 這個平臺運行在阿里云上,并且不需要做任何代碼的修改。在行業(yè)方面,SAE 特別適合有比較大的流量波動的在線業(yè)務,比如電商大促、在線教育等行業(yè)的場景。另外 SAE 作為應用平臺也可以被上層的行業(yè) Saas 所集成,幫助用戶更快地構(gòu)建行業(yè) Saas。
通過上面的場景介紹,我們可以看到 SAE 除了 Serverless 體驗本身所帶來的極致彈性、免運維等特性之外,重點在應用層給用戶提供全棧的能力,包括對微服務的增強支持,以及整合了和應用息息相關(guān)的能力,包括配置、監(jiān)控、日志、流量控制等。再加上用戶零代碼的改動,是企業(yè)在線業(yè)務平滑上云非常好的選擇。
另一個阿里云提供的 Serverless 產(chǎn)品是 Serverless K8s。但是 K8s 怎么還能 Serverless 呢?這就需要先了解一下技術(shù)架構(gòu)的演進歷程。
最早的時候大家都把 Docker 鏡像部署在虛機里,用戶需要購買 ECS,然后部署鏡像,最后是網(wǎng)絡的一些配置,比如 SLB、EIP 等。在這個過程中,用戶需要自己完成部署動作,擴容需要自己重復上面的動作,或者自己構(gòu)建一套自動化腳本,相對來說成本和穩(wěn)定性都比較低。
之后有了 K8s 來幫大家解決容器編排的問題。這種標準化的方式確實大大提高了大家的生產(chǎn)力。用戶通過使用 deployment、service 等標準的 K8s 的方式進行編排,并進行部署。但 K8s 的運維和管理還是相對比較復雜的,技能要求比較高,用戶需要運維 ECS 以及通過 ECS 構(gòu)建出來的 K8s。另外一個痛點時 K8s 集群里的 ECS 是需要預先購買的,如果客戶的負載有比較大的波動,就會出現(xiàn)比較多的資源浪費。雖然技術(shù)上也有解決方案,比如 worker node 的彈性,但這對于初級用戶來說,還是有比較高的復雜度。
那有沒有一種方案可以讓用戶既能享受到 K8s 提供的容器編排能力,又能夠不需要關(guān)心 ECS 和 K8s 的運維、管理和彈性問題呢?這就是 Serverless K8s 的方案。對應到阿里云的產(chǎn)品就是 ASK。在 ASK 的方案里,用戶創(chuàng)建一個 ASK 集群,但不需要指定任何 ECS 節(jié)點,然后通過標準的 K8s 容器編排、deployment 等部署鏡像。ASK 會根據(jù)用戶的負載需求,自動在底層資源池構(gòu)建需要的 POD 并進行彈性伸縮,用戶不再需要關(guān)心容量規(guī)劃、ECS 機器運維、資源限制等 LaaS 層的問題,非常便利。
那 ASK 主要用在哪些場景里呢?首先可以用來跑在線業(yè)務,部署模式靈活,可以是 deployment、helm chart 等所有的 K8s 原生模式,特別是能夠很好地應對突發(fā)流量,極致彈性,可以在 30 秒完成 500 個容器實例的彈性。這樣的彈性效率,可以很好地支撐大數(shù)據(jù)計算類的任務,比如 Spark、Presto 等,也可以在需要的時候即時獲取資源,支撐 10000 以上 Pod 的規(guī)格,有效降低客戶成本。
另外一個非常適合的場景是用來構(gòu)建隨需啟動的構(gòu)建任務,比如在 ASK 中運行 jenkins、Gitlab-Runner 等。在有構(gòu)建任務的時候,即時啟動。沒有任務的時候 0 消費,成本做到最低。這里只是列出了一些例子的場景,實際上基于 ASK 的這個特性,用戶可以運行很多 K8s 原生的需要極致彈性的工作負載。
ASK 完全容器部署,通過容器進行隔離。在使用的過程中,用戶無需運維 ECS 或者 K8s 集群,也不需要考慮集群升級、容量規(guī)劃、OS 及系統(tǒng)軟件問題等事情,理論上可以提供無限的彈性容量。因為是完全按照使用量進行收費,所以就不需要為限制資源付費。
上述內(nèi)容就是Serverless 技術(shù)選型該如何理解,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。