現今的客戶們都活在多平臺、多雲、多 OS 的世界,這就是現實。新的世界帶來了新的挑戰,客戶們須要工具來統籌全部工做中的事務。微軟正致力於研發客戶在任何地方均可以對整個公司各類平臺、設備進行統一管理的工具,不管是在 Linux 仍是 Windows 平臺上。這推進着一個更加開放,圍繞客戶的新變革,這使我天天更加滿懷熱情前往工做。
shell
你可能曾聽 Satya Nadella 說過「微軟愛 Linux 「,目前看來,這句話已經變得不能再真了。 Azure 上面近乎三分之一的虛擬機運行着 Linux 。Azure 市場上有着 60% 的第三方 IaaS 提供的應用屬於開源軟件( OSS , Open Source Software )。咱們有着強大的虛擬第三方工業合做夥伴爲用戶擴展用戶的可選擇度。咱們在宣佈開源 .NET 的同時也宣佈了 SQL Server 能夠直接運行在 Linux 上了。咱們將 Bash 添加到 Windows 10 上爲的是提供一個更好的平臺來研發開源軟件。咱們也有大量的活躍開發者參與到各類跨領域的開源項目中( OpenSSH、FreeBSD、Mesos、Docker、Linux 等更多其餘項目)。服務器
今天,咱們來開啓漫漫旅途中的下一步。我十分激動於向你們分享 PowerShell 開源了這個消息!而且能在 Linux 上運行了!(咱們來回顧一下, PowerShell 是一個基於任務式的命令行 shell , 腳本語言構建在 .NET 框架之上。它能幫助 IT 專業人員手動或自動化的控制管理 Windows 操做系統以及運行在操做系統之上的應用程序。嗯!如今還包括 Linux 了。)接下來我將向你們分享咱們是怎樣走過這段旅途的,以及告訴你們微軟操做管理套件( Microsoft Operations Management Suite )是如何加強 PowerShell 體驗的。架構
讓咱們開始 PowerShell on Linux 之旅吧。體驗這個開源版本的故事…框架
個人客戶很不高興。編輯器
以前我向一個大客戶演示了 Monad(PowerShell 以前的名字),他很喜歡它。可是如今他對我很生氣。ide
他問我這是用什麼語言實現的,而後他對個人回答感到不高興:C#。我懵逼地問這有什麼問題。他回答說:「 Monad 確實很不錯,我也想讓它普及到我整個公司,可是沒辦法, .NET 不支持 Linux 啊!」工具
過去,微軟的業務焦點意味着 .NET 和 PowerShell 只能在 Windows 使用。可是如今的微軟是個嶄新的微軟。Satya 的引導者和 Azure 讓咱們變得更開放,更以客戶爲中心,這張圖代表了咱們的傾向:post
微軟想要博得客戶在全部運行他們工做負荷的平臺上的喜好,包括 Linux 和 Windows 。這個新想法容許 .NET Core 移植到 Linux ,也就使得 PowerShell 也能夠移植到 Linux 。PowerShell on Linux 如今容許客戶使用一樣的工具,一樣的人員來管理任何地方的任何事。它將首先支持 Ubuntu ,Centos 和 Red Hat ,同時還能夠在 Mac OS X 上運行,將來咱們還會增長更多平臺。你能夠下載咱們的 Alpha builds ,還能夠查看咱們在 GitHub 上的源代碼。學習
如今,Windows 和 Linux 用戶,如今的新用戶,以及應用開發者們均可以體驗一個能很好地配合你現有工具的功能豐富的交互式腳本語言以及異構自動化和配置管理。你的 PowerShell 技能將更有市場,並且你以往分離工做的 Windows 和 Linux 團隊更容易共同工做了。測試
那麼,咱們如今在這段旅途的什麼地方呢?咱們還在開始的地方並且還處於學習模式。咱們經過開源 PowerShell 的小部分開始,而且告訴一些經歷過開源的夥伴,以瞭解如何走向成功。咱們所學到的是,個別用戶能在他們的電腦上用 Git 查看代碼,作些修改,編譯任何東西以及運行全部測試程序來驗證這些變化不會破壞任何東西,這些是須要鑑定的。這須要在咱們的工程/構建/測試系統上有巨大的投入。咱們也致力於定義一套管理模型以便於咱們弄清楚咱們的任務,職責和進程,從而使社區的貢獻能平穩地融入產品。
PowerShell 團隊對本身是一個專一社區的團隊而感到自豪,可是這個聲明須要在下一個層次使源代碼可被獲取並採用開源開發模型,這樣咱們就能夠享受在 RFCs 和問題上與社區的深層聯繫,並直接接受社區貢獻。咱們也須要在開源後擴大咱們的社區,像許多事同樣,須要一個羣體,由於羣體是得到好經驗的一把鑰匙!咱們在和一些第三方公司合做,好比 Chef 、 Amazon Web Services 、 VMware 和 Google 等,在你知道或使用的平臺上創造一個豐富的無縫體驗。
當咱們把 PowerShell 移植到 Linux 時,咱們確信咱們是這個平臺上的一等「公民」。咱們很適應那些架構,習語和現有的工具。這對有着很深的 Unix 背景的本來的 PowerShell 團隊來講至關容易, 這在咱們的設計裏也體現了。咱們作出了不少改變,下面是兩個大的變化:
咱們建立了 PowerShell Editor Service 。它容許用戶在一系列編輯器中選擇( VS Code 、 Sublime 等),使用戶在智能感知、調試上得到不錯的用戶體驗,等等。
咱們將擴展 PowerShell 遠程協議( MS-PSRP )來使用 OpenSSH 做爲本地傳輸工具。用戶將能夠設置用 SSH 仍是 WINRM 做爲傳輸工具。
最初的版本是「alpha」和社區支持版。將來,咱們將發佈一個基於開源的微軟官方 release 版,使任何人能夠在 Windows 或 *nix 上運行一個受支持的版本。這個微軟官方版本屆時將用於社區投入和商業需求。咱們但願你能幫助咱們把它作好!
我還想告訴你們,現在的 PwerShell 能夠在咱們的雲管理解決方案下( OMS, Operations Management Suite ),經過擴展插件你已經能夠作更多你想作的事了。 OMS 給你提供了一種可視化的方式控制你的應用以及跨雲平臺的工做負載。整個說來,客戶在使用 PowerShell 時能夠切換他們的雲體驗,不管是 Windows 服務器仍是 Linux 服務器。 OMS 自動化提高了 PowerShell 以及 DSC ( Desired State Configuration )的可用性、可擴展性。你能夠在一個地方圖形化的簽署管理全部的 PowerShell 資源,包括運行手冊、 DSC 配置以及 DSC 節點配置。
在 OMS 以及手冊的幫助下,你能夠擴展你的 OMS 自動化能力,並能在任何地方應用、監視、更新你的配置,甚至包括本地配置。現在咱們一樣使得 OMS 可以監控 Linux了。一樣,顧客能夠得到豐富的觀察信息以及實時的掌握 Linux 的工做負載。任何問題一旦出現,重啓以後將會很快被修復。
咱們很是但願你們都能花點時間在 Linux 上測試運行 PowerShell ,讓咱們知道大家的想法!你能夠從這裏學習更多關於 OMS 自動化套件的知識。另外,請查看下週在 LinuxCon 關於咱們的內容。 Wim Coekaerts 將會給出一個地址,咱們將會展現 PowerShell , 而且作一場演示會話。
若是你剛開始接觸 PowerShell ,一個不錯的方式就是學習咱們在 Github上的 Learning PowerShell 倉庫。咱們一樣也提供了免費的微軟虛擬學術(Microsoft Virtual Academy)在線課程: Getting Started with PowerShell 3.0 Jump Start 。若是想加入參與到 PowerShell 社區請看 powershell.org 以及 PowerShell Team blog 。咱們將會在將來更新相關內容以知足如 Linux 等社區的需求。
還有很長的路要走,這個過程樂趣十足,因此請加入咱們吧。咱們一塊兒生產出更加捷利的工具。