National Central University
Uedu Main Site
Explore Uedu
Student Console
Register as Member/Login
Research Informed Consent Center
Survey Center
Educational Big Data Challenge
Claim or create a course
Try an AI Scenario Task
Support & Messages
Uptime Data

UeduGPTs

--

Jupyters

3

Local AI

--

Uedu Code

--

中央大學 AQI 78 24°C PM2.5 18
AI Reply Desktop Notifications

Show a desktop notification when the AI TA finishes replying

Chat Message Notifications

Notify me when classmates post messages in the forum

Sound notification

Play an alert sound whenever there is a new notification

Unit 33

雲端運算

租用運算資源:IaaS、PaaS、SaaS 與虛擬化
Interaction 25 minute(s)

Learning Objectives

  • 說出雲端運算的意思,以及 NIST 定義的五個基本特性
  • 說明虛擬化怎麼把一台實體主機分給很多使用者,分辨虛擬機與容器
  • 分辨 IaaS、PaaS、SaaS:各自由誰管理哪一層
  • 分辨公有雲、私有雲、混合雲與社群雲
  • 解釋彈性擴展(水平與垂直)與「用多少付多少」的計價方式,以及使用雲端要注意的事

選課那天系統為什麼會塞爆

選課開放的那一刻,幾千人同時按下「加選」,系統變得很慢甚至打不開;過了幾天,同一套系統幾乎沒人用。 如果學校為了那幾個小時買足夠多的伺服器,一年裡大部分時間它們都閒著;買得不夠,選課當天就會出問題。

雲端運算(cloud computing)的想法是:運算資源不一定要自己買、自己顧,可以向別人租,需要多少就租多少,用完就還。 你的照片自動備份、線上文件、影音串流,背後都是這樣運作的。

美國國家標準與技術研究院(NIST)在 2011 年的文件 SP 800-145 裡,給了雲端運算一個常被引用的定義,包含五個基本特性:

基本特性 意思 生活化的說法
隨選自助服務(on-demand self-service) 自己在網頁上點一點就能開機器,不必找業務人員 像自助點餐
廣泛的網路存取(broad network access) 透過網路、用各種裝置都能使用 手機、筆電都連得上
資源共享(resource pooling) 服務商的大量硬體由很多客戶共用,動態分配 同一棟機房裡,你的虛擬機旁邊可能是別家公司的
快速彈性(rapid elasticity) 資源可以快速增加或減少 選課當天加機器,隔天減回來
可量測的服務(measured service) 用了多少都被計量,可以依用量計費 像水電費

這一課要回答:一台實體主機怎麼分給很多人用、租的時候「你管什麼、服務商管什麼」、雲有哪幾種部署方式,以及彈性擴展與計價怎麼運作。

虛擬化:一台實體主機切成很多台

雲端能「出租」運算資源,靠的是虛擬化(virtualization):用軟體把一台實體主機的 CPU、記憶體、儲存空間切開, 讓好幾個彼此隔離的環境同時在上面執行。

  • 虛擬機(virtual machine,VM):由虛擬化管理程式(hypervisor)模擬出一台完整的電腦,每台虛擬機都有自己的作業系統。 你在雲端租一台 Ubuntu 主機,拿到的通常就是一台虛擬機。
  • 容器(container):多個應用程式共用主機的作業系統核心,每個容器只帶自己需要的程式與函式庫,所以更輕、啟動更快;但隔離程度不如虛擬機。
由下往上 虛擬機 容器
最底層 實體主機 實體主機
第二層 虛擬化管理程式(hypervisor) 主機作業系統(所有容器共用核心)
第三層 每台虛擬機各有一份作業系統 容器引擎(例如 Docker)
最上層 每台虛擬機裡的函式庫+應用程式 每個容器裡的函式庫+應用程式

虛擬化讓服務商可以把很多客戶放在同一批硬體上(資源共享),也可以在幾分鐘內幫你開出新機器(隨選、快速彈性)。

互動練習:虛擬機與容器並排比較

左邊是虛擬機、右邊是容器,下方的長條是記憶體與啟動時間(示意值)。依任務操作:先把「應用程式數量」拉到 8,比較兩邊用掉的記憶體怎麼增加;再按「全部啟動」,比較兩邊要等多久;最後回答下方的問題:哪一邊每個應用程式都有自己的一份作業系統?注意每多一個 App,左邊多出來的是哪幾塊方塊。

