漫談雲端運算 對企業應用系統開發的影響 ·...

3
架構即服務(IaaS) IaaS 廠商包括 IBM 藍雲計畫 Blue Cloud、 Amazon.com 虛擬運算服務 AWS 軟體即服務(SaaS) SaaS 廠商包括 Salesforce.com CRM、 Oracle Siebel On Demand 平台即服務(PaaS) PaaS 廠商包括微軟 Windows Azure 與 Google App Engine 漫談雲端運算 對企業應用系統開發的影響 撰稿 | 國立政治大學資科系 陳恭教授 者 這 學 期 在 學 校 開 了 一 門 新 課:「 雲 端 應 用 程 式 設 計 」, 內 容 包 含 虛 擬 化 (virtualization)、 分 散 式 系 統 的 延 展 性 (scalability)與資料儲存一致性議題(the CAP conjecture, NoSQL)、 雲 端 服 務 的 主 要 類 型 (IaaS, PaaS, SaaS)以及 MapReduce 平行運算。 在程式設計實務方面,學生使用了四種不同的平 台:Heroku、AWS EC2、Google App Engine (GAE) 以及 Hadoop (MapReduce)。 過程中有 一些發現與心得,可以跟企業應用系統的發展趨勢 連結上,遂借此園地與大家分享。 企業朝向私有 PaaS 方向發展 雲端運算透過網路提供服務,一般將服務依內 容分為三大類:基礎設施視為服務(infrastructure as a service,IaaS)、平台視為服務(platform as a service,PaaS)、軟體視為服務(software as a service,SaaS)。因為這門課的主題是關於 雲端程式設計,所以我們聚焦於 PaaS 和 IaaS。 在 PaaS 方面,主要以 Heroku 為主,GAE 為輔; 至 於 IaaS, 則 完 全 以 Amazon Web Services (AWS) 為主。這些服務都是所謂的公共雲(public cloud) 服 務, 而 非 專 屬 於 某 個 組 織 的 私 有 雲 (private cloud)服務。從這些服務的教學與使用 心得中,我們連結到一個正在發展中的企業應用系 統架構的新趨勢:採用 Private PaaS。簡言之,我 們的公共 Paas 的使用經驗,讓我們感受到企業應 用系統的平台將朝向私有 PaaS 的方向發展,以下 將詳細說明。 我們的課從 Heroku 這個以 Ruby 起家的公共 PaaS 開始練習雲端程式開發。它跟版本管理系統 git 充分整合,當程式開發完畢後,只要執行 git 的 「推撥 push」指令,就可輕鬆將開發好的 Ruby 程 式佈署(deploy)到 Heroku 平台上。程式中所用 的一些程式庫,Heroku 都會透過相依性分析,找 到引用到的程式庫,匯入佈署,大幅地簡化了佈 署的工作。此外,Heroku 提供應用程式伸縮自如 (elastic)的執行環境,以所謂的 dyno 為服務的 基本單位,對於突然湧進的客戶流量,只需要動態 增加 dyno 的數量,不需要修改程式就可以自動延 展;當然,一旦流量減少,平台提供的 dyno 數量 就會跟著減少,充分反應了雲端運算的特色。 目前雲端運算服務產業主要有三大商業模式 私有 PaaS 應是企業首選 JANUARY 2012 | 叡揚e論壇 第66期 | 37 技術 e 專欄 | Technology

Upload: others

Post on 18-Oct-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

架構即服務(IaaS)

IaaS 廠商包括 IBM 藍雲計畫 Blue Cloud、

Amazon.com 虛擬運算服務 AWS

軟體即服務(SaaS)

SaaS 廠商包括 Salesforce.com CRM、

Oracle Siebel On Demand

平台即服務(PaaS)

PaaS 廠商包括微軟 Windows Azure 與

Google App Engine

漫談雲端運算 對企業應用系統開發的影響

撰稿 | 國立政治大學資科系 陳恭教授

筆者 這 學 期 在 學 校 開 了 一 門 新 課:「 雲

端 應 用 程 式 設 計 」, 內 容 包 含 虛 擬 化

(virtualization)、 分 散 式 系 統 的 延 展 性

(scalability)與資料儲存一致性議題(the CAP

conjecture, NoSQL)、 雲 端 服 務 的 主 要 類 型

(IaaS, PaaS, SaaS)以及 MapReduce 平行運算。

在程式設計實務方面,學生使用了四種不同的平

台:Heroku、AWS EC2、Google App Engine

(GAE) 以及 Hadoop (MapReduce)。 過程中有

一些發現與心得,可以跟企業應用系統的發展趨勢

連結上,遂借此園地與大家分享。

企業朝向私有 PaaS 方向發展

雲端運算透過網路提供服務,一般將服務依內

