エンジニアの2015年――クロスプラットフォーム、クラウド、機械学習、IoTは「次世代」でも何でもない変わりたいエンジニアのために変わるMS

「次世代」の技術として注目を集めている「クラウドを活用した開発」「マルチプラットフォーム開発」「ビッグデータ、機械学習」「Internet of Things」だが、実は「次世代」でも何でもない。2015年には開発現場でも目にすることが増えると予想されるが、実際にこれらの技術を扱うのに学習コストが掛かることを課題とするエンジニアは多いだろう。この学習コストを削減するためには、すでに習得している技術やツールをベースに新たな技術を取り込めるソリューションをベンダー側が提供してくれるとエンジニアには心強いはずだ。

» 2015年02月19日 10時00分 公開
[PR/@IT]
PR

 2014年9月に@ITが実施した読者アンケートで「興味がある次世代技術」として上位に挙がっていたテーマがある。「クラウドを活用した開発」「マルチプラットフォーム開発」「ビッグデータ、機械学習」「Internet of Things(以下、IoT)」だ(参考)。

 「次世代」の技術として注目を集めているこれらだが、実は「次世代」でも何でもない。2015年には開発現場でも目にすることが増えると予想されるが、実際にこれらの技術を扱うには学習コストが掛かることを課題とするエンジニアは多いだろう。この学習コストを削減するためには、すでに習得している技術やツールをベースに新たな技術を取り込めるソリューションをベンダー側が提供してくれるとエンジニアには心強いはずだ。

 このようなニーズに応えるために各ベンダー企業はさまざまな施策を進めているが、中でもここ1年の間にも急ピッチでクロスプラットフォーム、クラウド、機械学習、IoTなどの分野にさまざまな変革を進めている企業として注目されるのがマイクロソフトだ。最近では、「Windows Developer Program for IoT」という支援プログラムとともに、「Raspberry Pi 2」に無料で「Windows 10」が搭載可能になるという発表も行っている(参考)。

 中でも、2014年11月中旬に米国で開催されたイベント「Connect();」において発表された「.NET Core」のオープンソース化はエンジニアからの反響が多かった。近年、急速に自社技術や製品の「クロスプラットフォーム化」「オープンソース化」を推進している同社だが、コア技術である「.NET」の一部を完全なオープンソースソフトウエア(以下、OSS)として公開したことには、どのような意図があったのだろうか。

 今回、その意図と今後の見通し、そこからエンジニアが得られるメリットについて、日本マイクロソフトのエバンジェリストである井上章氏とプロダクトマネージャーの相澤克弘氏に話を聞いた。インタビュアーは、.NETを中心に幅広い技術情報を提供するWebメディア「Build Insider」の編集長であり、自身もエンジニアであるデジタルアドバンテージの一色政彦氏。

真の「OSS」としてGitHubに公開された「.NET Core 5」

一色 「.NET」はマイクロソフトテクノロジの代表格であり、特に業務システムの開発を中心として、広く使われているイメージがあります。一方で、最近のエンジニアの動向を見ていると、Webアプリやスマートフォンアプリ、ゲームアプリ開発などに携わるケースが増えており、その中でいわば「.NET離れ」のような状況も起きているようです。そのような中で「Connect();」では、「.NET Coreのオープンソース化」が発表され、話題になりました。

.NET 2015の概要(記事「GoAzure 2015 基調講演リポート」より引用)

 最初に伺いたいのは、今回のオープンソース化の意図についてです。オープンソース化された「.NET Core」と従来の「.NET Framework」はどう違うのか、加えてオープンソース化された「.NET」を、エンジニアにどのように使っていってほしいと考えているのかについて聞かせてください。

井上 ご存じの方もいると思いますが、実は「.NET Framework」のソースコード自体は、以前から「オープン」でした。ただし、その使われ方としてはアプリケーションのデバッグのために参照するといったことがメインで、コード自体に手を加えたり、開発そのものに参画したりといったことはできませんでした。一般的に考えられているOSSとは、スタンスが違っていました。

 現在、OSSと言えば、コードを参照できて、それをクローンして編集ができ、プルリクエストが送れて、開発に貢献できるという一連の流れのことを指していると思います。それに照らすと、.NET Frameworkは、ソースコードは「オープン」ではあるものの、厳密にはOSSではなかったわけです。

 今回の発表は、「.NET 2015」の構成要素である「.NET Core 5」が、エンジニアの皆さんが一般的に考える「OSS」としてリリースされたというものです。実際に、ソースコードがGitHubに公開され、プルリクエストも送れるようになっています。

