Learning Objectives
- 說明專題網站為什麼需要一台「一直開著、大家連得到」的電腦,以及雲端怎麼解決這件事
- 說出雲端運算的幾個特徵:隨需取用、用多少付多少、彈性擴展
- 分辨 IaaS、PaaS、SaaS 三種服務模型中,哪些層由你管、哪些層由雲端服務商管
- 分辨公有雲、私有雲與混合雲的差別與適合的情境
期末專題的網站要放在哪裡?
你和組員寫好了一個 Flask 網站,想讓全班用手機連進來投票。問題來了:這個網站要放在哪一台電腦上執行?
| 放在哪裡 | 會遇到的問題 |
|---|---|
| 自己的筆電 | 闔上螢幕、帶出門、沒電,網站就跟著停;家裡或宿舍的網路通常沒有固定的對外 IP,別人連不進來 |
| 宿舍買一台主機 | 要先花一筆錢買硬體;平常多半閒著,尖峰時又可能撐不住;停電、硬碟壞掉都要自己處理 |
| 學校或公司的機房 | 可靠,但要申請、排隊,而且容量是事先買好的,不容易臨時加大 |
| 向雲端服務商租用 | 用瀏覽器點幾下就有一台遠端的電腦,用完關掉;硬體、電力、網路由服務商負責 |
網站要讓別人隨時連得到,就需要一台一直開著、有對外網路位址的電腦,這種電腦叫伺服器(server)。 雲端運算(cloud computing)做的事,就是把伺服器、儲存空間、網路這些資源,變成像水電一樣: 需要時打開、用多少算多少、不用時關掉。背後的機器放在哪個機房、長什麼樣子,你不需要知道。
這條軌道的六堂課,會帶你從「雲端是什麼」一路走到「把網站部署上線」。
雲端運算的幾個特徵
「放在網路上」不等於雲端。一般說的雲端運算,通常同時具備下面這些特徵:
| 特徵 | 意思 | 例子 |
|---|---|---|
| 隨需自助(on-demand self-service) | 自己在網頁主控台或指令列上建立資源,不必打電話、等人處理 | 半夜兩點想要一台主機,幾分鐘內就開好 |
| 用多少付多少(pay-as-you-go) | 依使用時間或用量計費,不必先買下整台機器 | 專題展示只開一個晚上,就只付一個晚上的錢 |
| 彈性(elasticity) | 資源可以隨需求增加或減少 | 選課當天多開幾台,隔天再關掉 |
| 資源共用(resource pooling) | 服務商把大量實體機器切開,分給很多客戶使用(多租戶,multi-tenancy) | 你的虛擬機和陌生人的虛擬機,可能在同一台實體主機上,但彼此隔離 |
| 透過網路存取(broad network access) | 用筆電、手機、程式都能透過網路使用 | 在家裡用 SSH 登入雲端主機 |
「用多少付多少」反過來說就是:開著就在計費。忘了關掉的主機,月底會變成帳單。第 05 課會用模擬器算一算。
三種服務模型:IaaS、PaaS、SaaS
讓一個網站上線,要準備很多層東西:從最底下的實體硬體,到作業系統、執行環境,最上面才是你的程式和資料。 三種服務模型的差別,就是服務商幫你管到哪一層:
| 層 | 地端(自己的機房) | IaaS | PaaS | SaaS |
|---|---|---|---|---|
| 資料與帳號權限 | 你 | 你 | 你 | 你 |
| 應用程式(你的網站) | 你 | 你 | 你 | 服務商 |
| 執行環境(Python、資料庫軟體) | 你 | 你 | 服務商 | 服務商 |
| 作業系統(Ubuntu、Windows) | 你 | 你 | 服務商 | 服務商 |
| 虛擬化(虛擬機) | 你 | 服務商 | 服務商 | 服務商 |
| 實體硬體(伺服器、網路、機房) | 你 | 服務商 | 服務商 | 服務商 |
- IaaS 基礎設施即服務(Infrastructure as a Service):租到一台「空的」虛擬機,作業系統以上自己裝、自己設定。彈性最大,要管的也最多。第 03、04 課就是在做這件事。
- PaaS 平台即服務(Platform as a Service):把程式碼交給平台,平台負責作業系統、執行環境與擴展。你專心寫程式,但能調整的設定比較少。
- SaaS 軟體即服務(Software as a Service):直接使用別人做好的軟體,例如線上文件、雲端信箱、線上試算表。
常見的比喻是吃披薩:IaaS 像買冷凍披薩回家自己烤,PaaS 像叫外送(披薩做好了,你自己擺桌),SaaS 像直接去餐廳吃。 越往右,你越省事,但能自己決定的也越少;選哪一種,是在「掌控權」與「省事」之間取捨。
公有雲、私有雲與混合雲
服務模型說的是「服務商幫你管到哪一層」;部署模型說的是「這些機器屬於誰、給誰用」:
| 部署模型 | 機器屬於誰、給誰用 | 適合的情境 |
|---|---|---|
| 公有雲(public cloud) | 雲端服務商擁有,透過網路租給任何付費的客戶 | 專題網站、新創服務、需要快速擴展的應用 |
| 私有雲(private cloud) | 只給單一組織使用,可能放在自己的機房,也可能請廠商代管 | 對資料存放位置有嚴格規定的單位,例如醫院、銀行、政府機關 |
| 混合雲(hybrid cloud) | 私有雲與公有雲搭配使用,兩邊可以互通 | 敏感資料留在校內或公司內部,對外的網站與運算放在公有雲 |
另外還有多雲(multi-cloud):同時使用好幾家公有雲服務商,避免整套系統綁死在單一服務商,或者各取所長。
私有雲不只是「自己有機房」。重點是它同樣提供隨需自助、彈性分配這些雲端的特徵,只是使用者限定在同一個組織裡。
想一想:服務模型
你租了一台雲端虛擬機,自己安裝 Ubuntu 的更新、Nginx 與防火牆設定。這屬於哪一種服務模型?
使用 PaaS 平台部署 Flask 網站時,下面哪一件事仍然是你的責任?
全班一起在線上試算表填寫分組名單,這是哪一種服務模型?
想一想:雲端的特徵與部署模型
專題展示只需要一個晚上,展示完把雲端主機關掉,就不再付主機的運算費用。這體現了雲端的哪一個特徵?
一所醫院把病歷系統留在院內的機房,對外的掛號網站放在公有雲,兩邊互相串接。這是哪一種部署模型?
重點精華回顧
- 網站要讓別人隨時連得到,需要一台一直開著、有對外網路位址的伺服器;雲端讓你用租的,不必自己買硬體、顧機房。
- 雲端運算的特徵:隨需自助、用多少付多少、彈性、資源共用(多租戶)、透過網路存取。開著就在計費。
- 服務模型看「服務商管到哪一層」:IaaS 給你虛擬機,作業系統以上自己管;PaaS 連作業系統與執行環境都幫你管;SaaS 直接給你現成的軟體。
- 部署模型看「機器屬於誰、給誰用」:公有雲、私有雲、混合雲,另外還有同時使用多家的多雲。
- 不論哪一種模型,資料與帳號權限都是你的責任:用強密碼與兩步驟驗證,不要公開金鑰。