容分為三大類:基礎設施視為服務(infrastructure

as a service,IaaS)、平台視為服務(platform

as a service,PaaS)、軟體視為服務(software

as a service,SaaS)。因為這門課的主題是關於

雲端程式設計,所以我們聚焦於 PaaS 和 IaaS。

在 PaaS 方面,主要以 Heroku 為主,GAE 為輔;

至 於 IaaS, 則 完 全 以 Amazon Web Services

(AWS) 為主。這些服務都是所謂的公共雲(public

cloud)服務,而非專屬於某個組織的私有雲

(private cloud)服務。從這些服務的教學與使用

心得中,我們連結到一個正在發展中的企業應用系

統架構的新趨勢:採用 Private PaaS。簡言之,我

們的公共 Paas 的使用經驗,讓我們感受到企業應

用系統的平台將朝向私有 PaaS 的方向發展,以下

將詳細說明。

我們的課從 Heroku 這個以 Ruby 起家的公共

PaaS 開始練習雲端程式開發。它跟版本管理系統

git 充分整合,當程式開發完畢後,只要執行 git 的

「推撥 push」指令,就可輕鬆將開發好的 Ruby 程

式佈署(deploy)到 Heroku 平台上。程式中所用

的一些程式庫,Heroku 都會透過相依性分析,找

到引用到的程式庫,匯入佈署,大幅地簡化了佈

署的工作。此外,Heroku 提供應用程式伸縮自如

(elastic)的執行環境,以所謂的 dyno 為服務的

基本單位,對於突然湧進的客戶流量,只需要動態

增加 dyno 的數量,不需要修改程式就可以自動延

展;當然,一旦流量減少,平台提供的 dyno 數量

就會跟著減少,充分反應了雲端運算的特色。

目前雲端運算服務產業主要有三大商業模式

私有 PaaS 應是企業首選

JANUARY 2012 | 叡揚e論壇 第66期 | 37

技術 e 專欄 | Techno logy

在應用程式所需的服務方面,Heroku 提供了

快取記憶(memcache)、記錄(logging)與關聯

式資料庫(PostgreSQL)等常用的服務。透過開放

的介面,Heroku 以 addon 方式,提供了許多豐富

的第三方服務,例如:MongoDB, Amazon RDS,

MoonShado SMS 等等。最後,在程式語言方面,

除了 Ruby 以外,Heroku 也陸續支援 Java, PHP,

Python, Scala 等語言與一些常用的應用程式框架,

例如:Ruby on Rails, Django 等。

公有 PaaS 三大隱憂

雖然像 Heroku 這樣的公共 PaaS 非常容易上

手,也可以減少維護管理系統底層的成本,非常

利於初創業的團隊組織。但我們也觀察到一些不

盡理想之處與一些問題,如果大型應用程式或大

型企業組織要使用,恐怕會因這些問題而怯步。

這裡面有對公共 PaaS 的一般性擔憂,也有實

際接觸久後才會有的經驗。

隱憂一:鎖定(lock-in)的問題

一旦你採用一個公共的 PaaS,你就會被鎖定。因

為要從一個供應商將應用程式搬移到到另一個,勢

必需要大量的改寫。如果 PaaS 供應商的服務有一

些關鍵性變化,尤其是與定價有關的規則,鎖定也

可能導致嚴肅的成本問題(Google 最近針對 GAE

的價格增加就是一例)。更別提如果供應商破產,

對客戶業務所造成的傷害。此外,開發所使用的程

式語言有時候也會成為客戶對鎖定的擔憂,PaaS

勢必要朝提供多語言的平台服務發展。上述 Heroku

的多語言服務以及微軟的 Azure 雲端平台開始支援

Java,就是這樣的發展趨勢之例證。

隱憂二:排除問題或程式除錯的複雜度比較高

因為 PaaS 提供應用程式各種平台性的服務,關係

密切。應用程式出問題時,必須提供足夠且清楚的

資訊以利客戶對症下藥排除問題。這方面 PaaS 要

比IaaS與SaaS來得麻煩:IaaS以虛擬化服務為主,

其他都交由客戶自主掌握,問題較為單純;SaaS

管理一切,必須全權負責,也較好問責。但 PaaS

處在中間,問題歸屬的判斷相對複雜。這也是為什

麼 Heroku 要提供詳細的記錄服務,來協助客戶辨

識應用程式的問題所在,以利程式除錯的工作。找

到問題後,如果是 PaaS 方面的疏失,供應商是否能

提供即時的客戶服務,也會是用戶的一大關切。

隱憂三:PaaS 的版本維護問題

任何服務性的軟體,或是因為嚴重的瑕疵,或是應

客戶要求,都免不了要定期改版。公共 PaaS 因必

