談起雲端,此一術語被誤解的程度,或許會令許多產業人士感到訝異,它通常被認為只是流行語或是毫無內涵的名詞。儘管遭到濫用,雲端事實上確是一個重要概念,而且肯定不會是曇花一現的風潮。
美國國家標準與技術研究所 (National Institute of Standards and Technology,NIST) 對於雲端運算給了相當不錯的定義,其中可分為五大特點:
另外,廣泛的網路存取中部分涉及到了 API 的概念。假如服務未公開 API,就不算真的雲端。雲端服務,特別是開放雲端服務,應該能夠提供用戶程式化存取。
雲端服務有幾種常見的類型:
軟體即服務 (Software-as-a-Service,PaaS):像是 Dropbox、Google Docs、Salesforce.com、ownCloud 都算是 SaaS。它們是提供網路為基礎應用程式或服務的軟體。在此服務下,相當多細節從用戶端被抽象化,用戶無需知道背後的作業系統為何,或耗用了多少系統資源,用戶也不必擔心軟體升級與軟體相依性等。
平台即服務 (Platform-as-a-Service,PaaS):PaaS 是替開發者照料基礎架構、中介軟體、系統流程的服務或堆疊,好讓他們專心在應用程式開發上。例如 Google AppEngine、Engine Yard,或是開放源碼的 OpenShift。
架構即服務 (Infrastructure-as-a-Service,IaaS):最後則是 IaaS。用戶可以撥用運算、儲存、網路資源,但底層細節仍然被抽象化。舉例來說,你可以使用 CloudStack 或 Amazon EC2 配置一個相當於 2 顆 2.0 GHz 的 Xeon CPU,4GB 記憶體,100GB 儲存空間,加上一個公開 IP 位址。
在開放雲端陣營,著名的 IaaS 包括 Apache CloudStack、Eucalyptus、OpenStack。非開放陣營則有 Amazon Web Services EC2 與 Google Compute。
IaaS 的好處在於,IaaS 用戶不需要知道它的工作原理,可是如果你想要自行部署 IaaS,了解其做法會很有幫助。最簡單的方式是把 IaaS 雲端想成一種後設作業系統,它會指揮個別 hypervisor、網路元件、儲存裝置或伺服器的運作,就像是 Linux 負責管理你的伺服器、桌機、筆電、行動裝置一樣。
聽起來雖然複雜,而且設定 IaaS 的確並不簡單,但並非你所想像的那麼高難度。拿 Apache CloudStack 當例子好了,會有一套應用程式在一台或多台主伺服器上運作,與 hypervisor、儲存設備、網路裝置溝通。它提供了 API 或基於 Web 的使用介面,供管理者與用戶管理資源。
對於大規模操作或必須程式化管理資源,以及需要讓用戶自行依需配撥資源,並隔離個別用戶資源的環境,甚至為了避免濫發管理權限,這種做法都具有相當強大的功能。因為 Linux 與開放系統才使得此一規模成為可能,且對於運行今日的組織與應用程式來說,都是不可或缺的。
擁有開放的雲端之所以事關重大,在於我們需要在更大規模上,延續 GNU、Linux 社群過去 20 多年來的努力成果,也因為我們必須讓這朵雲比 Amazon 或其他私有公司更加龐大,更因為用戶與組織應該在大規模運算上,享有和過去在單一伺服器時同樣多的控制權。
所以說,雖然許多人或許已經厭煩再聽到雲端這個雲端那個了,但雲端不會這麼快結束。如果你關注軟體自由的話,這就是新一代的軟體自由。