☁️ 雲端基礎架構學習路線圖
🧱 第1層:認識雲端的基本單位(像是在租一座城市)
🖥️ VM(虛擬機)是什麼?
想像你不是買電腦,而是在雲端租一台電腦來跑你自己的程式。
✏️ 白話說明:
- 在 AWS 叫 EC2,在 GCP 叫 Compute Engine。
- 你可以選「租哪種規格」的機器(像是幾核 CPU、多大記憶體)。
- 然後裝作業系統(如 Linux)來跑應用程式(後端、API、資料庫都可以)。
- 跑多久,就付多久的錢。
🌐 VPC(Virtual Private Cloud,虛擬私有網路)是什麼?
想像你租了一塊「雲端土地」,可以自己劃分道路(子網路)、安裝大門(防火牆)、決定誰能進來。
✏️ 白話說明:
- VPC 就像在雲端裡劃出來的一個「隔離安全區域」。
- 裡面可以放很多服務:像 VM(虛擬機)、資料庫、容器等。
你可以控制:
- 每台機器的 IP 是什麼
- 誰可以對它發 request(用防火牆決定)
- 是否能連出外網、是否能被外部連進來

✅ 總結:
- 工程師常會說「這個 service 在 private subnet 裡」,意思就是:這個服務不能直接對外開放,要透過跳板或內部通道才能存取。
🗂️ Storage(雲端儲存)是什麼?
雲端的「儲物櫃」,放圖片、影片、備份檔、使用者上傳的檔案等,不一定是資料庫才能放資料。
✏️ 白話說明:
雲端儲存主要分兩種常見類型:
1. Object Storage(物件儲存)
- 例子:AWS S3、Google Cloud Storage
- 想像一個「網路硬碟」或「雲端資料夾」。
- 儲存方式像是:每個檔案都當成「物件」來管理,可以存圖片、影片、PDF、JSON 檔…
- 支援大量、不規則格式的檔案(非結構化資料)
- 通常便宜又可以設定公開/私密連結,常用在:
- 使用者上傳圖片
- 靜態網頁資源(如 CDN 配合)
- 備份與歸檔
2. Block Storage(區塊儲存)
- 例子:AWS EBS、GCP Persistent Disk
- 給 VM 用的「硬碟」,像裝在電腦上的 SSD。
- 通常要搭配作業系統格式化,提供給 VM 使用
- 適合需要快速、穩定讀寫的資料(如 DB)
💽 SSD 是什麼?
SSD(Solid State Drive)叫做「固態硬碟」,是比傳統硬碟(HDD)更快、更耐用的一種儲存裝置。
✏️ 白話來說:
- 你可以把它想成是電腦裡的「高速儲存空間」。
- 跟 HDD(傳統硬碟)比起來,SSD 沒有旋轉的磁碟,全部是晶片,所以:
- 速度更快(開機、讀取資料都更快)
- 比較安靜、耐震
- 但價格也會比較貴

🔁 Auto Scaling(自動擴縮)
當網站人多就多開幾台伺服器,人少就關掉一些,不用你手動操作,幫你省錢又穩定。
✏️ 白話來說:
- 想像你在辦一場線上演唱會:
- 人潮突然暴增時,自動多開幾個入口(VM)
- 人走光了,就自動關掉多餘的 VM,省下費用
- Auto Scaling 就是雲端平台幫你根據流量「自動增加或減少」 VM 數量
⚙️ Auto Scaling 會根據哪些條件觸發?
常見的觸發條件有:
- CPU 使用率(例如超過 70%)
- 記憶體使用率
- 網路流量(例如每秒請求數)
- 自訂指標(如購物車下單數)
✅ 小提醒:
- 通常 Auto Scaling 要和 Load Balancer 搭配使用
DNS & Nameserver(名稱伺服器)
✏️ 白話說:
- Nameserver 就是專門負責「幫你查某個網域的 DNS 記錄」的伺服器
- 它是 DNS 系統的一部分,是你在買完網域後最先設定的東西之一
🧭 這樣想比較容易懂:
- 你買了一個網域
myapp.com
- 你要決定:「這個網域的 DNS 記錄誰負責?」
- 所以你會設定 nameserver
- 例如用 Cloudflare,就會把 nameserver 設成
bob.ns.cloudflare.com
- 例如用 Cloudflare,就會把 nameserver 設成
- 從此之後,任何人查
myapp.com
,都會被導到 Cloudflare 去查記錄(A、CNAME、TXT 等)
✅ 小結:
- Nameserver 是 DNS 的入口大門
- 一個網域只能指定一組 Nameserver
- 改 Nameserver 通常在你「切換 DNS 管理商」時才會做
☁️ Serverless 是什麼?真的沒有伺服器嗎?
Serverless(無伺服器運算) 不是真的沒有伺服器,而是「你不需要自己準備、管理伺服器」,讓雲端平台自動幫你處理。
✏️ 白話說:
- 傳統方式:你自己開一台 VM,設定環境、部署程式、維護伺服器
- Serverless:你只上傳程式碼(或設定邏輯),其他的都交給雲端平台自動處理(像是在用 Uber,不用養車)


