從虛擬化到容器化:現代 IT 基礎架構的演變與選擇

從虛擬化到容器化:現代 IT 基礎架構的演變與選擇

avatar-img
發佈於軟體開發
更新於 發佈於 閱讀時間約 8 分鐘

☁️ 雲端基礎架構學習路線圖

🧱 第1層:認識雲端的基本單位(像是在租一座城市)

🖥️ VM(虛擬機)是什麼?

想像你不是買電腦,而是在雲端租一台電腦來跑你自己的程式。


✏️ 白話說明:

  • 在 AWS 叫 EC2,在 GCP 叫 Compute Engine。
  • 你可以選「租哪種規格」的機器(像是幾核 CPU、多大記憶體)。
  • 然後裝作業系統(如 Linux)來跑應用程式(後端、API、資料庫都可以)。
  • 跑多久,就付多久的錢。

🌐 VPC(Virtual Private Cloud,虛擬私有網路)是什麼?

想像你租了一塊「雲端土地」,可以自己劃分道路(子網路)、安裝大門(防火牆)、決定誰能進來。


✏️ 白話說明:

  • VPC 就像在雲端裡劃出來的一個「隔離安全區域」。
  • 裡面可以放很多服務:像 VM(虛擬機)、資料庫、容器等。

你可以控制:

  • 每台機器的 IP 是什麼
  • 誰可以對它發 request(用防火牆決定)
  • 是否能連出外網、是否能被外部連進來
raw-image

✅ 總結:

  • 工程師常會說「這個 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 沒有旋轉的磁碟,全部是晶片,所以:
    • 速度更快(開機、讀取資料都更快)
    • 比較安靜、耐震
    • 但價格也會比較貴


raw-image

🔁 Auto Scaling(自動擴縮)

當網站人多就多開幾台伺服器,人少就關掉一些,不用你手動操作,幫你省錢又穩定


✏️ 白話來說:

  • 想像你在辦一場線上演唱會:
    • 人潮突然暴增時,自動多開幾個入口(VM)
    • 人走光了,就自動關掉多餘的 VM,省下費用
  • Auto Scaling 就是雲端平台幫你根據流量「自動增加或減少」 VM 數量

⚙️ Auto Scaling 會根據哪些條件觸發?

常見的觸發條件有:

  • CPU 使用率(例如超過 70%)
  • 記憶體使用率
  • 網路流量(例如每秒請求數)
  • 自訂指標(如購物車下單數)

✅ 小提醒:

  • 通常 Auto Scaling 要和 Load Balancer 搭配使用

DNS & Nameserver(名稱伺服器)

✏️ 白話說:

  • Nameserver 就是專門負責「幫你查某個網域的 DNS 記錄」的伺服器
  • 它是 DNS 系統的一部分,是你在買完網域後最先設定的東西之一

🧭 這樣想比較容易懂:

  1. 你買了一個網域 myapp.com
  2. 你要決定:「這個網域的 DNS 記錄誰負責?」
  3. 所以你會設定 nameserver
    • 例如用 Cloudflare,就會把 nameserver 設成 bob.ns.cloudflare.com
  4. 從此之後,任何人查 myapp.com,都會被導到 Cloudflare 去查記錄(A、CNAME、TXT 等)

✅ 小結:

  • Nameserver 是 DNS 的入口大門
  • 一個網域只能指定一組 Nameserver
  • 改 Nameserver 通常在你「切換 DNS 管理商」時才會做

☁️ Serverless 是什麼?真的沒有伺服器嗎?

Serverless(無伺服器運算) 不是真的沒有伺服器,而是「你不需要自己準備、管理伺服器」,讓雲端平台自動幫你處理。

✏️ 白話說:

  • 傳統方式:你自己開一台 VM,設定環境、部署程式、維護伺服器
  • Serverless:你只上傳程式碼(或設定邏輯),其他的都交給雲端平台自動處理(像是在用 Uber,不用養車)
raw-image
raw-image

🚀 什麼是 Container(容器)?

容器(Container) 是一種輕量級的虛擬化技術,它允許開發者將應用程式及其所有依賴項(程式庫、環境變數等)打包在一起,並且在任何地方運行,無論是本地開發環境、伺服器還是雲端。

✏️ 白話說:

  • 想像容器像一個可攜式盒子,裡面放著一個應用程式及其所需的所有工具,這個盒子可以在任何地方運行(就像打包行李去旅行)。
  • 相比傳統的虛擬機(VM),容器更輕便,不需要整個作業系統,這樣開銷更小。

🧠 PM 要了解的概念:

  1. 容器 vs 虛擬機(VM)
    • 虛擬機:每個虛擬機都需要一個完整的操作系統(OS),這樣開銷較大。
    • 容器:容器在相同的作業系統上運行,並共享操作系統內核,這使它更輕便且啟動更快。
  2. 容器運作的方式
    • 開發者只需要將應用程式及所需的依賴打包成容器映像檔(Image)。
    • 然後可以在任何環境中運行這些容器,無需擔心平台差異(如操作系統或硬體)。
raw-image
raw-image

🐳 Docker 是什麼?

