Windows Azure Cloud Service (38) 微軟IaaS與PaaS比較

來源:互聯網
上載者:User

標籤:des   style   blog   http   io   ar   os   使用   sp   

  《Windows Azure Platform 系列文章目錄》

  

  最近一直想總結Azure IaaS和PaaS的區別與比較,寫個博文詳細說明一下。建議讀者在閱讀之前,先熟悉微軟PaaS和IaaS平台的基本概念,再參考本文。

  1.Azure IaaS和PaaS的服務類型層次,請參考下面的圖片:

  

  對於IaaS來說,使用者需要管理的對象是:

  -O/S,作業系統

  -Middleware,中介軟體

  -Runtime,運行時

  -還有Data和Application

  對於IaaS來說,客戶就像是使用雲端的虛擬機器一樣,在Azure平台選擇自己需要的作業系統(Windows or Linux),在這個作業系統裡安裝所需要的軟體,然後對作業系統及以上內容進行管理。

 

  2.IaaS的優勢?

  IaaS的優勢首先來說與傳統IDC營運相類似(注意是類似而不是相同,因為公用雲端都是基於虛擬化技術,比如雲端網路虛擬化是與傳統IT營運不同的),傳統IT營運人員比較容易接受與快速上手。一般我在做項目實施的時候,將雲端的虛擬網路、儲存帳號和虛擬機器都建立好以後,直接將Windows Remote Desktop或者Linux SSH連接字串給到客戶IT方,就可以迅速安裝所需要的軟體了。

 

  3.IaaS的劣勢?

  IaaS的劣勢從我個人理解是分為一下幾種:

  (1)IT還是需要花精力對伺服器進行更新和維護

  公用雲端服務強調的是Self Service(自服務),對於IaaS層面來說,雖然企業使用者不需要話費巨額投資來搭建和維護自己的資料中心,但是還是需要花精力對於作業系統進行更新和維護,比如IT還是需要對作業系統的升級和打補丁,進行維護。採用IaaS節省了硬體採購成本,但是沒有解決軟體的維護成本。

  (2)使用者需要自己來配置高可用組

  Azure提供更新網域和故障域來實現伺服器的高可用。在IaaS平台,使用者需要手動設定高可用組,將多台相同功能的虛擬機器設定在同一個高可用組裡。否則,虛擬機器不能實現高可用。

  (3)為了實現高冗餘,需要改架構

  公用雲端服務在推出之初,是用多台虛擬機器並行計算,提供高冗餘的方式來解決伺服器單點故障的問題。我們知道,凡是硬體伺服器就會產生硬體故障。在Azure平台,我們建議使用者一般採用2台或者2台以上的服務放在同一個高可用組裡,來實現99.95%的SLA。但這樣問題來了,我發現很多的客戶採用:

  a.單台Web伺服器作為前端,並且把session儲存在web伺服器上。一旦這台Web伺服器宕機了,所有的session就會丟失,系統無法正常運行。如果我們考慮99.95%的SLA,需要使用2台Web伺服器,並且把session也進行分離,使用雲端服務商提供的cache服務或者自己在虛擬機器裡實現cache的主從邏輯。

  b.單位檔案伺服器存放檔案。這台檔案伺服器也會產生單點故障。如果需要將檔案同時提交到多個節點上,在Windows平台需要使用比如DFS(Distributed File System)或者在Linux平台使用RSync。實現檔案在多個節點上進行提交和同步。

  c.單台SQL Server資料庫伺服器。資料庫伺服器存在單點故障。我們可以使用SQL Server 2012 Always On來實現資料庫的高可用。

  (4)有限的橫向擴充能力

  如果大家在使用Azure Auto Scaling的時候,會發現在IaaS層面,如果需要實現100台虛擬機器的auto scaling,需要手動預先建立100台虛擬機器並在每一台虛擬機器裡配置同樣的application。對於IaaS來說,Azure Auto Scaling不能自動擴充到任意的大小,而需要IT管理員進行預設。這主要的原因是IaaS虛擬機器的之間的資料同步問題,Azure沒有辦法將應用橫向向外延展部署到100台虛擬機器上,因為每一台虛擬機器的底層作業系統檔案、應用檔案都需要使用者自己來管理。雖然我們可以通過虛擬機器鏡像來快速部署多台虛擬機器,但是牽涉到IP規則,資料檔案同步等等各方面,這些都需要使用者自己來管理。所以對於IaaS來說,橫向擴充是有限的。

 

 

  上面我們談了一下IaaS,接下來我們談談PaaS平台。如最上面的圖所示:

  對於PaaS平台來說,使用者需要管理的對象是:

  -Application,應用程式

  -Data,資料檔案

  所有底層的OS,Middleware和Runtime,都由Windows Azure來維護。但是要注意,Azure PaaS提供的作業系統其實是Windows。無法在PaaS層使用Linux的作業系統。如果你的應用必須跑在Linux平台,請使用Azure IaaS。

 

  4.Azure PaaS平台的優勢?

  (1)不需要維護作業系統

  Azure PaaS平台對於企業的優勢是享用服務所帶來的價值,而不是實施和維護軟體系統的成本。

  Azure PaaS Cloud Service定義了OSFamily和OSVersion,來自動設定作業系統版本及更新內容,使用者無需手動對作業系統進行升級。如果客戶需要Azure自動升級最新的作業系統,將OSVersion="*";如果客戶需要固定某個作業系統的版本,可以設定OSVersion="WA-GUEST-OS-X.XX_20XXXX-XX",設定某個固定的版本。具體請參考:http://msdn.microsoft.com/library/azure/ee924680.aspx

  (2)自動設定高可用組

  如果使用者的應用程式需要實現負載平衡,Azure PaaS平台自動會將應用程式部署到多個計算節點上,並且自動化佈建故障域和更新網域。使用者無需手動進行配置。

  (3)自動橫向擴充

  Azure PaaS 平台將使用者的代碼打包為CSCFG和CSPKG。CSCFG是設定檔,用來描述PaaS的節點數量和配置資訊。CSPKG是項目打包檔案(package)。Azure PaaS通過CSCFG定義計算節點,然後將CSPKG發布到若干個節點上,可以自動實現scale-out。而不像IaaS那樣,需要IT Admin預先把虛擬機器建立好。

  (4)高冗餘可擴充的架構

  Azure PaaS平台架構,可以實現應用的高冗餘和可擴充。

  通過將Session儲存到外部的儲存上(如SQL Server資料庫中),可以實現Web Server的高冗餘。

  通過將檔案儲存到Azure Storage上,可以實現檔案的99.9%的高可用。另外檔案不是上傳到計算節點,可以解決檔案同步和一致性的問題。

 

  5.Azure PaaS平台的劣勢

  (1)需要藉助於開發人員

  對於很多傳統IT部署,應用的發布都需要藉助於IT來實施。如果採用了Azure PaaS,應用的部署都需要藉助於開發人員。這對於IT來說這一個挑戰。

  (2)非持久化VM

  Azure PaaS是非持久化VM,任何在PaaS平台安裝的軟體都是非持久化的。一旦PaaS VM重設了,之前安裝的軟體都會丟失。

  對於大型的應用程式來說,一般都會安裝其他第三方的軟體(例如匯出Excel,匯出PDF,其他第三方外掛程式等等)。

  對於PaaS平台,需要將安裝軟體的步驟放到ServiceDefinition.csdef的Startup Task中,進行靜默安裝(-s)

      Windows Azure Cloud Service (22) 使用Startup註冊COM組件(上)

      Windows Azure Cloud Service (23) 使用Startup註冊COM組件(下)

  (3)需要修改代碼  

  Azure PaaS平台需要修改一些代碼,比如Session放在外部儲存上,本地檔案的讀寫放到Azure Storage裡。我會在後面幾章介紹IaaS遷移到PaaS平台的步驟。

 

  總結:

  

   Azure IaaS比較適合:

  -  老應用的遷移

  -  遷移難度比較簡單,但是管理比較複雜

  -  藉助IT就可以進行應用的遷移

  -  先甜後苦

 

  Azure PaaS比較適合:

  -  新應用的開發

  -  遷移難度比較複雜,但是管理比較簡單

  -  需要藉助開發人員,基於PaaS進行代碼修改和開發

  -  先苦後甜

 

Windows Azure Cloud Service (38) 微軟IaaS與PaaS比較

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.