一色 「.NET Core」と「.NET Framework」の使い分けについてですが、やはり「クロスプラットフォーム」を指向するアプリの場合は「.NET Core」を使うという形になるのでしょうか

相澤 はい。クロスプラットフォーム性重視であれば「.NET Core 5」。これまでに作られた.NET Framework上の資産を生かしていく、互換性が求められる場面では「.NET Framework 4.6」が選択されていくことになると思います。

「.NET Core」で誰が得をするのか?

一色 今回、このような形でマイクロソフトが.NETのOSS化に踏み切った理由は何なのでしょうか。

日本マイクロソフト デベロッパーエクスペリエンス&エバンジェリズム統括本部 マーケティング部 エグゼクティブプロダクトマネージャー 相澤克弘氏

相澤 まず、あらゆる分野でオープン化によるイノベーションが加速している現在、開発のスピードをさらに高めていくためには、.NETを従来と同じようなクローズドな環境のみで発展させていくよりはOSS化が有効だと考えています。

 もう一つ、実際に.NETの開発プロセスに多くのエンジニアの皆さまに参加していただくことで、マイクロソフトの技術に対して親近感を覚えてもらえればとも考えています。メーカーが独自に作っているものではなく、「自分たちも開発に関わった技術である」と感じてもらうことで、より多くのエンジニアの方に.NETを身近に感じ、利用してもらいたいです。実際に、エンジニアの皆さまからのプルリクエストの反映はすでに始まっていて、その一部には日本の方からのものもあります。

 今回の.NETのOSS化は、数年後の将来だけではなく、10年後、20年後といった長期的な視点で、マイクロソフトとユーザーの双方にとってメリットを生む施策だと考えています。

井上 こうしたマイクロソフト技術のオープンソース化によるメリットが、すでに出ている分野もあります。例えば、Sublime TextをはじめとするさまざまなテキストエディターにIntelliSenseの機能を追加する「OmniSharp」や、コンパイルプラットフォームである「Roslyn」などがそうです。これらがOSSとして公開されたことで、Mac OS XやLinuxを含む多様なプラットフォーム上で、.NETのコードを書いて、コンパイルし、実行できる環境が一気に整ってきています。こうした動きは、マイクロソフトの力だけでは実現が難しかったでしょう。

デジタルアドバンテージ Build Insider編集長 一色政彦氏

一色 .NET Coreは、クロスプラットフォーム開発向けのフレームワークということですが、ターゲットはどの辺りを意識しているのでしょうか。発表では、「ASP.NET 5」について、MacやLinuxでも使えるとされていました。Macでサーバーを立てて、アプリを運用する……というケースはまれな気もしますが。

井上 運用環境を考えた場合は、確かにMacをサーバーサイドで利用するケースは少ないかもしれません。ただ、エンジニアが開発環境としてはMacを使うケースは多くなっていますよね。一色さんも、今、MacBookを使われていますし(笑)。

一色 そうですね(笑)。iOS関連の開発を中心に行っているエンジニアであれば、Macをメインの環境にせざるを得ないという状況もあります。

井上 マイクロソフトが考えているのは、エンジニアが「自分の一番使いたいツールと環境」を使って、.NETアプリが書けるという状態です。それが、ひいては.NETエンジニアの増加につながると考えています。

 実際、かつてはWindows上でVisual Studioを使っていたエンジニアが、現在ではMacBookを使って、iOS向けアプリの開発やWeb開発を行っているケースも少なくないと思います。そうした人が、Windows以外の環境でアプリ作りたいと思ったとき、これまで培ってきた.NETのスキル捨てて、まったく違う言語や開発環境に移行しようとすると大変です。開発環境や実行環境が変わっても、すでに身に着けた.NETの知識やスキルを生かせる道があるというのは、エンジニアの方にとってもメリットであると考えています。

