來源:互聯網
上載者:User
關鍵字
PHP
Azure
Azure
開發實戰
執行環境
Windows Azure是Microsoft所研發並且提供的公有雲平臺服務,而這個平臺支援多種不同的程式語言、開發技術,換句話說,您不一定必須使用Microsoft的技術(如:.Net、C# 等)才能使用Windows Azure這個雲端平臺 [1]。 這系列文章便會以PHP為程式語言介紹如何在Windows Azure上開發出實際可運作的網站或應用。 這一系列文章包括: PHP 應用程式執行環境 部署PHP應用程式 資料庫的選擇: MySQL or SQL Database 使用Windows Azure Storage – Blob storage處理靜態檔案 使用Windows Azure Storage – Table Service處理Session物件 使用Windows Azure Service Bus與其它系統進行通訊 PHP 執行環境 使用 Windows Azure 虛 擬機服務 Windows Azure虛擬機器 (Virtual Machines) 服務在雲端服務的分類之中屬於 IaaS (Infrastructure-as-a-Service),它讓使用者在平臺上建立虛擬機器, 並可選擇安裝支援的作業系統,Windows Azure 的資料中心技術則會處理好一切虛擬機器及網路的問題。 目前 Windows Azure 虛擬機器服務所支援的作業系統中,適合執行 PHP 的伺服器有各種 Windows Server 以及數種Linux 套件,有了自建的作業系統及環境,要用什麼方式執行 PHP 都可以自行決定了。 使用 Windows Azure 網站服務 Windows Azure 網站 (Websites) 服務提供了一個可迅速建立網站的平臺,使用者不必安裝作業系統,也不必處理伺服器以及 PHP 執行環境的設定 ,僅須將網站的檔案部署上去便可立即提供網站服務。 Windows Azure 網站服務目前提供 PHP 的執行環境,是以 IIS 伺服器搭配 FastCGI 的方式來執行 PHP 的程式,所以在部署PHP的套件時也必須使用對應的版本(說得簡單一點,就是 .dll 的版本)。 而 PHP 的版本目前支援 5.3、5.4 以及 5.5 的版本,使用者可以自行設定 Windows Azure 網站服務要使用哪個版本的 PHP 直譯器。 此外,Windows Azure 網站服務也支援多種網站部署的方式,像是傳統的 FTP、WebDeploy,或是結合 TFS/git/Mercurial 等版本控制的機制、綁定公用的版控服務如 Visual Studio Online、GitHub 或是 Bitbucket、甚至是可以直接使用 Dropbox 的方式部署,對於網站開發部署的流程提供更靈活的彈性。 使用 Windows Azure 雲端服務 Windows Azure 雲端服務 (Cloud Services) 就是典型的 PaaS (Platform-as-a-Service) 的雲端服務,使用這項服務使用者同 樣不必安裝設定作業系統、伺服器等軟體,直接部署應用程式便可以提供服務。 但與網站服務不同的是: Windows Azure 雲端服務在應用程式執行環境上區分 Web Role 及 Worker Role,在 Web Role 上的應用程式就如同一般的網頁應用程式一般,當網站或服務的使用者透過 Web 要 求的方式存取 (例: 使用瀏覽器流覽) 時才會執行;而 Worker Role 上的應用程式則是可以獨立執行,適合用來作為背景工作的程式。 Windows Azure 雲端平臺的執行環境中並無提供永久性儲存磁片,也就是開發應用程式的過程中,都不可假設系統有檔案系統能夠使用,任何檔案的操作都必須使用其它的儲存機制(如:Windows Azure Storage), 這是為了確保執行環境沒有「狀態」的概念,如此一來,當執行應用程式的虛擬機器發生問題時,Windows Azure雲端服務能夠立即啟用新的虛擬機器繼續提供服務,確保服務的穩定性,同時也可以更容易擴展服務的規模。 Windows Azure雲端服務將 staging 及 production 環境分離,在部署新版本的應用程式時,可以先行部署至 staging 環境測試,確認沒有問題時,可以再部署至 production 的環境, 而部署的過程也不會造成服務的中斷。 Windows Azure 雲端服務的執行環境是以 Windows Server 及 IIS 伺服器為基礎,所以在部署 PHP 應用程式時,必須同時部署 PHP 的執行環境(可自行選擇 PHP 版本),稍加設定後便能以 FastCGI 的方式來執行 PHP 的應用程式。 如何選擇 PHP 執行環境 目前 Windows Azure 提供了三種方式來執行 PHP 應用,而到底哪一個是「最好」的選擇呢? 其實這沒有一定的答案,完全要視情況而定。 如果您的PHP應用程式規模已經非常複雜,而沒有太多的資源可以進行改寫時,Windows Azure虛擬機器可能是最快能搬上雲端的方式,因為您可以自行建立虛擬機器及設定執行環境。 不過若要享受到雲端平臺的負載平衡 (load-balancing) 或是高可用度 (high availability) 時,可能就要自行設定處理,而負載平衡或高可用度必須建立至少兩個以上的虛擬機器實體才能進行設定, 並非直接部署便可完成。 而對於純粹網站的應用而沒有獨立執行的程式,那Windows Azure網站服務也是很不錯的選擇,它免去了管理及設定作業系統、伺服器的麻煩,而且又支援多種部署方式,不論您是用Windows、 Linux還是Mac作為開發環境,都可以很輕易地利用這個服務來開發網站服務。 另外還提供了永久性儲存磁片,讓網站程式也幾乎不用改寫便能部署成功 (所以也支援了許多知名的 PHP 套件如:WordPress、Joomla、MediaWiki等)。 那什麼樣的情況用Windows Azure雲端服務比較合適呢? 如果您需要高度穩定以及容易擴展的特性,同時也希望有staging及production環境的區別,那 Windows Azure 雲端服務無疑是最佳的選擇,不過既然要享受這些特性,程式就必須做一些改寫,像是不能使用本地磁片, 或是要將獨立執行的程式使用Worker Role的方式處理,最後就是必須使用 Windows Azure SDK所提供的工具來打包部署,這都是需要花費的開發成本。 總結一句:就是必須根據您的需求及現實狀況,來挑選合適的服務來運作你的網站應用程式。