Serverless - 簡介



什麼是 Serverless?

嗯,名字本身就給了你不少提示。無需擔心伺服器維護的計算 - 這就是 Serverless 計算(或簡稱 Serverless)的核心。這個概念非常具有革命性和顛覆性。它已被廣泛採用。許多新的應用程式從設計 Serverless 後端開始,而擁有專用伺服器的傳統應用程式也正在緩慢遷移到 Serverless 架構。那麼是什麼導致了 Serverless 的廣泛採用呢?就像所有事物一樣,經濟因素使得 Serverless 變得非常有利。

你看,使用 Serverless,你只需為使用的部分付費。假設你每天需要對資料庫進行一些例行維護。這個過程每天可能需要大約 10 分鐘。

現在,在沒有 Serverless 計算的情況下,你的維護 cron 作業可能駐留在伺服器上。除非你在剩餘時間裡還有其他事情要使用你的伺服器,否則你最終可能需要為 24 小時付費,而這項任務只需要 10 分鐘。真是浪費錢,對吧?如果有人告訴你有一種新的服務,它只會為你執行維護 cron 作業的這 10 分鐘收費呢?你難道不想簡單地切換到這項新服務嗎?這正是 Serverless 採用如此迅速和廣泛的原因。它降低了許多組織的後端賬單,並減少了他們的伺服器維護負擔。

雲服務提供商(AWS、Azure 等)承擔了確保 Serverless 應用程式在需要時恰好可用,並在所需的數量下可用的責任。因此,在高負載期間,你可能需要呼叫多個 Serverless 應用程式,而在正常負載期間,你可能只需要呼叫一個應用程式。當然,你只會為高負載持續時間內的額外呼叫付費。

什麼是 Serverless?再次強調一下。

上面解釋的概念似乎很棒,但你如何實現它呢?你需要一個框架來實現它。它被稱為,嗯,serverless

Serverless 框架幫助我們開發和部署旨在以 Serverless 方式執行的函式/應用程式。該框架更進一步,負責部署 Serverless 函式執行所需的整個堆疊。什麼是堆疊?嗯,堆疊包含你部署、儲存和監控 Serverless 應用程式所需的所有資源。

它包括實際的函式/應用程式、儲存容器、監控解決方案等等。例如,在 AWS 的上下文中,你的堆疊將包含你的實際 Lambda 函式、用於函式檔案的 S3 儲存桶、與你的函式關聯的 Cloudwatch 資源等等。Serverless 框架為我們建立了整個堆疊。這使我們能夠完全專注於我們的函式。Serverless 消除了維護伺服器的負擔,而 Serverless(框架)消除了建立和部署執行我們的函式所需的堆疊的負擔。

Serverless 框架還負責為我們的函式/應用程式分配必要的許可權。某些應用程式(我們將在本教程中看到示例)甚至需要將資料庫連結到它們。Serverless 框架再次負責建立和連結資料庫。Serverless 如何知道要將哪些內容包含在堆疊中以及要提供哪些許可權?所有這些都在 serverless.yml 檔案中提到,這將是我們本教程的主要關注點。在接下來的章節中將對此進行更多介紹。

AWS 中的 Serverless

AWS 的許多服務都屬於“Serverless 計算”的範疇。你可以在這裡找到整個組織列表 here。有計算服務、整合服務,甚至資料儲存服務(是的,AWS 甚至有 Serverless 資料庫)。在本教程中,我們將重點介紹 AWS Lambda 函式。那麼什麼是 AWS Lambda?AWS Lambda 網站將其定義如下:

AWS Lambda 是一種 Serverless 計算服務,允許你執行程式碼而無需預置或管理伺服器、建立工作負載感知叢集擴充套件邏輯、維護事件整合或管理執行時。

用通俗易懂的話來說,AWS Lambda 是你訪問 AWS 上 Serverless 計算的視窗。正是 AWS Lambda 使 Serverless 概念如此受歡迎。你只需要定義你的函式以及觸發你的函式的觸發器,該函式將在你希望它被呼叫的時間點被呼叫,並且你只需為函式執行所需的時間付費。更重要的是,你可以將 AWS Lambda 與 AWS 提供的幾乎所有其他服務連結起來 - EC2、S3、dynamoDB 等等。

因此,如果你已經是 AWS 生態系統的一部分,那麼 Lambda 整合非常無縫。如果你像我第一次瞭解 AWS Lambda 時一樣,是 AWS 生態系統的新手,它將作為通往 AWS 宇宙的一個良好入口。

在本教程中,我們將學習如何使用 Serverless 框架部署 AWS Lambda 函式。你興奮嗎?然後繼續下一章開始吧。

廣告

© . All rights reserved.