Infrastructure as a service (IaaS) 這是由傳統的虛擬主機演化而來的雲應用模式,有別於以往的虛擬主機服務,IaaS提供的不是實體的主機,而是一個一個的VM(virtual machine),這些VM執行於IaaS提供者的機房某台電腦中,當企業要求更多的CPU或是儲存空間時,IaaS會視實體電腦負載情況,選擇於目前電腦開另一個VM,或是在另一台實體電腦開另一個VM來提供服務,由於CPU數及儲存空間升級無限制的特色,因此IaaS被認定為是雲端的一種實現模式。
Platform as a service (PaaS) PaaS也是由虛擬主機而演化來的一種雲服務,實體運作模式類似於IaaS,但PaaS較特殊之處在於限制用戶使用特定的作業系統及開發語言。簡而言之,PaaS提供的是一個開發平台,在這個開發平台上執行何種作業系統、使用何種程式語言、資料儲存於何種資料庫中,完全由PaaS提供者所掌控,用戶沒有選擇的權利。和IaaS的實際運行模式相同,PaaS的網站一樣是運行在VM中,對於運算資源及儲存資源的收費也大致與IaaS類似。
當然!這只是我理想化的思考,現實情況很難達到這樣的應用,畢竟對於PaaS廠商而言,運算資源的計費方式比開發平台特定服務的計費來得簡單且有利。PaaS的廠商目前以Microsoft的Windows Azure Platform、Google的Google App Engine及Salesforce.com所提供的諸多服務為指標廠商。 Software as a service (SaaS) 與IaaS及PaaS截然不同,SaaS著重在提供軟體給用戶使用,用戶透過瀏覽器或其它特定工具連上網際網路,進而使用SaaS廠商所提供的軟體。簡單的說,是軟體租賃的另一種模式。目前較著名的SaaS指標就是Salesforce.com的CRM、Google的Google Docs及Gmail,還有Microsoft的Live Mail及Live Mash。
Microsoft Windows Azure Platform Microsoft於2008年開始將其雲的實作體,Windows Azure Platform釋出給眾多開發人員進行測試,與其它PaaS廠商相同,Windows Azure提供的是以Windows為作業系統,以.NET Language為開發語言的開發平台,不過在2009年中,Windows Azure除了.NET Language外,也開始接受PHP語言,因此現在設計師可以自由的選擇是要以.NET Language(VB.NET、C#...),或是PHP來開發Windows Azure應用程式。
Windows Azure大概可以區分為兩個區塊,一個是Azure平台本身,這個平台允許設計師撰寫ASP.NET網站並發佈到雲上,這意味著你的使用者都將連上Microsoft所提供的雲,而你的ASP.NET網站程式也將執行於雲內的IIS 7。
另一個區塊是屬於平台提供的服務,例如用來儲存大量、複雜資料的Microsoft SQL Data Services、用來與Windows Live結合的Live Services,提供Azure上程式特定服務,如使用者認證、Service Bus的Microsoft .NET Services。
需注意的是,Azure Platform與其它PaaS相同,將運算資源及資料服務分開計費,因此當在申請試用時,我們也得先至[http://www.microsoft.com/taiwan/azure/default.htm]申請Azure的試用帳號,然後再申請Microsoft SQL Data Services的帳號。
Windows Azure將應用程式分成兩個角色,一個是接受外部連入的Web role,也就是大家熟知的ASP.NET網站應用程式,與以往的ASP.NET網站應用程式不同,Web role的ASP.NET應用程式是執行在雲中的。
Fabric Controller可以動態的增加Web role、Worker Role所能使用的運算資源,還能在錯誤出現時,即時的將應用程式移到另一台電腦上執行。開發人員同時也可利用較熟悉的開發環境:Visual Studio 2008,其提供的Azure Tools for Visual Studio 2008,快速地開發出Azure的應用程式。
Google App Engine Google App Engine也是一種PaaS的雲實現體,其規定開發者使用Phyton或是Java語言。目前Google App Engine有開放免費試用,因此讀者們可先行至[http://code.google.com/intl/zh-TW/appengine/]進行註冊並下載SDK來試用。