須同時滿足眾多客戶的需求,更是有可能因為某些

(重要)客戶的要求而改版。但改版的結果,很可

能導致另一群客戶的應用程式出問題,無法順利運

作。偏偏公共 PaaS 很難依個別客戶的需要而改變它

的改版計畫,因此對企業用戶而言,既要擔心所使用

的公共 PaaS 無法配合自己的改版時程要求,也要

面對因 PaaS 改版造成原有應用程式無法順利運行的

頭痛問題。

提 供 企 業 客 戶 關 係 管 理 服 務 的 Salesforce.

com,今天宣布將以 2.12 億美元現金買下雲

端平台公司 Heroku,以拓展至快速成長的

社群媒體及行動領域,並加強它以網路為基

礎之分享軟體產品陣容,這也是 Salesforce.

com 所進行過的最大併購案。

2007 年在舊金山創立的 Heroku 公司,是一

個快速成長的 Ruby 程式語言軟體網路雲端

系統,而 Ruby 一般被認為更輕巧,程式的

呼叫也更友善,並可立即更新資訊,且越來

越 被 廣 為 運 用 在 開 發 行 動 及 社 群 軟 體 上,

例如 Twitter 和 Groupon,都是仰賴此程式語

言來開發他們的軟體,也因此,隨著越來越

多新公司在 Ruby 和 Java 間選擇前者。

小檔案

| 叡揚e論壇 第66期 | JANUARY 201238

技術 e 專欄 | Techno logy

最後,應用程式所需的服務設施非常多,公共

PaaS 不見都能提供,即使有,可能還有版本匹配的

問題。針對此點,Heroku 以開放的 API,跟其他

的服務提供商合作,讓客戶可以輕鬆使用第三方的

服務。這樣開放式設計的出發點很好,但是實務上

有一些狀況,會讓客戶無法充分掌控自己應用系統

的服務品質,而可能考慮放棄使用公共 PaaS。舉一

實例說明如下,某小型軟體服務廠商使用 Heroku

開發與佈署它的電子商務網站應用程式,同時也採

用了其他三個服務提供商的服務。可是這三個服務

廠商與 Heroku 各有個的維護期間,所以廠商的網

站就必須配合它們的時程,在不同時段暫停自己的

服務。如此一來,這網站就會有過多的服務中斷時

程,造成大大的不便。最後,這家廠商決定將網站

移往亞馬遜提供的公用 IaaS 平台,自己建立各種

所需要的平台與服務。

這裡就帶出企業在將應用系統往雲端平台搬移

時所要考量的一些議題,其中基本的重點就是:如

何在控制與生產力之間取得平衡。目前大多數已開

始往雲端發展的大型企業,都只是採用虛擬化技術

來降低基礎建設(主要是硬體設備,如伺服器與大

量資料儲存設備)的成本,尚未建置如 IaaS 或是

PaaS 私有雲。這個階段,內部的 IT 管理人員的適

應上應該比較容易,因為只是少了實體設備,對於

各種系統面的控制還是可以充分掌握。但是,當真

的往 IaaS 或是 PaaS 方向發展時,就可能因為這些

新的系統運作模式在可控制性上有大幅度的差異而

會感到遲疑,甚至抗拒。公有雲的服務對這些大企

業的 IT 人員而言,第一個反應可能就是對無法充分

控管而感到不安,所以必然多半會朝私有雲發展。

PaaS 開發快彈性高

接著就是要選擇 IaaS 或是直接朝 PaaS 邁進?

根據我們使用 PaaS 的經驗,應用系統開發人員應

該是會偏向 PaaS,因為開發與佈署都變得容易多

了;但是 IT 管理人員可能就會先選擇 IaaS,因為

可以有比較多的控制。此外,既有程式的搬移,

IaaS 也相較容易。不過,從應用系統的使用單位

(往往是付費者)來看,開發快速加上機動與彈性

的調整可能才是價值所在,因此,我們認為雖然兩

者還是會並存,但是 PaaS 的發展更具爆發力。尤

其 PaaS 可以視為市場上眾多應用伺服器必然要發

展的下一步,在這些廠商的激烈競爭下,私有的

PaaS 應該很快就會有成熟的產品推出。

雲端層級

平台

技術 特性

計價方式

開發環境、語言多樣性

是否提供其他 App

版本控管

可移植性

資料庫類別

PaaS

Windows Azure

整合不同裝置與網路服務

用多少付多少

RDS

PaaS

Google App Engine

可彈性擴充運算與儲存資源

用多少付多少

Big table

IaaS

Amazon EC2

客製化的虛擬機器

用多少付多少

RDS

大廠雲端服務分析

資料來源:叡揚資訊、IThome

Windows Google Amazon

JANUARY 2012 | 叡揚e論壇 第66期 | 39