一色 個人のエンジニアとしては、.NET Core 5という新しい技術に、どのように取り組んでいったらいいのでしょうか。例えば、.NET Coreはまだベータ版ですが、ベータ段階のものを使って作ったアプリは、公開するなどしても問題はないですか。

井上 あくまでも現時点では「ベータ」という位置付けなので、マイクロソフトとして正式なサポートが行われないなど、製品版と比べれば制限はあります(正式版になったらサポートも行います)。

 ただ、OSSの世界に解放された技術ですので、それを踏まえた上で、いろいろと試してもらうのは大歓迎です。いろいろ作って公開してみて、もし問題や不満があれば、どんどんプルリクエストを送ってください。エンジニアの皆さんとマイクロソフトが一緒に育てていくのが、OSS化された「.NET Core 5」の真骨頂です。

コピーするだけでデプロイ――クラウド、Linux、Dockerでの.NETアプリ運用を最適化

一色 先日、行われたイベント「GoAzure 2015」の基調講演では、.NET 2015でのアプリ展開の容易さアピールするデモとして、パッケージをコピーするだけで、別の環境でASP.NET 5をすぐに動かしていました。.NET Core 5を使うと、例えば、WindowsやMac上で開発したアプリを、Linuxサーバー上にパッケージごとコピーすれば、すぐに実行が可能になるということですか。

井上 最終型は、そのような形を目指しています。背景としては、システム運用のスタイルが、自前でサーバーを立ててその上で行うものから、クラウド上での運用に移行してきているという現状があります。

 従来であれば、何かシステムやアプリを動かそうと思ったら、まずサーバーを用意し、そこにOSとフレームワークをインストールし、必要に応じて再起動したりと、多くの時間と手間が掛かっていました。運用環境がクラウドになることで、そうした手間は少なくなり、すぐに実行環境は整えられるようになっています。

 さらに、そこにアプリをコピーするだけで容易にインスタンスを増やせる状況があれば、スケールアウトによる負荷分散などが必要になった場合にも、さらに運用性が高められます。この仕組みは、特にクラウドでの運用を最適化することを考えた新機能だと言えます。

一色 .NETでクラウドといえばMicrosoft Azure(以下、Azure)ですが、Azureに.NET Core 5の環境が組み合わされることで、何が変わるのでしょうか。

井上 アプリ開発とデプロイの「選択肢」が大きく広がります。Linuxでも、Docker上でも動かすことがより簡単にできるようになりますので。さらに、それに対して、Visual Studioからデバッグすることも可能になる予定です。

相澤 .NET Coreだけではなく、Visual Studioも加えることで、さらにAzure上でできることが広がります。Visual Studioの中にはAzureのSDKが入っており、デバッグを始め、Azure上で運用するアプリの開発生産性をさらに高める使い方ができるようになっています。

クラウド、IoT、機械学習「新たな世界」に踏み出すエンジニアをサポート

井上 また、Visual Studioを使うことで、サーバーサイド、クラウドサイドのさまざまなOSの違いに加えて、デバイスの違いを超えたクロスプラットフォーム開発が行えるようになります。OSSの.NET Gadgeteerや.NET Micro Frameworkを使えば、組み込みエンジニア向けと思われていたアプリ開発を、.NETの業務アプリ構築と同様のスキルセットを使って進めることが可能です。

相澤 今後デバイスなどのコモディティ化が進むことが予想され、クラウドは数多くのサービスを束ねる重要な存在となります。今後の拡大が予想されているIoTも、その一つの例です。IoTで使うデバイスとクラウドは密接につながることでしょう。

一色 IoTといえば、収集した大量のセンサーデータを生かすために、統計解析や機械学習など高度な数学的知識が要求されるイメージがありますが、エンジニアの中にはハードルが高いと思っている方も少なくないでしょう。デバイスについても、今後さらに新たなものが登場するかもしれず、対応が大変です。マイクロソフトに対して、そうしたエンジニアの課題を解決してくれると期待していいのでしょうか。

日本マイクロソフト デベロッパーエクスペリエンス&エバンジェリズム統括本部 クラウドプラットフォーム推進部 エバンジェリスト 井上章氏

