Microsoft ♥ Linux

回顧去年在 10 月份的 Microsoft Cloud 發表會上頭,微軟執行長 Satya Nadella 放了一張大大的投影片,宣示著 「Microsoft ♥ Linux」。
哇!這張投影片顯示出微軟即將做出的大改變!這張投影片更被各大科技媒體業拿來撰寫數篇相關的文章,來呼應微軟即將要與 Linux 以及開放原始碼的關係有更進一步的發展!

但您可能會想問:「微軟為什麼要跟 Linux 以及開放原始碼共同合作呢?」,或者您也會問:「微軟接下來到底想做什麼?」、「Microsoft ♥ Linux,對我們大家又代表甚麼意思呢?」。

「Microsoft  ♥  Linux 」是因為我們聽到許多使用者的心聲,決定所做的改變。您可能已經將您的軟體服務環境架設在 Windows,或者 Linux 上面。而這些環境可能是架設在自建的資料中心,或者網路託管業者,更或者是公有雲上頭。有時您只是單純想要有環境為您服務,而不用刻意區別這兩種不同的作業系統。我們聽到您的心聲,而且了解到我們所處的世界是一個異質多變的環境。最終目的,提供異質性環境的支援是微軟看到的一個商業機會,我們將在自建的資料中心以及公有雲上提供 Windows 以及 Linux 的工作環境,微軟可以附加更多價值在異質性雲網路上頭。

聽到以下的話您可能會很驚訝,「其實微軟早已跟 Linux 生態圈一起合作數年了」。自從 2009 年發布的 System Center Operations Manger 中,早已提供 Linux 以及 UNIX 的系統監控服務。而在 2010 年之後,Hyper-V 的 Linux 虛擬機器客端驅動程式早已內建於眾多 Linux 發行版裡頭。而我們更在 2013 年終,Microsoft Azure 提供 Linux 虛擬機器 IaaS 服務的「第一天」就已經讓 FreeBSD 支援 Hyper-V 並且擁有虛擬機器客端驅動程式的支援!

我們已經為了許多重要的客戶使用 Linux,並搭配微軟產品所為基底建置的架構。而 System Center 更是在今天提供數百萬個在線上使用的 Linux 以及 UNIX 伺服器管理的系統,最大的客戶甚至利用 System Center 管理了將近一萬台的 Linux 伺服器。這些客戶像是:Ancestry.comEquifax、英國政府 FCO Services 還有 Europcar,皆是使用微軟所提供的 Hyper-V 以及 System Center 運行許多 Linux 虛擬機器來建構公司自主管理的私有雲。而在 Azure IaaS 服務上,有超過 20% 的虛擬機器是運行著 Linux。Azure 也提供運行在 Linux 中的 HDInsight ( Hadoop ) 服務,並能夠附加運行在 Windows 上。如果再看得更廣些,您會看見微軟早已在 iOS、Android、Mac OS X 上提供幾個重要的生產力軟體,像是 Office 365、Skype、以及在 Linux-base 還有 BSD-base 提供遠端連線的客戶端軟體。

到頭來,這些到底是甚麼意思?這代表微軟跟 Linux 一起合作並不是一個新鮮事。事實上微軟對 Linux 的貢獻其實已經大大改變大眾對微軟的看法。我們迫不及待想要提供這些重大的改變給我們的客戶們。

微軟替 Linux 在您的資料中心做了什麼改變?

微軟已經投資了大量的資金於研發雲端關鍵技術上,在其他部落格系列文章撰寫有關於計算、網路、以及儲存等雲端服務。投資這些技術彙整我們許多的技術經驗,形成一個可以調整各服務規模的 Azure 公有雲。這些服務獨立於客端作業系統,所以這些服務都能夠與 Windows 以及 Linux 一起使用。像是高品質的儲存服務、網路虛擬化、以及讓 Linux 支援像在 Windows 一樣,透過 RDMA 技術能夠及時且相當快速的傳輸資料等,諸如此類這些非常棒的功能等…。在與我們開發雲端功能的產品小組當中,每次規劃設計新的功能時,我們會問「這要怎麼與 Windows 一起運作?」,接著我們也會問「那跟 Linux 要怎麼一起運作呢?」。在這兩個問題得到最後的答案就是:微軟提供自建資料中心是異質性且能夠用統一的方式運行 Windows 以及 Linux 的產品解決方案。

