1. 程式人生 > >微軟宣佈PowerShell開源並支援Linux

微軟宣佈PowerShell開源並支援Linux

今天,我們的客戶面對的是一個多平臺、多雲、多作業系統共存的世界。這個世界帶來了新的挑戰,使用者需要新的工具把一切都整合起來。而微軟上下都在全力以赴打造這樣的管理工具,讓使用者能夠在任何地方、用任何裝置、對任何平臺進行有效的管理——既可以用Windows,也可以是Linux。從客戶需求出發、以更加開放的方式驅動創新,這是我們每天工作中最令人興奮的部分。

正如微軟CEO薩提亞·納德拉所說,“微軟熱愛Linux”,這的確是真愛:Azure上有近三分之一的虛擬機器執行Linux。在Azure市場上,有將近60%的第三方IaaS是開源軟體(OSS)。我們有強大的行業合作伙伴網路,為使用者帶來更多選擇。微軟已經發布了面向Linux的SQL Server,並且宣佈對.NET開源。我們在Windows 10中加入了Bash,讓它成為開發開源軟體的理想平臺。此外,我們還積極地參與了業內眾多的開源專案(例如OpenSSH、FreeBSD、Mesos、Docker、Linux等),並做出了自己的貢獻。

現在,我們要邁出新的一步。我很高興宣佈PowerShell開源並支援Linux。(簡單地說,PowerShell是一個基於任務的命令列工具和基於.NET框架的指令碼語言,用來幫助IT管理人員對作業系統及執行的軟體進行控制和自動化管理,現在它不但支援Windows,而且支援Linux。)接下來,我將詳細介紹我們所做的工作,以及微軟執行管理套件(OMS)如何增強PowerShell體驗。

微軟

PowerShell的開源之旅

讓我們從一個真實的故事開始,瞭解PowerShell的Linux和開源之旅:

我的客戶不高興了。

在Monad(PowerShell的開發代號)開發初期,我向一個大型客戶的高管進行了一次演示。他很喜歡,但又很生氣。

他當時問我,它採用了什麼語言。我回答是C#。他很不高興。我感到很困惑,並問他為什麼。他說:“Monad正是我需要的東西,我希望用它對我的公司進行標準化,但我不能,因為.NET不支援Linux!”

過去,微軟的業務重點意味著.NET和PowerShell只能支援Windows。但今天的微軟不一樣了。薩提亞·納德拉的領導和微軟雲Azure讓我們變得更開放,並學會以客戶為中心去思考問題,下面這張照片集中體現了這種轉變:

微軟希望使用者在Linux和Windows上都能執行他們所有的工作負載。這種新的思維讓.NET團隊把.NET Core移植到Linux,也讓PowerShell支援Linux。PowerShell on Linux旨在讓使用者使用相同的工具和相同的人力,在任何地方管理一切。初期它將支援Ubuntu、Centos、Red Hat以及Mac OS X,未來還將支援更多平臺。現在你就可以從GitHub下載Alpha版,並檢視原始碼。

Windows和Linux使用者、現在的和未來的PowerShell使用者、應用開發者都可以體驗到豐富的互動式指令碼語言以及異構自動化和配置管理帶來的優勢,而且它支援你現有的工具。你現有的PowerShell技能如今有了更廣闊的施展空間,而過去必須分開工作的Windows和Linux團隊今後也可以快樂地一起工作了。

這個旅程進展如何?目前,我們還處於起步和學習階段。我們開始把PowerShell的一小部分開源,並與使用開源軟體的眾多合作伙伴交流,以瞭解怎麼做才能成功。我們瞭解到,很重要的一點是,個人使用者需要在他們的機器上使用Git檢視原始碼、變更原始碼、編譯一切並執行所有測試,以驗證他們的更改不會破壞任何東西。這需要對我們的工程、開發、測試系統進行大量的投資。我們還定義了治理模型,以便我們擁有清晰的角色、職責和流程,讓社群貢獻能夠平滑地融入這個產品之中。

PowerShell團隊一直為自己是一個非常社群化的團隊而感到自豪,現在我們將更進一步,提供原始碼並採用開源開發模式,讓我們能夠與RFC社群更緊密地聯絡,更直接地做出貢獻和接受反饋。我們還將擴大我們的社群,因為開源需要群體的共同努力,這個群體是成就偉大體驗的關鍵因素。我們與Chef、Amazon Web Services、VMware和谷歌等第三方公司合作,在大家所瞭解和使用的平臺上建立豐富、無縫的體驗。

在把PowerShell引入Linux的過程中,我們確保要成為這個平臺上的一等公民,從架構、語句和現有工具上都確保高度一致。這非常簡單,因為PowerShell團隊的大多數成員都有深厚的Unix背景,這在我們的設計中也得到了體現。我們做出了一些微小的改變,還有兩個比較重大的改變:

1.我們開發了PowerShell編輯器服務。這讓使用者能夠選擇廣泛的編輯器(VS Code、Sublime等等)並且獲得卓越的PowerShell創作體驗,包括Intellisense、除錯等等。
2.我們將擴充套件PowerShell Remoting Protocol(MS-PSRP),把OpenSSH用作本地傳輸。使用者將可以選擇使用SSH或WINRM作為傳輸。

首先發布的是Alpha版,並由社群提供支援。未來,我們將提供基於開源的PowerShell微軟官方正式版給Windows或者Linux/Unix使用者。微軟官方正式版的釋出時間取決於社群的貢獻以及業務需求。我們希望得到大家的幫助!

通過微軟執行管理套件(OMS)擴充套件PowerShell體驗

我還想更詳細地介紹一下PowerShell如何擴充套件微軟雲解決方案中的執行管理套件(OMS)的功能。OMS讓你可以瞭解並控制微軟雲Azure和其它雲上的應用和工作負載。二者的結合,讓使用者能夠在Linux和Windows Server上使用PowerShell改進自己的雲體驗。利用Azure雲服務的高可用性和可擴充套件性,OMS Automation提升了PowerShell和預期狀態配置(Desired State Configuration, DSC)。你可以用圖形介面創作和管理所有PowerShell資源,包括執行手冊、DSC配置和DSC節點配置。

藉助OMS Hybrid Runbook Worker,你可以擴充套件OMS Automation的功能,並在任何地方應用、監測和更新配置,包括本地部署。今天,我們還推出了面向Linux的OMS監測功能。將它們結合起來,使用者可以獲得有關其Linux負載的豐富洞察和實時可視性,並能快速解決出現的任何問題。

我們希望大家花些時間測試PowerShell on Linux,並告訴我們你的看法。你可以點選此處,瞭解有關OMS Automation的更多資訊。在本週的LinuxCon大會上,Wim Coekaerts將發表主題演講,我們也設立了一個展臺來展示PowerShell,我也會主持一個包含各種演示的環節。

如果你是PowerShell新手,一個很好的學習方式就是利用GitHub上的學習PowerShell資料庫。我們還提供免費的Microsoft Virtual Academy線上課程:PowerShell 3.0新手指南。歡迎加入powershell.org/上的PowerShell社群並關注PowerShell團隊部落格。我們近期將對其進行更新,以滿足Linux社群的需求。

這一天我們已經等得太久,未來一定會更加精彩。歡迎加入我們,共同開發一個永遠能給我們帶來意外驚喜的工具。