共計 2319 個字符,預計需要花費 6 分鐘才能閱讀完成。
serverless 是什么意思?serverless 是關于將開發人員的精力集中在為用戶提供價值的方面,通過 Serverless 化,可以不用管理服務器這些基礎設施,簡化了開發運維過程。簡單地說,Serverless 平臺自動化了整個過程中的建立、部署和按需啟動服務,讓開發人員專注于核心代碼和應用的開發。
什么是 Serverless?
Serverless,按中文翻譯,稱為無服務器。
這究竟是一種什么樣的形態或產品呢? 無服務器,就是真的沒有服務器嗎?
Serverless 并不是不用服務器,恰恰相反,它將服務器全權托管給了云廠商,根據業務流量大小自動彈性伸縮,開箱即用免去維護成本,按使用量計費。用戶無需關心和管理底層 IT 資源,只要聚焦業務代碼,根據實際請求處理業務。
其實,在行業內,目前對于 Serverless 有幾種解讀方法:
在某些場景可以解讀為一種軟件系統架構方法,通常稱為 Serverless 架構;
而在有些情況下,又可以代表一種產品形態,稱為 Serverless 產品。
在說起 Serverless 架構時,Serverless 代表的是利用 Serverless 形態的產品實現的應用架構,這種架構完全依托于云廠商或云平臺提供產品完成系統的組織及構建。在這種架構中,用戶無需關注支撐應用服務運行的主機,而將關注點投入在系統架構,業務開發,業務支撐運維上。
而說起 Serverless 產品時,代表的是無需理解、管理服務器,按需使用,按使用付費的產品。Serverless 產品中,其實也可以包含存儲、計算等多種類型的產品,而典型的計算產品,就是云函數這種形態。
云函數,或者稱為函數即服務 Function as a Service,它和后端即服務 Backend as a Service 一起,都可以稱為 Serverless 產品; 而通過組合使用這些產品,開發者可以構建自身的業務 Serverless 架構。
無服務器架構 Serverless 的特點:
(1)運行成本更低
目前主流的公有云計費模式都采用包月計費模式,比如你在亞馬遜公有云上申請一臺虛擬機后,不管有沒有用戶訪問你的應用,也不管你有沒有部署應用,你都要付相同的錢。而對基于 Amazon Lambda 開發的 Serverless 應用來說,你只需要根據實際使用的資源量 (FaaS 執行次數 ×FaaS 函數的運行時間 × 計算資源模板費用) 進行付費,也即用多少付多少,不用不收費。
(2)自動擴縮容
用戶無需關注 FaaS 函數的水平擴展,Serverless 平臺會自動根據調用量擴展運行代碼所需要的容器,輕松做到高并發調用。函數即應用,各 FaaS 函數可以獨立地進行擴縮容,粒度小擴容快。
(3)事件驅動
FaaS 函數是短暫且臨時的,用完就銷毀,FaaS 函數在接收請求時產生資源消耗,不使用就沒有消耗,用完資源后就會馬上釋放。
(4)No0ps
計算資源服務化,用戶通過 API 使用計算資源,以用戶算法代碼為核心,不關注基礎設施的部署,Serverless 是把 Ops 外包給第三方平臺,讓 Dev 專注于業務邏輯的實現而不用操心 Ops 相關的工作。
Serverless 的價值是什么?
Serverless 技術為什么會獲得越來越多的關注? 我們可以從幾個角度來看。
首先,從開發者使用的來說,不用更多的去考慮服務器的相關內容,無需再去考慮服務器的規格大小、存儲類型、網絡帶寬、自動擴縮容問題; 同時,也無需再對服務器進行運維了,無需不斷的打系統補丁、應用補丁、無需進行數據備份、軟件配置等工作了。
其次,Serverless 產品是完全自動化的彈性擴縮容的; 在業務高峰時,產品的計算能力、容量自動擴容,承載更多的用戶請求,而在業務下降時,所使用的資源也會同時收縮,避免資源浪費。
再次,跟隨著完全自動化的彈性所帶來的,是全新的計量計費模式; 開發者僅需根據使用量來付費,而在深夜無業務量的情況下,不會有空閑資源占用,因此也不會有費用產生。
隨著如上提到的特性,Serverless 給開發者或用戶帶來了具體的商業價值:
1、降低運維需求
Serverless 使得應用與服務器解耦,業務上線前無需預估資源,無需進行服務器購買、配置;
Serverless 也使得底層運維工作量進一步降低,業務上線后,也無需擔憂服務器運維,而是全部交給了云平臺或云廠商;
2、降低運營成本
Serverless 的應用是按需執行的。應用只在有請求需要處理或者事件觸發時才會被加載運行,在空閑狀態下 Serverless 架構的應用本身并不占用計算資源;
而在使用 Serverless 產品時,用戶只需要為處理請求的計算資源付費,而無須為應用空閑時段的資源占用付費;
3、縮短迭代周期、上線時間
Serverless 架構帶來的是進一步的業務解耦,應用功能被解構成若干個細顆粒度的無狀態函數,開發可以聚焦在單功能的快速開發和上線上;
同時拆解后的云函數,也都可以進行獨立的迭代升級,更快速的實現業務迭代,縮減功能的上市時間;
4、快速試錯
利用 Serverless 架構的簡單運維、低成本及快速上線能力,可以來快速嘗試業務的新形態、新功能;
利用 Serverless 產品的強彈性擴容能力,在業務獲得成功時,也無需為資源擴容而擔心;
最后:Serverless 的計算產品 - 云函數,作為云虛擬機、容器技術之后的下一代計算形態,將引來云計算中新的熱潮。圍繞著云函數而建設的產品能力、工具、生態、以及應用開發,也將引來新的一輪發展。隨著無服務器的產品和生態走向成熟,將逐步承載起企業核心業務。在這個持續向前高速發展的過程中,騰訊云的云函數,將作為騰訊云云原生的重點發力領域,跟隨客戶需求、行業發展、技術發展,為用戶提供完整全套的 Serverless 解決方案。