團隊文章

比較主要雲端供應商:AWS、Azure、Google Cloud 等

從你要執行的工作、完整成本、營運負擔與轉移能力,比較 AWS、Azure、Google Cloud、Alibaba 和 Tencent。

目錄

一個托盤放著圖片、檔案與資料庫模型,前方是三座微型伺服器機房。
先從你需要執行的工作開始。在決定它應該放在哪裡之前,先比較營運負擔、成本,以及轉往其他供應商的路徑。

假設一家小型企業想要一個放有產品照片和客戶訂單清單的網站。它需要一個執行應用程式的地方、一個保存圖片檔案的地方,以及一個可以查詢和更新訂單的資料庫。先從這三項工作開始。這比列出市場占有率,更容易用來比較雲端供應商。

為可辨識的工作使用不同名稱

虛擬機器是一台由你設定並在遠端執行的電腦。物件儲存用來保存圖片等檔案。託管式關聯式資料庫保存結構化記錄,而供應商負責部分營運工作。下表是各供應商目錄中的例子,不代表相同產品,也不是排名。

供應商

虛擬機器

物件儲存

託管式關聯式資料庫

AWS

Amazon EC2

Amazon S3

Amazon RDS

Microsoft Azure

Azure Virtual Machines

Azure Blob Storage

Azure Database for PostgreSQL

Google Cloud

Compute Engine

Cloud Storage

Cloud SQL

Alibaba Cloud

Elastic Compute Service (ECS)

Object Storage Service (OSS)

ApsaraDB RDS

Tencent Cloud

Cloud Virtual Machine (CVM)

Cloud Object Storage (COS)

TencentDB for MySQL

產品名稱與分類取自 Google 的跨供應商服務比較、Alibaba 的 RDS 概覽 和 Tencent 的產品目錄。資料庫引擎、可用設定與支援功能各不相同;MySQL 服務並不能直接取代 PostgreSQL 應用程式。

比較團隊實際會做的工作

以這個網站為例,一種做法是租用虛擬機器,自己安裝應用程式和資料庫;另一種做法是使用託管式資料庫與應用程式託管服務。後者可以減少營運工作,但你仍然需要理解設定、存取、復原,以及應用程式所依賴的功能。

先從你已經擁有的系統開始。它使用哪種資料庫引擎?如何部署?團隊能維護哪些工具?熟悉的設定可以減少工作;如果陌生服務能解決具體問題,它仍然可能值得採用。請把這項好處說清楚。

接著選擇應用程式必須運作的地點。從使用者實際連線的位置測試回應時間,並確認你需要的特定服務和功能能在選定區域中一起使用。供應商在全球有多少區域,無法替你回答這兩個問題。

為完整一個月的工作估算價格

對每個候選方案使用相同假設:預期訪問量、計算時數、儲存檔案、資料庫大小、備份,以及傳送給使用者的資料。如果團隊需要支援,也要納入支援費用。一台便宜的虛擬機器只是一項估算。

例如,AWS Pricing Calculator 指南會根據區域、服務和使用量假設建立估算,也能加入支援。估算取決於這些輸入,不是對帳單的承諾。把假設和數字放在一起,才能用相同基準比較。

對照片很多的網站來說,把圖片傳給訪客的重要性,可能高於一個小型內部表單。對需要快速復原的系統,額外的資料庫容量和復原安排也很重要。請測試自己的使用模式,不要尋找一個在所有情況下都最便宜的供應商。

在承諾之前測試回程

在你的候選清單上執行同一個應用程式的小型版本。上傳範例圖片、建立測試訂單、匯出記錄,然後在獨立的測試環境中還原。確認你會如何替換供應商專屬服務。複製檔案只是搬移應用程式的一部分。

記錄三件事:讓系統運作起來需要多少工作、在相同使用量假設下的成本,以及搬移或復原需要什麼。一項成功的測試,比品牌在排行榜上的位置更能提供小型團隊選擇的根據。

讓選擇與你的目的保持連結

你不必為了展示獨立性而同時建置在多個雲端上。一項充分理解的單一服務,可能是最實際的起點。重要的是知道你交出了哪些責任,以及另一種安排是否仍然可行。

雲端服務模型說明了這種工作分工。接著,邊緣運算與雲端運算會討論不同工作應該放在哪裡。把機器分散到不同地點,和分散決策權,是兩個不同的問題;好的基礎設施選擇能讓兩者都更清楚。