服務模型:IaaS、PaaS、SaaS

向雲端租資源,可以租到不同的「高度」。從下往上,一台能執行網站的電腦有這些層:

資料與帳號權限
應用程式(你的網站、程式)
執行環境(Python、資料庫軟體)
作業系統
虛擬化
實體硬體、網路、機房

租的層次越高,你要管的越少,能自訂的也越少:

服務模型 服務商提供 你要管 例子
IaaS(基礎設施即服務) 機房、硬體、網路、虛擬化 作業系統以上:安裝更新、防火牆、軟體、程式、資料 租一台雲端虛擬機,自己裝 Ubuntu 與網頁伺服器
PaaS(平台即服務) 再加上作業系統與執行環境 自己的程式與資料 把寫好的程式上傳到應用程式平台,平台幫你執行、擴展
SaaS(軟體即服務) 整套軟體 自己的資料與帳號權限 線上文件、雲端信箱、線上試算表、學校的學習平台

自己買伺服器放在自己的機房,叫地端(on-premises),全部都要自己管。

不管是哪一種模型,資料與帳號權限永遠是你的責任:服務商顧好機房與系統,但把檔案設成「任何人都能看」、密碼外洩,仍然是使用者這一端的問題。 這種「各管一部分」的分工常被稱為責任共擔(shared responsibility)。

互動練習:誰管哪一層

上方的按鈕可以切換地端、IaaS、PaaS、SaaS。依任務先把 IaaS、PaaS、SaaS 各切換一次,看堆疊中標示「你」和「雲端商」的分界線往哪裡移動。接著回答下方三個情境配對:每個情境選一種最適合的服務模型。拿不定主意時,問自己一句:作業系統由誰來管?

部署模型:公有雲、私有雲、混合雲

「雲」不一定在別人的機房。依照誰可以使用、設備屬於誰,NIST 分成四種部署模型:

部署模型 誰可以使用 例子
公有雲(public cloud) 開放給任何付費客戶,大家共用服務商的設備 大型雲端服務商提供的虛擬機、儲存、資料庫服務
私有雲(private cloud) 只給單一組織使用,可以自建,也可以委託別人代管 學校或醫院在自己的機房,用虛擬化平台提供校內單位自助開機
社群雲(community cloud) 幾個需求相近的組織共同使用 數個研究機構共用一套運算平台
混合雲(hybrid cloud) 兩種以上組合起來,資料與工作可以在之間移動 敏感的個人資料留在私有雲,對外的網站放在公有雲,尖峰時把運算移到公有雲

選擇時常考慮的因素:

  • 資料放在哪裡:個人資料、病歷、研究資料可能有法規或合約限制,要知道資料存放在哪一個國家或地區
  • 成本與彈性:公有雲不必先買設備、可以隨時增減;用量長期穩定且很大時,自建不一定比較貴
  • 控制權:私有雲可以自己決定硬體與安全設定,但也要自己顧

想一想:服務模型與部署模型

1.

一門課的同學要一起編輯同一份線上試算表,打開瀏覽器就能用,不必安裝也不必管伺服器。這屬於哪一種服務模型?

2.

你在雲端租了一台虛擬機,自己安裝 Ubuntu 與網頁伺服器。作業系統的安全性更新應該由誰負責?

3.

一家醫院把病歷資料庫放在自己機房的虛擬化平台,對外的掛號網站放在公有雲。這是哪一種部署模型?

第 1 次作答

彈性擴展:流量來了加機器,走了減機器

伺服器忙不過來時,有兩種擴展方式:

方式 做法 特點
垂直擴展(scale up) 換一台更強的機器:更多 CPU、更多記憶體 程式不用改;但單台機器有上限,換機器時常要停機
水平擴展(scale out) 多開幾台一樣的機器,前面放負載平衡器分配請求 幾乎可以一直加;程式要設計成多台一起跑也沒問題

雲端最常用的是自動擴展(auto scaling):設定一條規則,例如「平均 CPU 使用率連續一段時間超過 70% 就加一台,低於 30% 就減一台」, 由系統依實際流量自動增減。尖峰時多開幾台撐住,離峰時減少台數,不必一直為了最忙的那幾個小時付錢。

