虛擬化技術讓我們可以在一台實體電腦上運行多個虛擬機器(VM)。這些虛擬機器就像獨立的電腦,但它們共享同樣的計算能力。可以說,這就像是一台電腦裡面有另一台電腦。
許多雲端服務依賴於虛擬化技術。但其他技術,例如容器化和無伺服器計算,變得越來越重要。
如果沒有虛擬化技術,我們每天使用的許多數位服務將無法實現。當然,這是一種簡化,因為某些雲端服務也使用裸金屬基礎設施。
在這篇文章中,你將學會如何在你的筆記型電腦上設置自己的虛擬機器,只需幾分鐘的時間——即使你從未聽說過雲端計算或容器。
目錄1 — 雲端計算的起源:從大型主機到無伺服器架構2 — 理解虛擬化:為什麼它是雲端計算的基礎3 — 使用 VirtualBox 創建虛擬機器最後的想法你可以在哪裡繼續學習?
1 — 雲端計算的起源:從大型主機到無伺服器架構
雲端計算根本改變了資訊科技的面貌,但它的根源比許多人想的要早得多。事實上,雲端的歷史可以追溯到1950年代,當時有大型主機和所謂的無腦終端。
1950年代的大型主機時代:公司使用大型主機,讓多個使用者可以同時透過無腦終端訪問。中央大型主機設計用於高容量、商業關鍵的數據處理。即使雲端服務減少了它們的相關性,大型公司今天仍然在使用它們。
時間共享和虛擬化:在接下來的十年(1960年代),時間共享技術讓多個使用者可以同時訪問相同的計算能力——這是今天雲端的早期模型。大約在同一時間,IBM 開創了虛擬化技術,讓多個虛擬機器可以在一台硬體上運行。
1990年代互聯網和基於網路的應用的誕生:在我出生的六年前,蒂姆·伯納斯-李(Tim Berners-Lee)開發了萬維網,徹底改變了線上溝通和我們的工作與生活環境。你能想像今天的生活沒有互聯網嗎?同時,個人電腦越來越受歡迎。在1999年,Salesforce 革新了軟體產業,推出了軟體即服務(SaaS),讓企業可以透過互聯網使用 CRM 解決方案,而不需要本地安裝。
2010年代雲端計算的重大突破:現代雲端時代始於2006年,當時亞馬遜網路服務(Amazon Web Services, AWS)出現:公司能夠靈活租用基礎設施,如 S3(存儲)和 EC2(虛擬伺服器),而不是購買自己的伺服器。微軟 Azure 和 Google Cloud 隨後推出了 PaaS 和 IaaS 服務。
現代雲原生時代:接下來的創新是容器化。Docker 在2013年讓容器變得流行,隨後在2014年,Kubernetes 簡化了容器的編排。接著是無伺服器計算,AWS Lambda 和 Google Cloud Functions 使開發者能夠編寫自動響應事件的代碼。基礎設施完全由雲端提供商管理。
雲端計算更多是數十年創新的結果,而不是單一新技術。從時間共享到虛擬化再到無伺服器架構,資訊科技的面貌不斷演變。今天,雲端計算是像 Netflix 這樣的串流服務、像 ChatGPT 這樣的 AI 應用以及像 Salesforce 這樣的全球平台的基礎。
2 — 理解虛擬化:為什麼虛擬化是雲端計算的基礎
虛擬化是將實體硬體(如伺服器、存儲或網路)抽象成多個虛擬實例。
多個獨立系統可以在同一物理基礎設施上運行。虛擬化使多個工作負載能夠有效共享資源,而不是將整個伺服器專用於單一應用。例如,Windows、Linux 或其他環境可以在同一台筆記型電腦上同時運行——每個都在獨立的虛擬機器中。
這樣可以節省成本和資源。
然而,更重要的是可擴展性:基礎設施可以靈活地適應不斷變化的需求。
在雲端計算普及之前,公司通常需要為不同的應用維護專用伺服器,這導致高昂的基礎設施成本和有限的可擴展性。如果突然需要更多性能,例如因為網店流量增加,則需要新的硬體。公司必須添加更多伺服器(水平擴展)或升級現有伺服器(垂直擴展)。
這在虛擬化中是不同的:例如,我可以簡單地將我的虛擬 Linux 機器的內存從 8 GB 升級到 16 GB,或將 2 顆核心升級到 4 顆。當然,前提是底層基礎設施支持這樣做。稍後會詳細說明。
而這正是雲端計算所能實現的:雲端由使用虛擬化技術的大型數據中心組成,提供靈活的計算能力——正好在需要的時候。因此,虛擬化是雲端計算背後的一項基本技術。
無伺服器計算是如何運作的?
如果你甚至不需要再管理虛擬機器呢?
無伺服器計算比虛擬化和容器化更進一步。雲端提供商處理大部分基礎設施任務——包括擴展、維護和資源分配。開發者應專注於編寫和部署代碼。
但無伺服器真的意味著不再有伺服器嗎?
當然不是。伺服器仍然存在,但對使用者來說是看不見的。開發者不再需要擔心它們。你只需部署代碼,雲端會自動在管理環境中執行它。資源僅在代碼運行時提供。例如,你可以使用 AWS Lambda、Google Cloud Functions 或 Azure Functions。
無伺服器的優點是什麼?
作為開發者,你不必擔心擴展或維護。這意味著如果在特定事件中流量大幅增加,資源會自動調整。無伺服器計算在功能即服務(Function-as-a-Service, FaaS)模型中可以是成本效益高的。如果沒有運行任何東西,你不需要支付費用。然而,一些無伺服器服務有基本成本(例如 Firestore)。
有什麼缺點嗎?
你對基礎設施的控制權大大減少,且無法直接訪問伺服器。還有供應商鎖定的風險。應用程序與雲端提供商緊密綁定。
無伺服器的具體例子:沒有自己的伺服器的 API
想像一下你有一個網站,裡面有一個 API 提供用戶當前的天氣。通常,一台伺服器會全天候運行——即使在沒有人使用 API 的時候。
使用 AWS Lambda,情況就不同了:用戶在你的網站上輸入「墨西哥城」並點擊「獲取天氣」。這個請求在背景中觸發一個 Lambda 函數,該函數檢索天氣數據並發送回來。然後,該函數會自動停止。這意味著你不需要一台持續運行的伺服器,也不會產生不必要的費用——你只在代碼執行時付費。
3 — 數據科學家應該知道的容器和虛擬機器——有什麼不同?
你可能聽說過容器。但它與虛擬機器有什麼區別——對數據科學家來說特別重要的是什麼?
容器和虛擬機器都是虛擬化技術。
兩者都可以讓應用程序在隔離的環境中運行。
根據使用情況,兩者各有優勢:虛擬機器提供強大的安全性,而容器在速度和效率上表現更佳。
主要區別在於架構:
虛擬機器虛擬化整個硬體——包括操作系統。每個虛擬機器都有自己的操作系統(OS)。這需要更多的內存和資源。
而容器則共享主機操作系統,只虛擬化應用層。這使得它們顯著輕量且快速。
簡單來說,虛擬機器模擬整台電腦,而容器僅封裝應用程序。
這對數據科學家為什麼重要?
作為數據科學家,你將接觸到機器學習、數據工程或數據管道,因此了解一些關於容器和虛擬機器的知識也很重要。當然,你不需要像 DevOps 工程師或網站可靠性工程師(SRE)那樣深入了解。
例如,當需要完整的操作系統環境時,數據科學中會使用虛擬機器——例如在 Linux 主機上運行 Windows 虛擬機器。數據科學項目通常需要特定的環境。使用虛擬機器,可以提供完全相同的環境——無論可用的主機系統是什麼。
當在雲端訓練深度學習模型時,也需要虛擬機器,特別是使用 GPU。使用 AWS EC2 或 Azure 虛擬機器等雲端虛擬機器,你可以選擇使用 GPU 來訓練模型。虛擬機器還可以完全隔離不同的工作負載,以確保性能和安全性。
在數據科學中,容器用於數據管道,例如 Apache Airflow 在 Docker 容器中運行各個處理步驟。這意味著每一步可以獨立執行,無論是加載、轉換還是保存數據。即使你想通過 Flask / FastAPI 部署機器學習模型,容器也能確保你的模型所需的一切(例如 Python 庫、框架版本)都能正常運行。這使得在伺服器或雲端上部署模型變得非常簡單。
3 — 使用 VirtualBox 創建虛擬機器
讓我們具體一點,創建一個 Ubuntu 虛擬機器。🚀
我在我的 Windows Lenovo 筆記型電腦上使用 VirtualBox 軟體。虛擬機器與你的主操作系統隔離運行,因此不會對你的實際系統造成任何更改。如果你有 Windows 專業版,你也可以啟用 Hyper-V(預設安裝但禁用)。使用 Intel Mac,你也應該能使用 VirtualBox。對於 Apple Silicon,Parallels Desktop 或 UTM 似乎是更好的選擇(我自己沒有測試過)。
1) 安裝 VirtualBox
第一步是從官方 VirtualBox 網站下載安裝檔並安裝 VirtualBox。VirtualBox 安裝時會包括所有必要的驅動程式。
只要你不想用 Python 腳本自動化 VirtualBox,可以忽略有關缺少 Python Core / win32api 的提示。
然後我們啟動 Oracle VirtualBox 管理器:
2) 下載 Ubuntu ISO 檔案
接下來,我們從 Ubuntu 網站下載 Ubuntu ISO 檔案。ISO Ubuntu 檔案是 Ubuntu 操作系統的壓縮映像檔,這意味著它包含了完整的安裝數據副本。我下載 LTS 版本,因為這個版本會獲得 5 年的安全和維護更新(長期支持)。請記住 .iso 檔案的位置,因為我們稍後會在 VirtualBox 中使用它。