🚀 什麼是 Container(容器)?
容器(Container) 是一種輕量級的虛擬化技術,它允許開發者將應用程式及其所有依賴項(程式庫、環境變數等)打包在一起,並且在任何地方運行,無論是本地開發環境、伺服器還是雲端。
✏️ 白話說:
- 想像容器像一個可攜式盒子,裡面放著一個應用程式及其所需的所有工具,這個盒子可以在任何地方運行(就像打包行李去旅行)。
- 相比傳統的虛擬機(VM),容器更輕便,不需要整個作業系統,這樣開銷更小。
🧠 PM 要了解的概念:
- 容器 vs 虛擬機(VM):
- 虛擬機:每個虛擬機都需要一個完整的操作系統(OS),這樣開銷較大。
- 容器:容器在相同的作業系統上運行,並共享操作系統內核,這使它更輕便且啟動更快。
- 容器運作的方式:
- 開發者只需要將應用程式及所需的依賴打包成容器映像檔(Image)。
- 然後可以在任何環境中運行這些容器,無需擔心平台差異(如操作系統或硬體)。


🐳 Docker 是什麼?
Docker 是一個開源平台,讓開發者能夠自動化應用程式的部署過程,將應用程式及其依賴打包在一個容器中。Docker 容器是輕量的、可攜的,可以在不同的環境中一致地運行。
✏️ 白話解釋:
- Docker 容器像是一個“打包好的應用程式盒子”,裡面包含了應用所需的所有東西(如程式碼、程式庫、環境變數),無論在任何地方執行,環境都是一致的。
- 它和虛擬機(VM)不同,不需要完整的操作系統,讓它更輕便、啟動速度更快。
🧠 Docker 的工作流程:
- 建立 Docker 映像檔(Image):開發者寫好應用程式,並使用 Dockerfile 定義容器的構建過程。
- 建立 Docker 容器:根據映像檔創建並運行容器。
- 部署和管理:容器可以在任何支持 Docker 的系統上運行,無論是開發、測試還是生產環境
🚀 Docker 優勢:
- 快速啟動:容器啟動速度比虛擬機更快,因為它不需要啟動完整的操作系統。
- 跨平台運行:容器可以在不同的環境(如開發環境、測試環境、雲端等)無縫運行。
- 資源效率:容器共享宿主操作系統的內核,節省了運行的資源。
⚙️ Kubernetes 是什麼?
Kubernetes 是一個開源的容器編排平台,用於自動化容器的部署、擴展和管理。它提供了一個高效的方式來管理大規模的容器應用程式,並讓應用程式能夠自動擴展。
✏️ 白話解釋:
- 如果 Docker 容器是一個“單一的應用程式盒子”,那麼 Kubernetes 就是“管理和協調這些盒子的主管”。
- 當你有數百或數千個容器時,手動管理會變得非常繁瑣,這時 Kubernetes 就能幫你自動化這些工作,如調度容器、負載平衡、健康檢查等。
- 🧠 Kubernetes 的工作原理:
- Pod:Kubernetes 中最小的部署單位,一個 Pod 可以包含一個或多個容器。
- Node:Node 是 Kubernetes 集群中的工作機器,可以是虛擬機或物理機。
- Service:Kubernetes 提供 Service 來實現容器之間的通信,並讓它們可以通過固定 IP 地址訪問。
- Deployment:負責控制容器應用程式的部署和擴展。
🚀 Kubernetes 優勢:
- 自動擴展:根據負載自動增加或減少容器數量,保持應用程式的高可用性。
- 高可用性:Kubernetes 會自動處理容器的健康檢查,並根據需要替換故障容器。
- 負載平衡:Kubernetes 提供自動的負載平衡機制,確保請求均勻分配到各個容器。

🚀 總結:
- Docker 是一個容器平台,讓應用程式和其依賴一起被打包並能夠快速部署。
- Kubernetes 則是幫助管理和協調大量容器的編排平台,適用於大規模的應用程式部署。
- VM 和 容器 兩者各有優勢,選擇取決於應用需求,容器更加輕量,適合微服務,而虛擬機則適合需要完整操作系統的環境。