Microsoftが今日(米国時間8/18)、同社のPowerShellをオープンソース化し、LinuxやOS Xでも使えるようにする、と発表した。
PowerShellは、WindowsのパワーユーザーのためのMicrosoft製のコマンドラインシェルで、タスクを自動化するための拡張可能なスクリプト言語(シェル言語)のインタープリタでもある。シェルとしてはLinux上のBashとあまり変わらないが、Windowsという固有のシステムに深入りしている部分もある。なおBashは今や、Windows上にもある。Microsoftは今変わりつつあり、CEOのSatya Nadellaが折りにふれて繰り返すのは、今の同社が“マルチプラットホーム、マルチクラウド、そしてマルチOS対応”であることだ。今の同社では、数年前にはあり得なかったようなことがふつうに行われている。Windows 10の中にLinuxのサブシステムを作り、その中核的ツールの一部をオープンソース化する。そんなことが、今や日常茶飯事だ。
Microsoftのテクニカルフェローで同社のEnterprise Cloudグループの主席アーキテクトであるJeffrey Snoverによると、Nadellaが全社的に訴えたいのは、顧客とのコミュニケーションを充実し、顧客が求めているものの実現を、売上と利益の源泉にしていくことだ。“顧客はサーバーもクライアントもクラウドも自分で選びたい、自分で決めたいと思っている。そんな顧客の親身なパートナーになってあげることがMicrosoftと顧客の共通の利益であるべきだ”、と彼はNadellaの主張を要約する。今のそんなMicrosoftがPowerShellの対応の幅を広げることは、顧客が、“どんなクライアントを選んでも…それがWindowsであってもOS XであってもLinuxであっても…単一の管理スタックを使える”ことに通ずる。まさに、Nadellaが主張するマルチOS対応だ。
Microsoftは今日の発表に先駆けて.NETフレームワークをオープンソース化し、.NET CoreをLinuxとOS Xでも可利用にした。PowerShellは.NETベースのツールなので、それが今回Linux/OS X対応になるのは自然な流れだ。
PowerShellを強力にしているのは、シェル本体だけではない。マルチOS化の一環としてPowerShell Editor Serviceが提供されるので、デベロッパーはシェルの機能をテキストエディターの中から利用できる。またVisual Studio Codeもサポートされ、そしてSublime(TypeScriptプラグイン)はすでに可利用だ。
PowerShellは拡張性が高いので、VMwareや、クラウドではライバルのAWSといったパートナーたちですら、PowerShell用のcmdlet(s)というものを作り、シェルやスクリプトから、たとえばAWSの場合は、EC2のインスタンスを直接管理できるようにしている。
PowerShellはMicrosoftのOperations Management Suite(OMS)を統合しているので、Azure, AWS, GoogleのCloud Platform、あるいはオンプレミスのデータセンターなど、アプリケーションやワークロードがどんなプラットホーム上にあっても、それらを管理できる。
Windows上にBashがあることと、LinuxやOS Xの上でPowerShellが使えることの違いについてSnoverは、前者(Bash on Windows)は、オープンソースのデベロッパーがWindows上で仕事ができるための措置だ、と言う。
Snoverも認めるように、オープンソースプロジェクトの管理についてMicrosoftはまだ‘学習中’だが、彼のチームはすでに、パートナーたちとその件で多くの会話を重ねている。今後はコミュニティを適正に統治することにより、コードの変更がコミュニティから得られるようにしたい、ともいう。もちろんPowerShellのコードも、その対象に含まれる。
Ubuntu, CentOS, Red HatなどのLinuxユーザーとOS Xのユーザーは、PowerShellを動かすために必要なものを、GitHubのPowerShellリポジトリからダウンロードできる。