Skip to content

2026-08-08

/ 13 分鐘閱讀

/ Full Stack Fundamentals

為什麼不能用自己的筆電當伺服器:雲端運算、虛擬化與 VPS 的關係

上一篇把伺服器程式碼跑了起來,也在瀏覽器裡看到了畫面。這一節先解釋「那為什麼不能就這樣把自己的電腦當伺服器用」,再從這個問題一路帶到雲端運算、虛擬化,最後停在 VPS(虛擬私有伺服器)這個現代網路應用共通的解法。

為什麼不能直接用自己的電腦當伺服器

伺服器最核心的原則是必須 100% 可用:網頁一旦掛掉,就是在流失使用者與金錢,等於直接抵銷了寫這個應用程式的意義。用自己的筆電當伺服器,會立刻碰到幾個實際問題:

  • 可用性:作業系統需要更新、筆電需要闔上、記憶體可能要拿去玩遊戲,都會讓伺服器停擺
  • 協作:多人要同時開發同一個伺服器時,複製一份各自修改會很快變得混亂,也沒辦法沿用開發伺服器(development server)的工作流程
  • 擴充性:流量成長時,用「多買幾台筆電」來擴充規模並不現實

這些問題呼應了上一篇之前那篇提到的「正式伺服器需要專用硬體」的原因:光靠一台個人電腦,既撐不住持續運作的要求,也沒辦法應付多人協作與流量成長。

伺服器永遠不會只有一台

正式環境的伺服器一定是多台一起運作,而不是單一一台。多台伺服器背後有幾個目的:

  • 備援(redundancy):分攤流量、避免單點故障
  • 容錯移轉(fail over):一台掛掉時其他台能接手
  • 應付停電與更新:更新時讓一半伺服器下線更新、另一半維持運作對外服務,這種做法稱為藍綠部署(red and green,即 blue-green deployment 的另一種說法)

這整套維運多台伺服器的知識,就是伺服器管理(server management)與 DevOps 這個領域,對大多數只接觸前端的工程師來說相對陌生,因為平常很少需要去想「是什麼在支撐這一切正常運作」。

從自建機房到雲端運算

早年(大約十年前)想要有自己的伺服器,做法是在公司放一整排伺服器機架,通常放在建築物的地下室或防火隔間,因為伺服器運作時非常燙。像高盛這類金融公司至今仍有這樣的自建機房。但對一般開發者而言,把伺服器機架放在自己家裡並不現實,插頭一拔、電力一斷,整個服務就跟著掛掉,使用者也不會體諒。

現在普遍的做法是雲端運算(cloud computing):某個地方有一座巨大的資料中心、一整排伺服器機架,使用者只需要向這些伺服器租用時間與資源,而不必自己擁有硬體。這是網頁開發領域重要的轉變之一:20 年前每家公司都得自己養 IT 人員、自己找系統管理員來處理伺服器,現在這些工作可以外包給 AWS、DigitalOcean、Rackspace 這類更專精的雲端服務供應商。雲端運算本身沒有什麼神秘之處,說穿了就是「跟別人租一段伺服器時間」,只是常被當成行銷用的時髦詞彙。

虛擬化:雲端運算真正的關鍵技術

讓雲端運算真正能運作的技術是虛擬化(virtualization):把硬體資源切分成一台一台的虛擬電腦,也就是前面提到「伺服器晶片組之所以跟家用電腦不同」背後的原因之一。以前如果只想跑一個很單純的 Node 伺服器,也得整台租下一顆 32 核心的 Intel 處理器;虛擬化之後,可以只租其中一個核心,等於把那顆 32 核心的處理器變成 32 台獨立的虛擬電腦。

這個概念聽起來簡單,實作上卻相當困難,因為電腦原本的設計是拿來做多工處理(multi-processing)與多執行緒(multi-threading),而不是「一個執行緒對應一個核心」這種切分方式,這對電腦架構來說是相當陌生的用法。早期的雲端運算因此經歷過一段顛簸期,直到後來出現專門擅長處理虛擬化、擅長處理這種一執行緒對一核心模式的處理器,才把這些問題逐漸解決。

虛擬機(virtual machine)則是虛擬化更完整的一種形式:把整台電腦,包含記憶體、硬體、GPU 等所有組成部分,都做成虛擬版本,等於是把電腦整台複製一份出來。但這種做法非常消耗資源,就像把自己的筆電整台複製、再放回硬碟裡一樣,因此現在較少直接使用虛擬機這種方式,只有在真的需要完全一致的複製環境時才會用到。

VPS:現代網路應用的共通解法

接下來課程要實際購買的,是一種稱為 VPS(Virtual Private Server,虛擬私有伺服器)的資源。之所以叫「虛擬」,是因為它本質上是被憑空劃分出來的:可以買四個核心,也可以只買一個核心,數量完全是虛擬化出來的結果。

不論是 Netflix、Facebook,還是其他各種現代網路應用,幾乎都是靠某種形式的 VPS 運作(Facebook 因為使用自有硬體,是比較特殊的例外)。有了這個基礎概念後,接下來會實際去購買一台自己的伺服器:挑選作業系統、理解為什麼選它、學會登入與身份驗證的方式,最終擁有一台真正跑在雲端某處的伺服器。

複習

為什麼不能直接把本機開發伺服器當成正式伺服器使用?

因為本機伺服器沒辦法保持 100% 可用(作業系統要更新、電腦要闔上)、不利於多人協作開發,也沒辦法透過增加硬體來應付流量成長。

什麼是雲端運算,它跟過去自建機房的做法有什麼不同?

雲端運算是向巨大的資料中心租用伺服器時間與資源,不需要自己維護實體伺服器與 IT 人員;相較之下,過去的做法是每家公司自己建置機房、自己聘請系統管理員。

什麼是虛擬化,為什麼它是雲端運算能夠運作的關鍵?

虛擬化是把硬體資源(例如處理器核心)切分成多台獨立的虛擬電腦,讓使用者可以只租用自己需要的一小部分資源,而不必整台硬體都買下來,是雲端運算能夠低成本、有彈性地提供資源的核心技術。

VPS 跟虛擬機有什麼差別?

VPS(虛擬私有伺服器)只虛擬化部分運算資源(如處理器核心),相對輕量;虛擬機則是把整台電腦(記憶體、硬體、GPU 等)都完整複製成虛擬版本,資源消耗大得多,因此現在較少使用。

早期雲端運算的實作面臨了什麼困難?

電腦原本是為多工處理與多執行緒設計的,「一個執行緒對應一個核心」這種虛擬化所需的切分方式與原本的架構相衝突,導致早期雲端運算很不穩定,後來靠專門擅長虛擬化的處理器才逐漸解決。

小測驗

雲端運算在網頁開發中最主要的優勢是什麼? 可以向巨大的資料中心租用伺服器時間與資源
VPS 是什麼的縮寫? Virtual Private Server(虛擬私有伺服器)
早期雲端運算實作面臨的關鍵挑戰是什麼? 把一個執行緒對應到一個核心的做法很難實現

此文章是 FrontendMasters 上的 Full Stack Fundamentals, v3 課程筆記

最後更新時間:

Buy Me A Coffee
0 %
MIT Licensed | Copyright © 2025-present Wen-Hsiu's Blog
Photo by Federica Galli on Unsplash