Freigeben über


從 Python 開發人員(Pythonist)的角度看 Microsoft Azure

Microsoft Azure loves Python

文章更新日期:2015/06/05

Microsoft Azure (以下簡稱 Azure)是微軟的公有雲端平台,這個平台除了有三、四十種不同的雲端服務之外(不只是虛擬機器而已),還支援許多不同的平台與技術。這篇文章主要以 Python 使用者的角度來看可以怎麼使用 Azure。

目錄

網站應用程式

如果你使用 Python 做為開發網站的主要語言,Microsoft Azure App Service - Web Apps 提供了一個可以迅速部署、高度延展並且能運用於關鍵任務(mission critical)的網站運作平台,您不必架設或管理虛擬機器、作業系統甚至是網站伺服器軟體(而且天生就是 HA - High Availability 的架構,不必煩惱服務中斷的問題),只要將寫好的 Python Web 應用程式(即便是使用 Bottle、Django 或 Flask 等開發框架)透過 FTP、Git 等方式進行部署,很快就能將網站上線,並且可以根據需求彈性調整網站平台的運算資源,以應付更大的流量及用戶。關於 Azure Web Apps 的詳細介紹可以參考這篇文章

目前 Azure Web Apps 上是以 WSGI (PEP 3333)的方式來執行 Python 的應用程式,而最底層的伺服器是從 IIS 家族衍生的環境,所以可透過設定 web.config 檔案的方式來設定一些伺服器的行為,關於部署時的設定可以參考 Microsoft Azure 食譜 - 2.6 部署 Python 網站應用程式 一文。


Azure Web Apps 目前支援 Python 2.7 及 3.4

若您使用 Visual Studio 做為開發工具(目前 Visual Studio 針對個人使用或是開發開源專案可以免費使用 Visual Studio Community 版本),微軟官方也出了一個 Python Tools for Visual Studio 的擴充程式(完全開源於 GitHub),讓你結合 Visual Studio 的強大 IDE 功能來開發 Python 應用程式,並且容易結合了 Django、Flask 等知名框架的範本,部署到 Azure 上也十分容易。

虛擬機器或 Docker

當然,雲端平台中最基礎的虛擬機器(Virtual Machine)服務,在 Azure 上也是可以使用的服務之一,而且可以自由選擇要使用 Windows Server 還是 Linux (目前官方支援 Ubuntu Linux、SuSE、OpenSuSE、CentOS、Oracle Linux 等)的虛擬機器,接著就是自己設定及管理的事了(需自己處理 HA 架構的問題及設計)。

除了一般的虛擬機器服務之外,Azure 也與 Docker 社群密切合作,所以在 Azure 上架設 Docker Host 的環境也是幾個按鍵就可以完成的事。


一鍵在 Microsoft Azure 上部署 Docker Host on Ubuntu Linux

機器學習

Azure Machine Learning 提供了一個完整實作機器學習的平台服務,資料科學家以及開發人員可以利用這個平台提供的 Web 應用程式來設計資料以及機器學習的流程,並且直接套用由微軟研究院的專家及 Azure Machine Learning 的工程師們實作的學習演算法(決策樹、類神經網路等數十種),大幅減少程式撰寫的時間,便能用來建立智能模型,並且將模型轉為 Web API 服務來整合其它的應用程式。

Azure ML

雖然這個平台工具幾乎可以不必撰寫程式,但如果要自訂學習流程中的某個部份,還是可以使用 Python (或 R)來做客製化,直接使用 Python 的 script 來擴充功能。

而且在上述的 Python Tools for Visual Studio 中也有一個 Machine Learning pack 的外掛包,可以更直接在程式中結合 Azure ML 的服務。

Azure SDK for Python

前述的幾種情境都是將應用程式放在 Azure 上、或是在 Azure 上直接用 Python 來做些事情,而 Microsoft Azure 官方也特別製作了 Azure SDK for Python,讓 Python 的開發人員可以透過這個 SDK 來存取放在 Azure 上的資料(如放在 Blob/Table 儲存體內的資料)、或是呼叫 Azure 上的一些服務(佇列服務、管理 Azure 等),讓你自己的 Python 應用程式能輕易地與 Azure 結合,開發出更多有趣的應用程式。

這個 SDK 完全開源於 GitHub 上,所以可以在其專案頁面上關注這個 SDK 的發展,或是瞭解、下載最新的實作。


結論

如果你是個 Pythonist,不妨看看 Microsoft Azure 可以怎麼跟你的開發相結合吧!