今天,我們的客戶面對的是一個多平臺、多云、多操作系統共存的世界。這個世界帶來了新的挑戰,用戶需要新的工具把一切都整合起來。而微軟上下都在全力以赴打造這樣的管理工具,讓用戶能夠在任何地方、用任何設備、對任何平臺進行有效的管理——既可以用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,未來還將支持更多平臺?,F在你就可以從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社區的需求。
這一天我們已經等得太久,未來一定會更加精彩。歡迎加入我們,共同開發一個永遠能給我們帶來意外驚喜的工具。