互動練習:自動擴展

模擬器每 0.6 秒前進一個時間單位,伺服器的處理能力、回應時間與費用都是示意值。依任務操作:先不要勾選自動擴展,按「上課尖峰(600)」把流量拉到尖峰,看回應時間變多慢;接著勾選「開啟自動擴展」,流量維持在上課尖峰,觀察伺服器一台一台加上去,直到回應時間回到 300 ms 以下(圖上的參考線);最後按「平常(100)」讓流量回落,等一下,看伺服器自動減少。同時留意「累計費用」怎麼增加。

用多少付多少:計價方式與要注意的事

雲端的計價方式像水電費:依用量計算(可量測的服務)。常見的計價單位:

資源 怎麼計
虛擬機 依規格(CPU 核心數、記憶體)× 開機的時間;關機通常就不計運算費用,但磁碟仍持續計費
儲存空間 依存放的容量 × 時間
網路流量 常常是傳出雲端的流量另外計費
按次計價(無伺服器) 不必開一台一直待命的機器,依請求次數與實際執行時間計費;沒人使用時幾乎不花錢

好處是不必先花一大筆錢買設備,也不必猜未來的用量;但也有要注意的地方:

  • 開著就計費:做完實驗忘了關機、忘了刪除不用的磁碟,月底會收到意外的帳單。多數服務商可以設定預算提醒。
  • 費用不容易預估:流量暴增時費用也跟著增加;長期穩定的大量使用,租用不一定比自建便宜。
  • 廠商綁定(vendor lock-in):用了某家服務商特有的功能,日後要搬到別家就比較麻煩。
  • 依賴網路與服務商:網路斷了、服務商出問題時,服務也跟著停;重要的系統會分散在多個區域備援。

價格會依服務商、區域、方案而不同,也常常調整,要以官方的計價頁面為準;學生方案與免費額度也常有變動。

互動練習:估算雲端費用

所有單價都是示意值,只用來理解「怎麼算」,不是任何服務商的報價。依任務操作:先選一個 vCPU 與記憶體的規格,看虛擬機每月大約多少錢;再把「每天開機(小時)」從 24 降到 8 小時以下,看每月省了多少,也對照「如果 24 小時都開著」那一列;最後調整「每月請求(萬次)」,比較按次計價在請求少與請求多時,什麼時候比較划算。

想一想:擴展與計價

1.

選課系統在選課當天多開了 5 台一樣的伺服器,由負載平衡器分配請求;選課結束後再減回來。這是哪一種做法?

2.

同學在雲端開了一台虛擬機做期末專題,報告完一直沒關機也沒刪除。最可能發生什麼事?

第 1 次作答

重點整理

  • 雲端運算是透過網路,依需要租用運算資源;NIST SP 800-145(2011)列出五個基本特性:隨選自助、廣泛網路存取、資源共享、快速彈性、可量測的服務。
  • 虛擬化把一台實體主機切成多個隔離的環境:虛擬機各有作業系統,容器共用主機核心、更輕更快。
  • 服務模型:IaaS 租到虛擬機(作業系統以上自己管)、PaaS 只管程式與資料、SaaS 直接用軟體;資料與帳號權限永遠是使用者的責任。
  • 部署模型:公有雲、私有雲、社群雲、混合雲;選擇時考慮資料存放地點、成本、彈性與控制權。
  • 擴展:垂直擴展換更強的機器,水平擴展多開幾台;自動擴展依流量自動增減。
  • 計價:用多少付多少,開著就計費;注意意外帳單、費用預估、廠商綁定與對網路的依賴。

下一課:系統放上網路之後,要怎麼保護它?我們來看資訊安全:惡意程式、常見的攻擊、加密、雜湊與數位簽章。

想實際在雲端開一台虛擬機、把網站部署上線,可以接著上雲端軌;想學把程式打包成容器,可以接著上 Docker 軌。

這一課完成了!
Next lesson:資訊安全:惡意程式、攻擊與密碼學
你目前沒有登入,學習進度只存在這個瀏覽器。 Login 後,進度會跟著帳號,換電腦也看得到。