《云計算與虛擬化技術叢書 深入淺出Serverless:技術原理與應用實踐》—1Serverless基礎
第1章
Serverless基礎
Serverless架構即“無服務器”架構,它是一種全新的架構方式,是云計算時代一種革命性的架構模式。本章將介紹Serverless架構的基本概念和特點。
1.1 什么是Serverless
與云計算、容器和人工智能一樣,Serverless是這兩年IT行業的一個熱門詞匯,它在各種技術文章和論壇上都有很高的曝光度。但是和其他技術不同,Serverless是一個不太讓人能直觀理解其含義的概念。按照英文的字面意思直譯的話,Serverless的中文翻譯為“無服務器”,聽起來很神秘,很多技術圈的朋友一時不能理解其內涵。技術圈中的人們一般稱呼Serverless為“無服務器架構”。Serverless不是具體的一個編程框架、類庫或者工具。簡單來說,Serverless是一種軟件系統架構思想和方法,它的核心思想是用戶無須關注支撐應用服務運行的底層主機。這種架構的思想和方法將對未來軟件應用的設計、開發和運營產生深遠的影響。
在專業領域的文章中,筆者比較不傾向于使用翻譯后的專有名詞,故本書保留使用Serverless一詞。
所謂“無服務器”,并不是說基于Serverless架構的軟件應用不需要服務器就可以運行,其指的是用戶無須關心軟件應用運行涉及的底層服務器的狀態、資源(比如CPU、內存、磁盤及網絡)及數量。軟件應用正常運行所需要的計算資源由底層的云計算平臺動態提供。
Serverless的這種模式顛覆了我們傳統意義上對軟件應用部署和運營的認識。到底Serverless架構和傳統的軟件架構有什么不同呢?
在傳統的場景里,當用戶完成了應用開發后,軟件應用將被部署到指定的運行環境,這個運行環境一般以服務器的方式體現,可能是物理主機,也可能是虛擬機。根據業務場景的需要,用戶會申請一定數量、一定規格(包含一定數量的CPU、內存及存儲空間)的服務器以滿足該應用的正常運行。當應用上線后,根據實際的運營情況,用戶可能會申請更多的服務器資源進行擴容,以應對更高的訪問量。在這個場景里面,用戶需要關心服務器總體的數量,以運行足夠的應用實例;需要關心每臺服務器的資源是否充足,是否有足夠的CPU和內存;需要關心服務器的狀態,因為每臺服務器上應用的部署都要花費不少時間和精力。因為用戶需要花費大量的時間、精力在服務器這一計算資源的計劃、管理和維護上。
在Serverless架構下,情況則截然不同。當用戶完成應用開發后,軟件應用將被部署到指定的運行環境,這個運行環境不再是具體的一臺或多臺服務器,而是支持Serverless的云計算平臺。當有客戶端請求到達或特定事件發生時,云計算平臺負責將應用部署到某臺Serverless云計算平臺的主機中。Serverless云計算平臺保證該主機提供應用正常運行所需的計算資源。在訪問量升高時,云計算平臺動態地增加應用的部署實例。當應用空閑一段時間后,云計算平臺自動將應用從主機中卸載,并回收資源。在這個場景中,用戶無須關心應用運行在哪一臺服務器上,也不用關心具體需要幾臺服務器。原本花費在計劃、管理和維護具體服務器上的時間和精力在Serverless云計算平臺的幫助下被省去了。具體的服務器不再是用戶關注的焦點,不再是效率提升的障礙。
通過上述兩種場景的對比可見,在Serverless架構中并不是不存在服務器,而是服務器對用戶而言是透明的,不再是用戶所操心的資源對象。
你會發現Serverless的實現和軟件應用所在的Serverless云計算平臺有著很大的關系。用戶之所以不用再關注服務器是因為底層的云計算平臺完成了大量的自動化工作。這個云計算平臺可以是公有云,如Amazon Web Services(AWS)、Microsoft Azure、阿里云或騰訊云,也可以是私有云,如通過OpenStack、Kubernetes結合一些Serverless框架實現。本書將在后面的章節中對公有云和私有環境里Serverless的實現進行詳細的介紹。
云計算 Serverless 虛擬化
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。