當然,在虛擬機器上的 Linux 客端作業仍然需要一些驅動程式,能讓 Linux 客端作業系統完全發揮它們的能力。因此微軟的開發人員也為著這些客端作業系統撰寫 Linux 裝置的驅動程式,讓這些 Linux 客端作業系統能夠完全的發揮出他們的效能。並且微軟的開發人員們也持續的參與 Linux 社群,並將這些程式碼提交到 Linux Kernel 的組織:kernel.org 。我們也聘請了許多 Linux 發行版的廠商人員,像是 Red Hat , Canonical , Oracle 以及 SUSE ,讓 Hyper-V 的 Driver 能夠一起的加入這些公司所發行的 Linux 中,而這些 Linux 發行版或許您正在運行使用著,而這些 Linux 也能在 Hyper-V 上運行的相當順利!

微軟亦投資了一些資金成本在系統管理層上。我們已經發表了第一個為了 Linux 作業系統管理的 Powershell Desired State Configureation(DSC)。在 Linux 上頭使用 DSC,您能夠一次擁有管理 Windows 以及 Linux 的一致性設定方式。這使得您能透過 DSC 在 Linux 上您能夠安裝套件、設定檔案、新增使用者以及群組還有啟動服務。DSC 在 Linux 上的版本是開源專案,您能夠在 GitHub 上找到這個專案的程式碼,像是這裡這裡

在 System Center Operations Manger 中內建了企業管理功能、設定組態管理員、虛擬機器管理員,以及資料保護管理員,這些功能能夠讓 Linux 以及 Windows 同時的被管理,而在資料中心中,在這種異質的作業係同環境裡,您只需要單一管理系統即可管理好這兩大平台的作業系統。到目前為止我們談到 System Center 都只有管理在 Linux 作業系統上,除此之外還可以做到進入中繼軟體 (Middleware) 層級的管理,像是與 Tomcat, JBoss, Apache 網頁伺服器以及 MySQL 等,將會擴展這些包含在 Linux 下的服務,形成一個混合的服務。舉個例來說,Azure Site Recovery 服務,能夠橫跨自建資料中心以及 Azure 雲端間提供服務。

Linux 在 Azure 上的改變

在前面我們有提到自建資料中心的部分,而微軟另外一個重要的投資就是在 Azure 公有雲上。我們的目標是希望達到提供在 Azure 上「所有的」功能給 Linux 虛擬機器使用,就像能夠像在 Windows 虛擬機器上使用一樣。這些功能像是強大的 ”G” 系列虛擬機器,Premium Storage,Azure 虛擬機器備份服務等,這些功能都已經提供給 Windows 以及 Linux。並且可以撰寫客製化的腳本去操作這些功能。而有些功能像是整合 Docker、Chef 以及其他開放原始碼專案,Linux 會相較 Windows 更早的獲得這些功能來提供給使用者。

Azure 也提供了企業所常用的 Linux 發行版本,像是 SUSE Linux Enterprise Server、OpenSUSE、Ubuntu Linux、Oracle Linux 以及 Core OS。還有社群所貢獻的發行版 CentOS 等。或您也可以上傳您自己所訂製的  Linux 映像檔。 

如果您正在使用 Azure 所提供的服務,且想要在各個裝置像是 Windows,或者 Linux、Mac OS X 電腦上上存取使用這些服務,您可能會使用 Azure portal 作為您一開始管理 Azure 服務的第一步,而 Azure portal 是一個使用 HTML5 所撰寫出的 Web 應用程式,讓您能夠使用任何瀏覽器在任何平台上操作管理 Azure。如果您是更進階的使用者,您或許想要整合 Azure 的管理能力進入您撰寫的程式中,在 Windows 上提供 Powershell,這是主要的腳本操作環境,並且提供自動化的介面。而 Linux 以及 Mac OS X 上 (Windows 也可以),Azure 提供了基於 node.js 撰寫的指令及語法套件,能夠讓您完整的管理 Azure 上的服務。

在 Azure 資料中心中,微軟員工現在也使用基於 Linux 的 PaaS 服務,而基於 Linux 提供的 PaaS 服務就跟使用基於 Windows 提供的 PaaS 服務一樣優異。HDInsight (Hadoop) 服務是第一個在 Linux 上使用的服務,這代表一些商業軟體服務其實是來自於 Linux 上頭。而這些開放原始碼的專案運行在 Linux 上頭,而在日後將會漸漸地移植到 Windows 上,並且 Azure 內部的監測工具、診斷工具、以及更新將會逐步加入載這些由 Linux提供的服務上頭。

總結

微軟跟著 Linux 做了許多工作,從自建的資料中心在虛擬化的整合管理以及服務的提供,到 Azure 公有雲上。我們知道使用者常常將他們的服務運行 Windows 以及 Linux 平台。而微軟的產品上可以做到管理以及運行  Linux 環境,並且盡力整合我們能所做的。 

更多有關於我們與 OpenSource 合作的內容可以參考這裡

最後,記得「Microsoft ♥ Linux」!

本文翻譯自 : Microsoft Loves Linux