在最近的調查中,調研機構Sumo Logic公司調查了采用亞馬遜網絡服務(AWS)、微軟Azure和谷歌云平臺(GCP)等云計算服務的1500名客戶。根據調查,四分之一的受訪者已經部署了Docker容器,幾乎有23%的受訪者表示正在使用AWS Lambda無服務器計算框架。
很明顯,無服務器得到很多用戶的應用。在應用程序開發和操作中,其采用都會伴隨著一些必要的變化。這意味著無服務器也正在改變人們利用公共云的方式。
思維的轉換
首先,無服務器并不意味著沒有服務器。它只是意味著用戶使用了一個自動化機制,允許其專注于應用程序本身的目的和構建。這種機制確保用戶分配足夠的服務器和存儲來支持應用程序。這讓用戶覺得自己應該從一開始就成為公共云的一部分。
事實上,像AWS、Google Cloud、Microsoft Azure這樣的公共IaaS云將他們的云計算資源視為一種虛擬數據中心。但是,不是在數據中心購買和安裝物理服務器,而是虛擬配置計算服務器和存儲設備,更不用說數據庫,安全性,治理等其他云計算服務。
事實上,許多企業IT部門都非常樂意擺脫數據中心內的物理服務器的管理,使得現有的公共IaaS云的許多限制被擺脫。但是,幾年來人們已經采用公共IaaS云,開發人員和Cloud Ops專業人員正在大力推行持續監控服務器(不管是否配置),以支持工作負載。
傳統的IaaS導致了這個問題,這有兩件事情。首先,他們過度配置所需的服務器,然后尋找一個"不能擁有太多資源"的模型。或者,第二,他們沒有提供足夠的資源,而是去"讓他們要求更多"的模式。這兩者都是錯誤的方法。
雖然估計有所不同,但公共IaaS云資源在實際需求上的配置幾乎達到了40%。這意味著大多數企業的支付比云計算服務多40%。這不包括由于錯誤而停留在生產中的服務器,或者由于并非分配了該工作負載所需的所有云資源而導致失敗的應用程序所帶來的損失。
采用無服務器
PaaS云真的是無服務器系統的靈感,比如AWS Lambda和Microsoft Functions.PaaS作為一項服務而開始得到更多的應用,動提供用戶所需的服務。它在幕后工作,并且使開發人員和操作人員免于不斷地弄清楚。
在IaaS無服務器產品的核心,人們會遇到一些常見的模式:
能夠讓開發人員不必為工作負載分配正確數量的資源,以及跟上運行的情況,以及需要配置所需的資源。只需為其使用的內容支付費用,直至用戶您在無服務器子系統中編寫的功能使用寫畢。
將無服務器計算與全新和傳統應用程序相連接的能力。雖然用戶可以使用無服務器系統編寫完整的應用程序,但大多數人選擇從事全新或傳統工作負載的事務。
能夠精確計算工作負載消耗的資源。過去,人們必須對各部門的云服務器的成本進行評估和分配。即使部門只使用了分配的云服務器的3%,他們也可能不得不支付33.33%的費用。而無服務器使成本核算和扣款更加準確和公平。
能夠創建作為功能集的工作負載,所有這些工作負載都有自己的自動化分配資源、成本以及利用任何功能來完成其工作的能力。這意味著要返回到一個服務集合的應用程序,因此需要有一些好的設計工作進入面向功能的無服務器應用程序。
對于很多人來說,這些無服務器功能也稱為服務功能,或FaaS.FaaS不需要對某個框架或庫進行編碼。相反,當談到語言和環境時,這些功能就是作為常規應用程序構建的。
例如,AWS Lambda功能可以在Java,Python和大多數JVM語言中實現。然而,FaaS函數確實有顯著的架構限制,特別是在狀態和執行持續時間方面。
創建無服務器策略
除了云計算技術的實施之外,企業還需要了解無服務器開發意味著什么。
首先,盡管科技媒體對于無服務器技術有一些很好的說法,但就其帶來的價值而言,它更具策略性而不是戰略性。因此,雖然這里有一些價值,但是從消除人類所需的云計算資源數量來看,其結果不是改變游戲規則,而是一個改進。
其次,這更多的是關于全新的和更小的應用程序,而不是重構傳統應用程序。就像容器一樣,人們希望把所有的東西都放進去,發現在某些情況下,要考慮到需要完成的工作量是不可能的。基于無服務器的應用程序最適合無服務器的應用程序,因此,全新的應用程序以及更小和更具策略性的應用程序將從無服務器技術中獲益最多。
最后,用戶需要防止供應商鎖定。考慮到無服務器與谷歌、微軟、AWS云平臺不同,用戶可以依靠構建支持其客戶和云計算的無服務器系統的平臺。可移植性可能難以構建到基于無服務器的應用程序中。沒有可行的標準或IaaS無服務器云提供商之間的密切協調。
那么,無服務器能夠改變計算嗎?事實上,它并沒有比其他云計算技術在過去幾年中所占的比例要大得多。
無服務器就是要做一些公共云應該從一開始就應該做的事情。它更多的是進化而不是創新,有時這是一個更理想的追求。