Serverless 的執行原理與元件架構

2022-06-10 19:33:09 字數 1834 閱讀 6166

本文重點**下開發者使用 serverless 時經常遇到的一些問題,以及如何解決

過去一年,我們和大量 serverless 使用者進行了線上和線下的交流,了解大家的業務場景、對 serverless 的看法和使用體驗。

大部分使用者認為 serverless 會是雲計算下一階段的必然趨勢,但不是現在。為什麼呢?因為構成 serverless 架構的雲函式儘管有引以為傲的自動擴縮能力,但是糟糕的開發體驗、讓人畏懼的冷啟動、原有業務的改造難題等等,均降低了使用者的信心。

因此,儘管不少使用者認可 serverless 的價值,但依然認為其很難承載核心業務。

如下圖所示,faas 不僅給使用者提供了標準的 runtime,同時在應用層也幫使用者管理了請求的排程。開發者只需要聚焦在核心業務邏輯開發,按照函式的粒度去編寫**。而與底層硬體相關的資源維護,則交給更加專業的雲廠商來搞定。

因此,對於使用者來講,可以把更多的精力和時間放在業務上。而 iaas 和 pass,則均需要使用者去運維雲主機或者容器集群、搭建業務所需的執行環境。

在這裡我們也將解答雲函式的冷啟、降低核心業務遷移複雜度等問題。

如下圖所示,開發者在實際使用時,可以借助 web ide 或者本地 ide 完成**開發,然後通過外掛程式、工具等方式把**及其相關依賴,一起打包部署到雲函式平台,使用者可以自行選擇部署為函式形態或者服務形態。

在**裡,使用者需要自己實現業務邏輯,比如訪問資料庫、物件儲存、訊息佇列、第三方服務介面等。計算邏輯和後端服務共同構成了所謂的 serverless 應用架構。而終端使用者根據平台提供的請求方式,去觸發部署在雲函式平台上的業務**,比如傳送 http 請求,平台會根據使用者的請求量去拉起相應的計算資源執行使用者**。

如下圖所示,使用者雖然只需要關注綠色部分和業務相關的**實現,但是平台也需要提供強大的開發者工具來保障開發和使用體驗。如雲函式推出的 serverless 本地開發工具、vs code 外掛程式,與 coding 聯合推出的 web ide、devops 平台等,均能很大程度上提公升開發、部署效率,實現本次開發、本地除錯、聯動雲端除錯、本地部署、版本發布等能力。

同時,雲函式也完善了配套的監控和告警機制,提供如呼叫次數、記憶體使用、併發使用、超時、**錯誤等多維度的監控和告警能力。這些基礎設施、資源管理、安全、容災等能力,是雲函式平台必備的基礎能力,也是開發者關心的核心能力。

serverless 不僅僅是計算,還需要不斷完善周邊生態。

隨著使用者量的增加,serverless 必然會面臨更多的挑戰 —— 怎麼幫助使用者組織管理**,怎麼解決帶狀態的業務訴求,怎麼實現資料庫連線數管理,怎麼實現應用級部署等等。我們也在不斷探索和優化使用者的使用體驗,計畫提供諸如 serverless db、效能監控、日誌分析、serverless 框架、函式編排、高效能呼叫等功能。

serverless is more!

傳送門:

mysql執行原理 mysql 執行原理

闡述mysql系統的各個模組是如何相親相愛的完成乙個我們認為的很簡單的查詢工作的。我們對啟動mysql,客戶端建立連線,請求query,得到返回結果,最終退出。這樣一整個過程來進行分析。第一步 當我們執行啟動mysql系統的命令之後,mysql的初始化模組就從系統配置檔案中讀取系統引數和命令列引數,...

Serverless架構的前世今生

雲計算的不斷發展,湧現出很多改變傳統it架構和運維方式的新技術,而以虛擬機器 容器 微服務為代表的技術更是在各個層面不斷提公升雲服務的技術能力,它們將應用和環境中很多通用能力變成了一種服務。但無論這些技術應用在 幫助企業 降本增效 是技術變革永恆的主題。serverless架構的出現,帶來了跨越式的...

PHP的執行原理

1.我們從未手動開啟過php的相關程序,它是隨著apache的啟動而執行的 2.php通過mod php5.so模組和apache相連 具體說來是sapi,即伺服器應用程式程式設計介面 3.php總共有三個模組 核心 zend引擎 以及擴充套件層 4.php核心用來處理請求 檔案流 錯誤處理等相關操...