3) 在 VirtualBox 中創建虛擬機器
接下來,我們在 VirtualBox 管理器中創建一個新的虛擬機器,並給它命名為 Ubuntu VM 2025。在這裡,我們選擇 Linux 作為類型,Ubuntu(64 位)作為版本。我們還選擇之前下載的 Ubuntu ISO 檔案作為 ISO 映像。也可以在大容量存儲菜單中稍後添加 ISO 檔案。

接下來,我們選擇用戶名 vboxuser2025 和密碼來訪問 Ubuntu 系統。主機名是虛擬機器在網絡或系統中的名稱,不能包含空格。域名是可選的,只有在網絡中有多個設備時才會使用。
然後我們為虛擬機器分配適當的資源。我選擇 8 GB(8192 MB)內存,因為我的主機系統有 64 GB 內存。我建議至少選擇 4GB(4096)。我分配 2 個處理器,因為我的主機系統有 8 顆核心和 16 個邏輯處理器。也可以分配 4 顆核心,但這樣我有足夠的資源給我的主機系統。你可以通過在 Windows 中打開任務管理器,查看 CPU 的性能選項卡下的核心數量來了解你的主機系統有多少核心。

接下來,我們點擊「現在創建虛擬硬碟」來創建虛擬硬碟。虛擬機器需要自己的虛擬硬碟來安裝操作系統(例如 Ubuntu、Windows)。所有程序、文件和虛擬機器的配置都會存儲在這裡——就像在實體硬碟上一樣。默認值是 25 GB。如果你想用虛擬機器進行機器學習或數據科學,更多的存儲空間(例如 50–100 GB)會有助於容納大型數據集和模型。我保持默認設置。
然後我們可以看到虛擬機器已經創建並可以使用:

4) 使用 Ubuntu 虛擬機器
我們現在可以像使用正常的獨立操作系統一樣使用新創建的虛擬機器。虛擬機器與主系統完全隔離。這意味著你可以在裡面進行實驗,而不會改變或危及你的主系統。
如果你是 Linux 新手,可以嘗試基本命令,如 ls、cd、mkdir 或 sudo,以熟悉終端。作為數據科學家,你可以設置自己的開發環境,安裝 Python 和 Pandas、Scikit-learn 來開發數據分析和機器學習模型。或者你可以安裝 PostgreSQL,運行 SQL 查詢,而不必在主系統上設置本地數據庫。你還可以使用 Docker 創建容器化應用程序。
最後的想法
由於虛擬機器是隔離的,我們可以安裝程序、進行實驗,甚至摧毀系統,而不會影響主系統。
讓我們看看虛擬機器在未來幾年是否仍然相關。隨著公司越來越多地使用微服務架構(而不是單體架構),使用 Docker 和 Kubernetes 的容器將變得更加重要。但了解如何設置虛擬機器以及它的用途肯定是有用的。
我簡化技術以滿足好奇的心靈。如果你喜歡我關於 Python、數據科學、數據工程、機器學習和 AI 的技術見解,考慮訂閱我的 substack。
你可以在哪裡繼續學習?
本文由 AI 台灣 運用 AI 技術編撰,內容僅供參考,請自行核實相關資訊。
歡迎加入我們的 AI TAIWAN 台灣人工智慧中心 FB 社團,
隨時掌握最新 AI 動態與實用資訊!