2010年5月24日

雲端運算及其應用

認識雲端運算(Cloud Computing)
  
 雲端運算可 說是這兩年來資訊科技界最熱門的話題,此種運算方式何以稱為『雲端運算』,我們可從wiki上對於雲端運算的說明有個初步瞭解:「雲端運算是一種 基於網際網路的運算新方式,由於資源是在網際網路上,而在電腦流程圖中,網際網路常以一個雲狀圖案來表示,因此可以形象地類比為雲端」【註 1】。
  
 由上述文字說明可知,雲端泛指網路,利用網路連線使用遠端電腦提供的服務或是運用網路串連多台電腦的計算工作都可視為是雲端 運算。雲端運算的出現,使用者將不再需要像以往購買高效能的硬體設備及安裝軟體,只需擁有一台裝有瀏覽器軟體即足以進入雲端的設備,而獲得雲端(亦即遠端 網路)提供的計算能力或所提供的服務。

雲端運算服務類型

  • Infrastructure as a Service(IaaS):基礎架構即服務。業者建置IT基礎建設,管理伺服器及網路頻寬等,使用者利用業者提供的計算資源,建立自己的作業系統環境, 裝設任意應用軟體以完成運算,可視為傳統資料中心(Data Center)的延伸,如IBM Blue Cloud。
  • Platform as a Service(PaaS):平台即服務。業者提供特定的運算平台,使用者在該平台上開發並部署自己撰寫的軟體以完成運算,如Google App Engine支援Python、Java程式設計語言編寫的應用程式,使用者將撰寫完的程式部署至該平台以完成運算。
  • Software as a Service(SaaS):軟體即服務。為目前使用者最常使用的雲端服務,由服務供應者開發軟體供使用者使用,這些軟體完全由服務供應者所控制,如 Google Maps提供使用者地圖查詢、Google Docs提供使用者線上辦公室應用軟體等。

雲端應用程式
  
 本文以下介紹如何在Google App Engine(【註2】)平台開發及部署程式,以Python語言撰寫大家最熟悉的Hello World程式為例說明。

Step1:下載及安裝Python SDK

 Google App Engine網站上說明該平台支援 Python 2.5,因此安裝Python 2.5.x版為佳。下載網址為http://www.python.org/download/

Step2:下載及安裝Google App Engine SDK 

 網址為http://code.google.com/intl/zh-TW/appengine/downloads.html

Step3:申請帳號 

 要在Google App Engine上開發程式,需前往https://appengine.google.com申 請帳號。若已擁有Gmail帳號,可輸入Gmail電子郵件及密碼登入,登入後點擊Create an Application。

 需輸入手機號碼以獲得註冊碼,台灣國碼為886。

 輸入手機收到的Google App Engine Code即可完成Google App Engine帳號註冊。

Step4:建立應用程式識別名稱

 完成帳號註冊後,開始建立應用程式。有兩個欄位需要填寫:Application Identifier是此應用程式唯一的識別名稱,在appspot.com網域上不能與其他名稱重複,用來識別每個網站;Application Title則是此應用程式的標題。此例中,Application Identifier設為app4ascc以及Application title設為proj1。

 由於尚未部署程式到網站上,因此完成上述設定後,Current Version仍為None Deployed狀態。

Step5:在PC上撰寫程式碼

 在PC上建置一個helloworld目錄,此目錄下撰寫如下程式碼並存成helloworld.py。

 除了程式碼之外,helloworld目錄下還需要有一個設定檔app.yaml。

 此設定檔說明關於此應用程式的事項。

 application:此例為ws4ascc,需與Application Identifier一致。
 version:此應用程式 的版本號碼。
 runtime:此程式碼會在那個環境中執行。

Step6:測試應用程式

 執行dev_appserver.py程式會啟動localhost網頁伺服器來測試helloword/目錄下的應用程式。

 開啟瀏覽器並輸入網址http://localhost:8080/即 可察看結果。

Step7:部署應用程式

 測試完畢後,利用appcfg.py上傳應用程式到Google App Engine平台。執行appcfg.py update helloworld/,並輸入Email帳號及密碼即可完成網站程式部署。

 部署完成後,Current Versions狀態從之前的None Deployed改變為版本1。

 在瀏覽器輸入網址http://ws4ascc.appspot.com/可 看到部署完成的程式。

 Google App Engine SDK的demo目錄下有個guestbook程式,讀者可自行部署測試,部署成功將會有簡易的留言版網頁。

 Google App Engine提供Datastore API供程式開發者使用資料庫,需匯入google.appengine.ext.db 模組,請參考guestbook目錄下的範例程式。

結論
  
 雲端運算的效益在於將伺服器、儲存設備等資源集中,且易依據使用者需求彈性配置各類 服務類型,使用者只需透過瀏覽器軟體即可使用各類公用SaaS服務,或是在特定平台上開發Web應用程式,可省下不少的設備建置成本。但將所有資料放在公 用"雲"上,使用者會有資料機密性與安全性的顧慮,因此,政府單位或企業應評估在組織內部建立類雲端運算的可能性,兼顧現有計算資源彈性配置及資訊安全議 題。

附註

【註1】:http://zh.wikipedia.org /zh-tw/雲端運算

【註2】:Google App Engine入門指南
http://code.google.com/intl/zh-TW/appengine/docs/python/gettingstarted/

http://newsletter.ascc.sinica.edu.tw/news/read_news.php?nid=1868

沒有留言:

發佈留言