網誌好讀版:http://hungys.logdown.com/posts/235596-when-azure-embrace-open
在筆者整理關於這個主題的相關資料時,正好看到官網上一段影片主題是「開源開發人員為什麼會使用微軟 Azure 公有雲」,其中受訪的技術長,滿有趣且中肯的提到了過去開源界對於微軟的認知與印象。
的確,過去 Azure 公有雲平台也幾乎清一色的都是微軟自家的方案,但從近幾年來的轉變,可以很明顯看到對於開源專案的支持已經大幅提升,例如將 redis cache 整合進 Azrue 的快取服務、與 mongolab 合作推出 MongoDB 的託管服務,也針對各個服務提供了包含 Python、node.js、PHP... 在內的 SDK,甚至這些 SDK 都是以開源型式公開在 GitHub 上,這也是為什麼前些陣子微軟要正名 Azure,從「Windows Azure」走向「Microsoft Azure」,因為 Azure 已經不再只是 Microsoft solution only 的雲服務了。
微軟在 2012 年跨出了不尋常的第一步,宣布成立一家獨立的子公司專注參與開源專案、開放標準的制定,公司名稱為「微軟開放技術有限公司」(Microsoft Open Technologies Inc.)。這一步棋很顯然微軟希望能夠擺脫過去大家所抱持的封閉、獨斷印象,開始著手 open source 專案的貢獻。而這兩年來,微軟也確實廣泛參與了多個開源專案,甚至躋身前 20 大 Linux Kernel contributer(筆者去年參加 COSCUP 時聽到 Linux Kernel 的 keynote 上提到這點也相當訝異),這都是過去大家所不知道而且無法想像的微軟。
而在 MS Open Tech 的官方網站也可以看到,目前公司已經參與了多項知名的 open source 專案,例如非常知名的快取專案 redis cache,微軟也參與了開發,並且讓它可以更穩定、更相容的執行在自家的 Azure 平台上。而 App 相關的專案中,也可以看到近幾個月來微軟對於 Apache Cordova 這個跨平台 App 開發的專案也有相當多的著墨以及推廣。另外,如果有關注 Azure 發佈的一系列 open source SDK,可以發現微軟尤其與 Node.js 的社群有深入的合作,幾乎所有服務都提供了相對應的 SDK,可見微軟對於 Node.js 的重視與愛戴。除此之外,自家的 .NET Micro Framework 以及下一代的 ASP.NET vNext 也都已經成為開源的專案,所有原始碼都可以在 GitHub 或是 CodePlex 上找到,關於這方面的更多消息可以參考 .NET Foundation 這個組織的網站。
在上個月,我們宣佈支援部署 Docker 上 Azure 虛擬機器上,並且應用我們的技術,讓客戶能夠盡快地使用 Docker 的威力。為了持續為我們的客戶提供更好的支援,我們宣佈將與 Google 及 Docker 合作,預計將在 Microsoft Azure 上支援 Kubernetes 及 libswarm 這兩個開源專案。
這應該只是不久前的新聞,微軟為了讓 Azure 的用戶能夠更快享受到最近很夯的 Docker 的威力,正式宣布與宿敵 Google 以及 Docker 合作來投入相關 open source 專案的開發,並提供在 Microsoft Azure 上的支援。到這裡為止,相信大家已經感受到現在的微軟,已經與我們過去的刻板印象有所差別。在往後的文章中,筆者也預計會對 Azure 及 Docker 做初步的介紹。
前面說了這麼多,現在正式帶大家來看看究竟目前在 Azure 上提供了哪些開源的服務,或是支援了哪些開放社群所鍾愛的語言。
從 Azure 的 Management Portal 中建立一台新的虛擬機器時,可以選擇從 Gallery 選擇微軟預先建立好的映像檔來部署,而不需自己準備安裝映像檔全新安裝,所以只需要幾分鐘之內就可以部署好一台可以使用的開發測試環境。
在 Gallery 中,我們可以看到除了自家的 Windows Server 之外,也可以看到一系列對於 Linux VM 的支援,包括了與 Canonical 合作針對 Azure 優化的 Ubuntu Server,也有 CentOS-based 或是 SUSE 系列的選擇。開發人員或 IT 人員可以輕鬆的部署 server 環境,而且是微軟預先針對 Azure 及雲端環境所優化過的版本。
從 Azure 官方網站中可以看到,雖然雲端服務是基於 Windows Server 的 PaaS 服務,但除了自家的 .NET 之外也都分別提供了對 Java、Node.js、Python、Ruby 的支援,您只需要在 Management Portal 選擇所需要的版本即可快速部署相關應用程式。
在 Management Portal 中,微軟提供了許多現成的 open source Web App,讓使用者可以快速從 Gallery 中佈建這些開源的網路應用程式或是 CMS 系統,例如非常多人使用的 WordPress、Drupal 以及 Joomla! 等等,都可在幾個按鍵之內就完成安裝並且部署在微軟的資料中心中。
在前些陣子,微軟官方正式宣布將使用開源的 redis cache 來作為 Azure 快取服務的基底,您只需要使用新的 Azure Portal就可以快速建置 redis 服務,並且輕鬆地監視快取的健全狀況和效能。
從 Azure Management Portal 進入 Azure 的市集我們可以看到,目前針對資料庫服務也提供了 open source solution 的支援。例如微軟與 ClearDB 合作推出了 MySQL 資料庫的託管服務,另外前些陣子也宣布與 mongolab 合作,在 Azure 上推出 MongoDB 的服務。由此可見,在 Azure 上的資料庫存取不再僅限於 SQL Database 或是 Table 資料表,而是可以直接透過 Management Portal 快速佈建近年來相當熱門的 NoSQL solution。
我們也知道,大多數使用開源方案的公司或開發者,是不會使用 .NET 作為開發語言的,以國內許多年輕的公司為例,不外乎是使用 Python、Ruby 或是 Node.js 來開發。即使選擇這些語言不能直接與開放、開源劃上等號,但在微軟擁抱開放的策略之下,依然針對各個語言提供了相對應的 SDK,讓開發人員可以輕鬆來取用 Azure 上的服務。
就目前官方的 SDK 下載頁面來看,已經提供了針對 .NET、Java、Node.js、PHP、Python 及 Ruby 的支援,而行動服務方面也提供了針對 Android、iOS 及 Windows Phone 的全平台支援。詳情請見:http://azure.microsoft.com/zh-tw/downloads/
本文針對了微軟在 Azure 上所提供的 open source 服務做了概略性的介紹,在接下來的連載當中,會挑選其中較多人使用的服務來做介紹,希望可以讓大家看到擁抱開放後、很不一樣的 Microsoft Azure!
另外,今年 TechDays 2014 有一場由 Eric 所主講的 session 在介紹 Microsoft Azure 上所支援的開源技術,並且著重在與 Java 開發技術的整合,目前錄影檔已經上傳至 MVA (Microsoft Virtual Academy) 上,有興趣的可以前往:http://www.microsoftvirtualacademy.com/training-courses/techdays-taiwan-2014-breakout-sessions-dev