井上 確かに、IoTに取り組むためには、エンジニアにもより広い視野と知識が必要になってきます。デバイス側のハードウエアの知識だけでも、クラウド側の知識だけでも不足で、そのつながりやデータの通信の仕方、さらに収集した大量のセンサーデータの扱い方などを知っていることも大切です。

 ただ、現実的に考えて、その全ての知識を持っている人は少なく、学習も容易ではありません。そこで、.NETやAzureを使うことで、必要な知識の一つ一つを、ソフトウエアエンジニアが一から学ばなくても済むようにサポートできると思っています。

 Azureには、機械学習をWebサービスとして利用できる「Azure Machine Learning」やロードテスト機能なども充実しています。またハードウエアでいえば、増加するデバイスには.NET Micro Frameworkが対応していきます。

相澤 IoT、クラウド、スマートデバイスなどが関わってくるシステムを作り上げていくためには、全体の中の個別の仕組みに関する知識を持って取り組む必要があります。そうした状況の中で、マイクロソフトは、エンジニアが「.NET」のスキルセットを持っていれば、幅広く対応が可能になる環境を作っていこうとしています。

 サーバーサイドも、クライアントサイドも、スマートデバイスも、IoTも、クロスプラットフォームかつエンド・トゥ・エンドでカバーできるというのは、エンジニアにとって大きなメリットになると思います。

変化が激しい世の中では「IoT」もすぐそこに。エンジニアは「どちらの方向に進むべきか」

一色 IoTは興味のあるエンジニアも多いと思いますが、まだまだ実業務でIoTを使った案件は先の話と思っている方も少なくないと思います。.NETやAzureを使ったIoTの事例を教えてください。

相澤 例えば、大手総合建設会社の竹中工務店は2014年の10月に次世代建物管理システムをAzure上に構築したことを発表しています。建物の設備運用を最適化することでサービスレベルの向上と入居者の満足度の向上を実現するシステムで、竹中工務店東京本店で実証実験を行うとともに、2015年以降、ビルオーナー向けに提供していくことになっています。

 確かに現在、業務アプリの開発を中心に手掛けている方の中には「IoT」「機械学習」「クラウド」、場合によっては「Web開発」や「クロスプラットフォーム」と聞いても、あまりピンとこない人もいるかもしれません。ただ、世の中では確実にそうしたものに対するニーズが生まれており、それを実現するための技術にも、思ったより簡単にアクセスできるようになっていることを知ってもらいたいです。

 そして、少しでも必要性を感じているなら、すぐに取り掛かってほしいと思います。例えば、2020年には自治体やあらゆる産業がIoTイニシアティブを展開し一大テーマとして大きな盛り上がりを迎えるといった予測もありますが、すでにそれは5年後にまで迫っています。その盛り上がりは5年後にいきなり立ち上がることはなく、今年から立ち上がり、2〜3年後には大きな変化として捉えられるようになるはずです。そうであれば、取り組みは今すぐに始めなければ間に合わない可能性もあるわけです。自分の現在のスキルをベースに、どこから手を着ければいいか、ぜひ考えてみてはいかがでしょうか。

一色 どうもありがとうございました。



 このように、マイクロソフトの最近の取り組みは、.NETのオープンソース化を軸にクロスプラットフォーム、クラウド、機械学習、IoTへとつながっていく。そこにはエンジニアとともに変化をしようという思いが根底に流れているのが分かる。

 また、同様な形態を採っているものとして「Windows Insider Program」がある。このプログラムに参加すると、「Windows 10 Technical Preview」の最新版が自動でアップグレードされる。これにより、Windows 10の新機能をいち早く試してもらい、フィードバックを得られやすくしているのだ。これも、オープンソース的な取り組みといえるだろう。

 技術革新の速度やビジネス要求の変化が加速する昨今、エンジニアにも変革が迫られる傾向が2015年以降も上昇していくと思われる。もしかしたら、注目を集めるクロスプラットフォーム、クラウド、機械学習、IoTを「次世代」技術として捉えていたのでは、エンジニアとして生き残るのは難しいのかもしれない。といっても、悲観するべきことではない。ベンダーが世の流れに応じてエンジニアとともに変化をしようとしているのなら、それに応えるエンジニアには新たなチャンスが生まれるだろう。

Copyright © ITmedia, Inc. All Rights Reserved.


提供:日本マイクロソフト株式会社
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2015年3月22日

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。