發(fā)布于:2020-12-24 16:16:44
0
140
0
在21世紀頭十年,我們看到了從使用物理硬件到虛擬化的轉(zhuǎn)變。這種變化是由時鐘頻率的增加和現(xiàn)代cpu的核心數(shù)量驅(qū)動的。在單個物理服務器上運行單個應用程序不再具有成本效益。開源和商業(yè)hypervisor解決方案開始在服務器市場上獲得巨大的流行。
今天,我們看到了從虛擬機到容器的另一個轉(zhuǎn)變。容器是運行在模擬操作系統(tǒng)本身的操作系統(tǒng)內(nèi)核之上的虛擬運行時環(huán)境。虛擬機和容器之間的區(qū)別在于,虛擬機模擬硬件,而容器(運行在vm之上)只模擬操作系統(tǒng)。
操作系統(tǒng)仿真有許多好處。在容器中運行的進程是相互隔離的。容器可以快速啟動和終止,因為它們的占用空間或大小通常很小,這使它們成為快速擴展的最佳選擇。
虛擬機和容器允許軟件更好地利用購買的硬件。多個應用程序可以在同一硬件上并發(fā)運行。對于財政部門來說,高利用率意味著資本支出的有效利用。
這就是無服務器模型的作用。無服務器計算描述了一種設計為托管云服務集合的應用程序架構。像AWS Lambda、Aurora或CloudFront這樣的托管服務提供了高附加值,并允許您快速構建應用程序。您要把時間花在開發(fā)業(yè)務邏輯上,而不是浪費在基礎設施上,比如確保數(shù)據(jù)庫作為集群運行。無服務器應用程序模型幫助您啟動應用程序堆棧,并輕松地組織和管理與應用程序關聯(lián)的云資源的狀態(tài)。
容器空間的重大技術進步使無服務器計算成為可能。努力減少開銷并允許在其平臺上快速提供資源的云提供商很快發(fā)現(xiàn),有必要開發(fā)新型硬件加速管理程序。
硬件加速的虛擬機監(jiān)控程序(如AWS Nitro)和虛擬機監(jiān)控程序(如AWS鞭炮)的結(jié)合允許快速部署和執(zhí)行容器環(huán)境。由于新一代硬件加速管理程序的出現(xiàn),像AWS Lambda這樣的計算服務現(xiàn)在提供了更高的CPU、磁盤和網(wǎng)絡I/O性能。
一個成本效益高的云環(huán)境完全是關于提供的資源的高利用率。無服務器計算保證您始終以100%的利用率運行應用程序。在無服務器上運行應用程序時,配置總是完美的,因為您只支付實際使用的機器時間。
與EC2等經(jīng)典計算服務相比,無服務器計算可以很好地擴展傳入流量。使用經(jīng)典EC2進行伸縮通常涉及到另一個稱為自動伸縮的服務。自動伸縮本身是一個復雜的特性,用于跟蹤選擇的指標,比如CPU負載或虛擬機的網(wǎng)絡利用率。自動伸縮使用這些指標來觸發(fā)警報,以增加或減少EC2實例的數(shù)量??梢钥闯?,EC2艦隊擴展涉及很多步驟,而且很容易忽略一些東西,因為每個應用程序都很不同。
使用serverless,您可以忘記所有的復雜性。無服務器應用程序伸縮實際上只是復制最終的容器以選擇管理程序,執(zhí)行它,并將所有傳入事件路由到它。如果您的無服務器應用程序符合容器大小和運行時內(nèi)存限制,那么您的應用程序就可以適當伸縮了。這是由運行在更靠近硬件的容器和管理程序啟用的。Serverless幾乎沒有操作系統(tǒng)開銷,因為它只在其容器中運行內(nèi)核代碼和應用程序。
伸縮性是serverless所擅長的,但它也有一些限制。Serverless是基于事件處理的完美計算模型。web上的大多數(shù)工作負載都是基于事件的,或者可以轉(zhuǎn)換為事件。目前,由于AWS Lambda和其他云服務有執(zhí)行限制,serverless不能很好地與長時間運行的流程一起工作。經(jīng)典的VM計算或其他類型的基于容器的計算仍然更適合長時間運行的進程。只要您的工作負載可以是事件驅(qū)動的,并且處理事件相對快速且資源需求低,serverless應該很適合您。當前的無服務器限制似乎都不是永久的,服務提供應該隨著時間的推移而發(fā)展和改進。昨天還是個問題的極限明天可能就不存在了。
最后,最重要的一點是:成本。開發(fā)和運行沒有服務器的應用程序要便宜多少?我得說,這取決于應用程序。當您的應用程序伸縮性好時,它們將為您和您的用戶提供更好的價值。你會更便宜。Serverless幫助消除了對不使用的計算資源的過度供應和過度支付。雖然serverless提高了伸縮性,但其他可計費的利用率仍然適用——您仍然應該考慮使用了多少帶寬、存儲和數(shù)據(jù)庫容量。目前,Serverless還不能幫助您更好地利用這些資源,這仍然取決于您和您的應用程序。
你可能在因特網(wǎng)上讀過關于無服務器和供應商鎖定的文章。我認為您仍然可以在應用程序的體系結(jié)構中控制這些方面。無服務器計算有許多好處——出色的性能、簡單的設置以及快速的開發(fā)和部署。這就是為什么serverless在我的工具箱中成為構建高性能應用程序的一個重要工具,該應用程序可伸縮性好,同時保持低成本。如果你還沒有嘗試過serveless,你應該試試。首先探索無服務器應用程序模型。