云服務架構完全指南
經過大約 16 年的演變,云計算已經成為一種幾乎所有網民都在使用的技術。它可以作為一種服務,用于滿足各類企業和消費者的需求。因此,在云計算中正在使用多種服務架構,旨在根據最新的需求來定制所需技術。
盡管在全球范圍內建立互相協同的計算機網絡的構想在 20 世紀 60 年代初就提出了,但直到 2006 年,谷歌的首席執行官 埃里克·施密特Eric Schmidt 在當時的背景下引入了“云計算cloud computing”一詞,這種構想才成為一種正式的概念。
云計算可以簡單理解為遍布于世界各地的遠程服務器網絡,通過互聯網共享數據和協同工作,從而為企業和消費者提供服務。雖然這樣的定義比較武斷,但它包含了云計算背后的核心思想。促成這項技術發展的主要因素是對“數據粘性”的需求,就是令數據更容易被各種設備訪問,同時也要減少數據丟失的風險。如果用戶甲只在一臺服務器上保存了數據,對于用戶甲來說,只要有一臺服務器中斷,數據就很有可能永久性丟失。這種做法無異于“把所有雞蛋放在同一個籃子里”,從來都不是一個好辦法,特別是當你在處理對公司和消費者具有重要意義的數據時。但如果你在多臺服務器上備份了用戶甲的數據,將有兩個主要好處:其一,即使一臺服務器中斷,用戶甲仍然可以正常獲取數據;其二,云服務可以從負荷最小的、離他最近的那臺正常運作的服務器獲取數據。這使用戶甲可以在不同設備上更快、更容易地獲取數據。
歷經大約 16 年的發展,云計算從起初只是一種用于備份圖片的工具,變為了互聯網的骨干。如今幾乎所有的應用,從 Office 到 Asana 以及 Todolist,都利用云計算來實現實時訪問和數據共享。幾乎任意一款你能想像到的應用都在使用云計算。從 Gmail 和 YouTube,到Instagram,一切都使用云計算,以提供快速、便捷、可靠的數據訪問功能。
提供云計算服務的公司稱為云服務提供商。亞馬遜、谷歌、微軟、Salesforce、Cloud9 等都是 B2B 和 B2C 領域的云服務提供商。
在早期,云服務供應商通常指提供三類服務:
- 軟件即服務Software as a Service(SaaS)
- 平臺即服務Platform as a Service(PaaS)
- 基礎設施即服務Infrastructure as a Service(IaaS)
然而,隨著行業需求不斷發展,區塊鏈和 AI 等新技術的出現,云服務提供商也開發了新的模式,用于更好地滿足客戶的各種需求。本文將詳細論述如今大眾普遍使用的那些云計算模式。
云端的架構
我們已經了解了什么是云計算,以及它是如何發展成一個高達 4450 億美元產值的行業,現在我們從技術視角來理解云計算。通常一個云端架構都由兩個主要部件組成 —— 前臺front-end和 后臺back-end。
Figure 1: The architecture of a cloud (Courtesy: TechVidvan)
前臺包含客戶端基礎設施,有終端設備和用于與云端通信的應用程序界面。在現實世界里,你的智能手機和谷歌云端硬盤就是前臺,它們用于訪問谷歌云。
后臺包含云端基礎設施,包括運行云計算服務所需的一切設備。服務器、虛擬機、服務和存儲都是由云端基礎設施提供的。為了對它們有個全局的概念,現在我們來了解一下后臺的每個組件。
- 應用Application:用戶或企業使用的、通過互聯網與云端互動的任何應用程序的后臺。
- 服務Service:云端提供的服務型基礎設施。本文將詳細論述各種不同的服務。
- 運行時Runtime:提供給虛擬機的運行時和執行系統。
- 存儲Storage:具有靈活的伸縮性的用戶/企業數據獲取和管理系統。
- 基礎設施Infrastructure:運行云端所需的硬件和軟件。
- 安全Security和管理Management:建立安全機制,保護用戶/企業數據,管理各個云服務單元,避免過載和服務停機。
軟件即服務(SaaS)
“軟件即服務”是一種云計算模式,通過互聯網將軟件和應用程序作為一種服務提供。谷歌云端硬盤或谷歌工作空間都是比較典型的例子。谷歌云端硬盤內的所有應用,例如文檔、工作表、幻燈片、表格等,它們都可以通過使用瀏覽器訪問,并自動保存于云端。你可以在任意設備上獲取文件的最新版本。你唯一需要做的就是登錄你的賬戶。這就是“軟件即服務”模式的優點。你不需要在你的設備上安裝任何東西,也不需要使用你的本地存儲空間,你可以直接訪問云端的應用程序,并省略了使用本地軟件時的很多繁雜操作。SaaS 一般遵循“按需付費”法則,你只要為你需要的服務支付費用。你總是可以通過支付更多的費用來購買更多的存儲和/或功能,或者根據你的要求來降低你的套餐。
SaaS 的好處
- SaaS 具有高度的可伸縮性,這歸功于它的“按需付費”思想。你可以根據自身需求增加/減少存儲空間或程序功能。
- 考慮到它提供的特性,如通過任何操作系統的任何設備進行實時訪問,它是非常合算的。
- 它在客戶端涉及的工作很少。不需要安裝或進行復雜的步驟,就可以完成軟件的初始化。你可以從你的瀏覽器和/或應用程序中舒適地使用它。
- 不必手動安裝,軟件會自動更新,而且更新過程中你也不必等待。
平臺即服務(PaaS)
并不是每家科技初創公司都有必要的資源來維護自己的基礎設施,以便在云端運行他們的應用程序。公司(尤其是創業型公司)通常更傾向于把應用部署于云端,這樣就不必處理后臺基礎設施了。這就是“平臺即服務”這種模式的用武之地了。Heroku 等公司提供了基于“平臺即服務”的云端解決方案,令公司和個人可以在不需要直接與硬件交互的情況下就能部署并運行他們的應用程序。跟“軟件即服務”類似,這種模式也提供了靈活性,你只需選擇所需的服務,同時也從基礎設施的角度提供了可伸縮性和安全性。
PaaS 的好處
- 省去了操作云端基礎設施的麻煩。你將其外包給在其云中托管你的應用程序的公司。這令你能專注于應用程序開發工作的各個生命周期。
- PaaS 是可擴展的。你可以根據需要增加或減少存儲需求、附加服務等。
- 你設置的唯一安全參數是針對你自己的應用程序。云安全是由你的云服務提供商處理的。
- 對公司和個人來說,把應用程序托管在云端,在時間和成本上都是合算的,特別是那些無法承擔基礎設施建設成本的創業型公司。
基礎設施即服務(IaaS)
IaaS 相對于 PaaS 更進一步,給予用戶更多的自主權。在 IaaS 模式中,云服務提供商讓你對云端的底層基礎設施進行操控。簡而言之就是你可以根據公司需要自行設計云端環境,從專用服務器和虛擬機,到運行于服務器的操作系統,你還可以設置帶寬,創建自己的安全協議,以及創建云基礎設施所需的其他項目。亞馬遜 AWS 和谷歌計算引擎(GCE)都是使用 IaaS 模式的很好的例子。鑒于此模式還可以實現用戶對硬件的自主操控,它也被稱為硬件即服務(HaaS)。
IaaS 的好處
- “按需付費”模式中的細粒度靈活性。你可以自行決定運行多少臺虛擬機以及使用多少時間。你還可以按小時付費。
- 以“按需付費”為核心思想,它具有高度的可伸縮性。
- 完全的自主權,對基礎設施中的一切事項的控制,省去了在公司所在地點駐場維護服務器的麻煩。
- 大多數公司保證正常運行時間、安全性和 24/7 的現場技術支持,這對企業來說非常重要。
存儲即服務(StaaS)
谷歌云端硬盤、OneDrive、Dropbox 和 iCloud 是 存儲即服務Storage as a Service
StaaS 的好處
- 借助內置的版本控制系統,實時訪問最新數據。
- 可以使用安裝任意操作系統的任何設備訪問數據。
- 隨著你創建、編輯和刪除文件,實時備份你的數據。
- 遵循“按需付費”模式,你可以根據需要自行確定存儲空間大小。
一切即服務(XaaS)
IaaS、PaaS、SaaS 和 StaaS 的混合版,就是所謂的“一切即服務Anything/Everything as a Service”模式,它在云計算相關社區內快速引發關注。客戶可能有多種多樣的需求,這些需求可能是各種不同模式的混合。在這種場景下,應當為用戶提供自由選擇所需服務的功能,讓他們從各種不同的層級選擇服務,從而創建自定義的“按需付費”模式。這種方式的好處在于,讓用戶根據自身需求自由選擇相應的云服務。
XaaS 的好處
- 可以選擇你喜歡的東西和你喜歡的方式。
- 只需要為你需要的服務支付費用,而且不需要支付任何基于層級系統的基本費用。
- 選擇你的基礎設施、平臺和功能的粒度水平。
- 只要使用得當,無論在時間、成本、效用上,XaaS 都是非常有效的。
功能即服務(FaaS)
在某些情況下,公司或個人需要 PaaS,但不是所有的功能都需要。例如,基于觸發器的系統,如定時任務,只需要在無服務器系統上運行一段代碼或一個函數,就可以實現一個特定的目標。例如某客戶需要創建一個網站的流量監測系統,在頁面下載量達到一定數量時發送通知。這樣的需求簡而言之就是在云端運行一段持續檢查要執行的觸發器的代碼。使用 PaaS 的成本較高。此時就是“功能即服務Function as a Service”發揮作用的時候了。許多公司,例如 Heroku,向客戶提供 FaaS,它只存儲一段代碼或一個方法,只會在被觸發的情況下運行。
FaaS 的好處
- 你只需要支付代碼運行的費用。托管代碼通常是不收費的,除非計算成本很高。
- 它不會有使用 PaaS 的那些麻煩,卻讓你享受所有好處。
- 無論如何,你都不必關心底層基礎設施。因此,你只需要上傳代碼,而不必關心任何虛擬機維護相關事宜。
- FaaS 讓你的開發更加敏捷,即編寫函數式代碼。
區塊鏈平臺即服務(BPaaS)
近年來,區塊鏈席卷了科技行業。它是目前最受歡迎的技術之一,比它更受歡迎的只有人工智能和數據科學相關技術。區塊鏈如此吸引人的原因是它提供了安全、可伸縮和透明的開放式賬本架構。這些功能對于許多應用程序都是必要的,例如銀行、選舉系統,甚至社交媒體也需要這些功能。隨著如此廣泛的應用,有必要能夠在云上托管這樣的產品,其模式專門滿足這種技術的需求。這就是區塊鏈平臺即服務(Blockchain Platform as a Service)(BPaaS)發揮作用的地方。如今,包括亞馬遜 AWS 和微軟 Azure 在內的許多公司,都在為專門尋求在云中托管基于區塊鏈的應用程序的客戶提供BPaaS解決方案。
BPaaS 的好處
- 它滿足了區塊鏈行業的特定需求,例如支持用于編寫智能合約的專用語言。
- 通過提供 API 橋接,支持與區塊鏈(如以太坊)集成。
- 支持在區塊鏈技術的應用中使用自定義數據庫。
- 云的所有優點它也同樣具備,即“按需付費”功能、可擴展性、安全性和訪問便捷性。