Docker 是一個開源平台,讓開發者能夠自動化應用程式的部署過程,將應用程式及其依賴打包在一個容器中。Docker 容器是輕量的、可攜的,可以在不同的環境中一致地運行。

✏️ 白話解釋:

  • Docker 容器像是一個“打包好的應用程式盒子”,裡面包含了應用所需的所有東西(如程式碼、程式庫、環境變數),無論在任何地方執行,環境都是一致的。
  • 它和虛擬機(VM)不同,不需要完整的操作系統,讓它更輕便、啟動速度更快。

🧠 Docker 的工作流程:

  1. 建立 Docker 映像檔(Image):開發者寫好應用程式,並使用 Dockerfile 定義容器的構建過程。
  2. 建立 Docker 容器:根據映像檔創建並運行容器。
  3. 部署和管理:容器可以在任何支持 Docker 的系統上運行,無論是開發、測試還是生產環境

🚀 Docker 優勢:

  • 快速啟動:容器啟動速度比虛擬機更快,因為它不需要啟動完整的操作系統。
  • 跨平台運行:容器可以在不同的環境(如開發環境、測試環境、雲端等)無縫運行。
  • 資源效率:容器共享宿主操作系統的內核,節省了運行的資源。

⚙️ Kubernetes 是什麼?

Kubernetes 是一個開源的容器編排平台,用於自動化容器的部署、擴展和管理。它提供了一個高效的方式來管理大規模的容器應用程式,並讓應用程式能夠自動擴展。

✏️ 白話解釋:

  • 如果 Docker 容器是一個“單一的應用程式盒子”,那麼 Kubernetes 就是“管理和協調這些盒子的主管”。
  • 當你有數百或數千個容器時,手動管理會變得非常繁瑣,這時 Kubernetes 就能幫你自動化這些工作,如調度容器、負載平衡、健康檢查等。
  • 🧠 Kubernetes 的工作原理:
  1. Pod:Kubernetes 中最小的部署單位,一個 Pod 可以包含一個或多個容器。
  2. Node:Node 是 Kubernetes 集群中的工作機器,可以是虛擬機或物理機。
  3. Service:Kubernetes 提供 Service 來實現容器之間的通信,並讓它們可以通過固定 IP 地址訪問。
  4. Deployment:負責控制容器應用程式的部署和擴展。

🚀 Kubernetes 優勢:

  • 自動擴展:根據負載自動增加或減少容器數量,保持應用程式的高可用性。
  • 高可用性:Kubernetes 會自動處理容器的健康檢查,並根據需要替換故障容器。
  • 負載平衡:Kubernetes 提供自動的負載平衡機制,確保請求均勻分配到各個容器。
raw-image

🚀 總結

  • Docker 是一個容器平台,讓應用程式和其依賴一起被打包並能夠快速部署。
  • Kubernetes 則是幫助管理和協調大量容器的編排平台,適用於大規模的應用程式部署。
  • VM容器 兩者各有優勢,選擇取決於應用需求,容器更加輕量,適合微服務,而虛擬機則適合需要完整操作系統的環境。
avatar-img
hello maple
1會員
40內容數
各種工作及生活中的小小紀錄
留言
avatar-img
留言分享你的想法!
hello maple 的其他內容
在現代網路與雲端架構中,負載平衡(Load Balancer)、橫向擴展(Scale Out)、以及 API 溝通機制是不可或缺的基礎。本文帶你快速理解負載平衡如何分散流量、系統如何透過擴展應對成長需求,以及 API 在不同服務間扮演的溝通角色。
本文介紹Terraform、IaC和CI/CD等MIS相關概念,並以淺顯易懂的方式說明其用途和優點,適合產品經理(PM)快速瞭解。
本文深入淺出地解釋SLA、SLO、SLI三個關鍵指標在MIS維運、雲端、資安專案中的重要性與應用,並提供設定與協調這些指標的實用建議,適用於PM、工程師及客戶。
在現代網路與雲端架構中,負載平衡(Load Balancer)、橫向擴展(Scale Out)、以及 API 溝通機制是不可或缺的基礎。本文帶你快速理解負載平衡如何分散流量、系統如何透過擴展應對成長需求,以及 API 在不同服務間扮演的溝通角色。
本文介紹Terraform、IaC和CI/CD等MIS相關概念,並以淺顯易懂的方式說明其用途和優點,適合產品經理(PM)快速瞭解。
本文深入淺出地解釋SLA、SLO、SLI三個關鍵指標在MIS維運、雲端、資安專案中的重要性與應用,並提供設定與協調這些指標的實用建議,適用於PM、工程師及客戶。
本篇參與的主題活動
提升手作銷售額的關鍵在於審美,本文提供一套「懶人秒速判斷法」,從色彩掌握力、材質敏銳度、留白與呼吸感、整體故事感及比例掌握五個面向,全面檢視作品的美感戰力,幫助手作賣家提升作品質感及品牌價值,衝破訂價天花板。
提升手作銷售額的關鍵在於審美,本文提供一套「懶人秒速判斷法」,從色彩掌握力、材質敏銳度、留白與呼吸感、整體故事感及比例掌握五個面向,全面檢視作品的美感戰力,幫助手作賣家提升作品質感及品牌價值,衝破訂價天花板。