MicrosoftはWindowsに拘泥せず、Linuxやオープンソースに対応した開発ツールの拡充に注力している。
2016年初め、Microsoftは「Microsoft by the Numbers」(数字で見るMicrosoft)を発表し、「Microsoft Azure」で稼働する仮想マシン(VM)の25%以上を「Linux」が占めることを明らかにした。この割合は2016年末までに「ほぼ3分の1」になり、2017年10月には40%がLinuxになったと発表した。
開発者会議「Build」でMicrosoftのAzure Compute担当バイスプレジデントのコリー・サンダース氏が「Linuxは40%以上」に増えたと述べ、Azure上のWindows VMの割合がこれ以上縮小すれば困ったことになるとも語った。
それはさらに「Microsoftのプラットフォームに何が起きているのか」という核心に及んだ。Azureのデータが示している通り、「Microsoft loves Linux」というスローガンは単なる中身のない言葉ではない。
クライアントサイドでは、Microsoftは「Windows Phone」を捨てて「iOS」と「Android」向けに独自のアプリケーションを開発する方を選んだ。「Microsoft Word for Android」は5億回以上ダウンロードされている。
もう一つの特筆すべき展開として、「Windows Subsystem for Linux」(WSL)と呼ばれるWindows 10の機能がある。これはLinuxバイナリコード(ネイティブELF64)をWindowsで実行できる素晴らしい技術だ。LinuxシステムコールはWindows APIに変換される。
これでLinuxディストリビューション(「Ubuntu」「openSUSE」「SUSE Linux Enterprise Server」「Debian GNU/Linux」「Kali Linux」)をMicrosoft Storeからインストールできるようになった。この機能は誰でも利用できるとはいえ、対象は一般ユーザーではなくWindowsでLinuxツールチェーンや無数にあるコマンドラインユーティリティーを使う開発者だ。そして公式にサポートされたLinux GUI(グラフィカルユーザーインタフェース)はない。ただしハックすることはできる。
Linux VMではなくWSLを使うことは、同じファイルシステムへのアクセスを含む密接な統合を意味する。WindowsからLinux実行ファイルを起動したり、WSLからWindows実行ファイルを起動したりすることもできる。
WSLの狙いは、UNIX系のプラットフォームをターゲットとする開発者にとっての摩擦をなくすことにある。開発者はWindows 10を設定して、WSLでコンパイルと運用を行いながら、Windows側でコードエディタ(「Visual Studio Code」を含む)を実行できる。
Microsoftは徐々にWSLの改善を図っており、最新バージョン(2018年4月のWindows 10更新プログラムに含まれるビルド1803)には多数の機能強化が盛り込まれた。その中には、ディレクトリごとに大文字と小文字が識別できるファイル名のWindows側およびLinuxでのサポート、UNIXドメインソケット、バックグラウンドタスク、WindowsとWSLの間でパスの名称を変換できるユーティリティーなどが含まれる。
Visual Studio Codeを「Node.js」と併用している開発者は、設定ファイルで「useWSL」の属性をtrueに設定するだけでWSLをターゲットにできる。
Microsoftは「Visual Studio」でLinuxやクロスプラットフォームプロジェクトをターゲットにできるようにするために、複数の取り組みを進めてきた。必ずしもWSLを有効にする必要はない。2014年末に同社が発表した「.NET Core」は「.NET Framework」から分岐したオープンソース製品で、Windows、Linux、Macで実行できる。現行版のバージョン2.1ではArmベースの「Raspberry Pi」がサポート対象に加わった。
実際に、.NET Coreは「ASP.NET Core」「Entity Framework Core」などのフレームワークでもサポートされている。いずれも現行バージョンは2.1だ。
Microsoftは今もWindowsオンリーの.NET Frameworkをサポートしているが、新たな投資は.NET Frameworkではなく.NET Coreにすると同社は言明している。
BuildでMicrosoftは、今後登場予定の「.NET Core 3.0」ではWindowsデスクトップアプリケーションをサポートすると発表した。これは.NET Frameworkをレガシーサポートの役割へと追いやる方向に向けた重要な一歩といえる。
ただし.NET Coreは.NET Frameworkの機能の一部しかサポートしていない。「ASP.NET Web Forms」「Windows Communication Foundation」(WCF)、「Windows Workflow Foundation」のサポートが省略されていることには注意する必要がある。
.NET Coreには「C#」への偏りもある。「Visual Basic」や「F#」もサポートされてはいるが、全種類のプロジェクトには対応していない。
.NET Coreを使うべき有力な理由もある。一般的にはパフォーマンスが優れている方がよい。.NET Coreはマイクロサービスを念頭に設計されていて、LinuxとWindowsの両方のコンテナで快適に動作する。
Visual StudioにおいてASP.NET CoreでLinuxコンテナをターゲットとするためには「Docker for Windows」をインストールするだけで済む。Docker for Windowsは「Hyper-V」の仮想化機能を使っており、右クリックメニューでDocker Linuxのサポートを同アプリケーションに追加する。MicrosoftはLinux向けの「SQL Server」も提供するようになった。
現代では、開発者はPCではなくスマートフォンや「iPad」「Chromebook」のためのコードを書かなければならないことがある。
このエンドツーエンドスタックをターゲットとするために、Microsoftはクロスプラットフォームモバイル開発ツールが必要になり、2016年初めにiOSとAndroid向けのC#コンパイラを入手する目的でXamarinを買収した。
Xamarinコンパイラは、.NET Frameworkの初期のオープンソースインプリメンテーションである「Mono」をベースとしている。Microsoftは現在、Xamarinと.NET Coreとの間でできるだけ多くのコードを共有しようと努めている。
開発者はXamarinを使い、共有型の非ビジュアルコードを開発してそれを各プラットフォーム向けのネイティブGUIと組み合わせるか、あるいはXamarin Formsと呼ばれるアブストラクションを使ってGUIコードも共有することができる。いずれもネイティブプラットフォームGUIコントロールを使うアプローチであり、カスタム描画でそれをエミュレーションするアプローチではない。
Buildカンファレンスでは、Xamarinチームが「Android Emulator」をHyper-Vでサポートするプレビューを披露した。これで開発者にとっての悩みの種が解決される。これまではAndroid Emulatorを使うためにIntelのHAXMを有効にする必要があったが、HAXMとHyper-Vは共存できないため、Hyper-Vを無効化しなければならなかった。
XamarinはMacデスクトップもターゲットにできる。ただしVisual Studioからではない。macOSのターゲティングは、例えば「Visual Studio for Mac」を使うなど、Mac上で行わなければならない。
Visual Studioを使ったモバイル開発には他のオプションもある。Microsoftは「JavaScript」(あるいはJavaScriptのスーパーセットである「TypeScript」)とHTMLで開発されたアプリ用に、「Apache Cordova」向けのツールを提供している。
開発者は「C++」でコードを書いて、iOSやAndroid向けにコンパイルすることもできる。
MicrosoftのLinuxサポートは、マイクロサービスやDevOpsの展開の要でもある。
同社がクラウドネイティブアプリケーションのことを語る場合、それはアプリケーションをマイクロサービスに分解して簡単に拡張できることを意味する。
マイクロサービスは一般的にコンテナも示唆するが、「Azure Functions」というサーバレスプラットフォームもある。データベースサーバをホスティングする代わりに「Azure SQL Database」や「Azure Cosmos DB」(MicrosoftのNoSQLデータベース管理ツール)のような管理型サービスを活用すればメンテナンスの負担を軽減でき、開発者はそうしたAzureサービスに内蔵された拡張性を活用できる。
Windows開発はニッチな行為になり、Microsoftのプラットフォーム上でさえもLinuxが主流になるのだろうか。
同社にはまだ、「Active Directory」や「Exchange」「Dynamics」、SQL Serverなど他のサーバ製品と密接に統合された「Windows Server」を推進する強いインセンティブがある、というのがその答えだ。
これはむしろ、パブリックWebアプリケーションは既にLinuxに独占されているものの、もし顧客がAzureで運用しているのであれば、推奨されるOSに関係なく同社が繁栄できるということをMicrosoftが認識していることを物語る。
Microsoftにとっての利点は、「Java」や「PHP」、Node.js、あるいは他の技術を使っている開発者に、Windows上で運用する摩擦を感じさせずにクラウドサービスを提供できる点にある。
もっともMicrosoftのコンテナ事情は、恐らく混乱を招くほどに多様だ。開発者は以下に示すようなさまざまな方法でコンテナを運用できる。
このサービスは2018年4月にプレビュー版を脱した。ユーザーはVMやクラスタ(サーバレスモデル)を作成せずに、WindowsまたはLinuxコンテナを自動拡張機能付きで作成できる。料金はCPUとメモリ利用に対して秒単位で課金される。
「顧客からは常に、ACIはバーストワークロードの処理に適しているという声が寄せられる。ACIは、迅速でクリーンにパッケージされたバーストコンピューティングをサポートしており、クラスタマシンを管理する間接費が取り除かれる」。サンダース氏はブログにそう記している。
Web App for Containersは、「Web App Service」と同じモデルでコンテナをデプロイできる。
設定や拡張、負荷分散は容易だが、真のサーバレスではない。料金は利用しているかどうかを問わず、稼働しているものに対して支払う。ただし自動スケーリングのためのルールを設定することはできる。単一のWeb App for Containersで複数のコンテナを運用することも可能になった。
ホスティング型の「Kubernetes」サービスによって調整されたLinuxコンテナで、ユーザーはコマンドラインを使用するか、Azureポータル経由でクラスタをデプロイする。Kubernetesには自己修復の設定、拡張、負荷分散、自動ロールバック(必要があれば)、ストレージ管理などのメリットがある。
Azure Service Fabricはマイクロサービス管理のためのランタイムで、WindowsとLinuxコンテナの両方に対応している。
Kubernetesが業界全体で広く使われているのに対し、Azure Service FabricはMicrosoft独自のサービスだが、Azureだけではなくオンプレミスでも運用できる。
Azure Service Fabricはデプロイ、モニター、アップグレード、拡張などを管理できる。ステートフルサービス用に「Reliable Actors」というアプリケーションフレームワークをサポートしている。
Buildで発表されたAzure Service Fabric Meshのプレビュー版は、サーバレスアプローチを支持してクラスタ管理の必要性をなくしている。
ユーザーはLinuxまたはWindowsを使ってバッチコンピューティングでコンテナを運用できる。
デバイスの選択を合理的にする助けになっているのが「Azure Container Registry」(ACR)だ。
このサービスはDocker Registryと互換性のあるAPIを使っており、開発者はコンテナイメージを管理して、それを上記の全サービスにデプロイできる。
これでコンテナをACRにプッシュし、ACRデプロイからプロダクションへとプッシュする継続的インテグレーションと継続的デリバリー(CI/CD)のプロセスをセットアップすることが可能になった。
Copyright © ITmedia, Inc. All Rights Reserved.
DXが進み、レガシーシステムからの脱却が喫緊の課題となっている今。「ERP×ノーコードツール」のアプローチで基幹システムの刷新に取り組む企業が増えている。そのアプローチを推進するに当たってのポイントを解説する。
DXの本質は、デジタル技術を駆使して変化に適応する能力を身につけることにある。その手段の1つとして注目を集めているのが、ローコード/ノーコード開発ツールだ。京王グループなどの事例とともに、その特徴やメリットを紹介する。
DX人材の重要性が高まる中、ノーコードツールの活用によって業務改革と人材育成を両立しようとする動きが活発化している。年間約780時間の工数削減を実現した京セラをはじめとする5社の事例を基に、その実態を探る。
急速に進化するデジタル技術は、製造業などのものづくりの現場にもさまざまな恩恵をもたらしている。しかし、設備点検業務や棚卸業務などの立ち仕事や移動が多い現場では、いまだにアナログ業務が残存し、効率化の妨げとなっているという。
あらゆる業界でDXの重要性が増しているが、工場や倉庫の中にはデジタル化が後回しにされている隙間業務が多数ある。その理由を明らかにした上で、それらの業務をモバイルアプリでデジタル化し、現場DXを推進する9社の事例を紹介する。
繝弱�繧ウ繝シ繝峨�縲∬イ�縺ョ驕コ逕」縺ァ縺ゅk繧「繝翫Ο繧ー讌ュ蜍吶r縺ェ縺上○繧九�縺� (2024/11/12)
驥題檮讖滄未縺ョ繝「繝繝翫う繧シ繝シ繧キ繝ァ繝ウ縲譛驕ゥ隗」縺ォ蟆弱¥縺ォ縺ッ (2024/3/29)
いまさら聞けない「仮想デスクトップ」と「VDI」の違いとは
遠隔のクライアント端末から、サーバにあるデスクトップ環境を利用できる仕組みである仮想デスクトップ(仮想PC画面)は便利だが、仕組みが複雑だ。仮想デスクトップの仕組みを基礎から確認しよう。
「マーケティングオートメーション」 国内売れ筋TOP10(2025年5月)
今週は、マーケティングオートメーション(MA)ツールの売れ筋TOP10を紹介します。
「サイト内検索」&「ライブチャット」売れ筋TOP5(2025年4月)
今週は、サイト内検索ツールとライブチャットの国内売れ筋TOP5をそれぞれ紹介します。
「ECプラットフォーム」売れ筋TOP10(2025年4月)
今週は、ECプラットフォーム製品(ECサイト構築ツール)の国内売れ筋TOP10を紹介します。