マイクロソフト研究所

クラウドこそがコアビジネスと言い切るMicrosoft

 米国シアトルで開催されたMicrosoftの開発者向けカンファレンス「Build 2017」を受け、5月23日~24日には、東京で開発者向けカンファレンス「de:code 2017」が開催された。

 本稿では、これらのイベントなどからなどからMicrosoftの最新動向などを紹介していく。

クラウドへのシフトを急速に進めるMicrosoft

 少し前からクラウドのMicrosoft Azureにビジネスの中心を移していたMicrosoftだが、Build 2017では「クラウドこそが、マイビジネス」と言い切るほど、クラウドへのシフトを鮮明に打ち出している。Windows 10などのクライアントOSなども、クラウドに接続することを前提にしてOSやアプリケーションの開発を行っている。

 Microsoftのクラウド戦略は、IaaSやPaaSのように単になる仮想マシンやベースプラットフォームを提供するだけでなく、クラウドを前提として高度なサービスを提供し、高い付加価値を出していこうとしている点が特徴だろう。

Microsoftでは、IoTやAI時代に向けて、クラウドとエッジの関係を大きく変えようとしている(出典:Build 2017基調公演ビデオより、以下同様)

 フォーカスされたキーワードとしては、「Intelligent Cloud」「Intelligent Edge」の2つがある。クラウドの有り余るCPUパワーとビッグデータを組み合わせ、機械学習などのさまざまな機能により、クラウド自体を"人工知能化"していこうとしている。

 実際、AzureではCortana Intelligent Suiteとして、データ分析、機械学習、認識サービスなどの高度なインテリジェントサービスを提供している。スイートとは言っても、枠組みを提供しているだけで、実質的にはAzure上で提供している各種のサービスを組み合わせたものだ。

 例えば、何百万ものデバイス(IoTデバイスなど)から利用情報を取得し管理するEvent Hub、ビッグデータを管理するするためのデータベースとしてはSQL Data Warehouse、NoSQLのDocument DBなどが用意されている。

 ビッグデータから分析を行う機械学習システムとしては、Data Lake Analytics、HDInsight、数百万のIoTデバイスからのデータストリームをリアルタイムで処理するStream Analyticsなどが用意されている。最後に、機械学習をかけたデータを出力するためのインターフェイスとして、Skypeなどのチャットシステムで会話を行うAzure Bot Service、Cortanaを利用した音声出力/音声認識、画像認識(人物認識、表情認識)、機械翻訳機能などを提供している。

 Build 2017では、AI for Workplace Safetyというデモが行われた。建設現場で行われているさまざまな作業をスマートフォンのカメラや監視カメラの映像から人工知能が認識し、危険を察知して警告するようになっている。

 例えば、鋼材を切る工具の電源を入れっぱなしで作業者が離れたら、現場管理者のスマートフォンにアラートが送られたり、危険な作業を行うのに安全基準を満たしていない作業者を画像で認識してアラートを発したり、作業に必要な工具がどこにあるのかをスマートフォンで問い合わせたりすることができる。

 AI for Workplace Safetyはデモだが、現状でもAzureの各サービスを組み合わせることで、現実のサービスとして構築することが可能だ。

AI for Workplace Safetyでは、工事現場をカメラで監視して、工作機械などをAzure側で物体認識するため、どこに何があるのかを把握できるほか、危険な使い方をしている作業者へアラートを出すことができる。

 もう1つ、Intelligent化ということでは、Office 365に搭載されたMicrosoft Graphを使って、Office 365の機能をデータ化しようとしている。

 例えば、複数のユーザーが参加するミーティングを開催するのに、各人のOutlookスケジュールを見て、新しいミーティングいつ入れるのが最適なのかをアドバイスしてくれる。このような機能があれば、ミーティングの参加者にメールを入れてスケジュールを調整したり、公開されているOutlookのスケジュール帳を複数人分確認したり、といった手間が省ける。

Microsoft TeamとSkypeを使って、各国の従業員と簡単にミーティングが行えるようになる

 次世代のOffice 365では、Azureの機械翻訳機能と連携し、PowerPointのスライドを自動的に翻訳して表示したり、PowerPointからSkypeに接続して、PowerPointのスライドを見ながらミーティングをしたりすることができるようになる。

 もちろん、Skype Translatorを使ってミーティングの音声を自動的に翻訳することもできる。

 こういった機能も、AzureのIntelligent機能をうまく使ったモノといえるだろう。

次世代のPowerPointでは、機械翻訳機能を使ってリアルタイムにプレゼンテーションの翻訳を行う
Skypeの機械翻訳機能を使えば、プレゼンテーション画面や音声も各国語に翻訳しながらプレゼンテーションを行える

超分散型データベースAzure Cosmos DB

 今回のBuild 2017では、データベース部分の機能拡張が行われた。Azure上でPostgreSQLとMySOLがマネージドサービスとして提供されるようになったほか、地球規模のビックデータが扱えるAzure Cosmos DBが発表された。

 Azure Cosmos DBは、NoSQL DBであるDocument DBを大幅に機能拡張したものだ。既存のDocument DBは1つのリージョンで動作しているが、Azure Cosmos DBでは、地球規模でデータセンターを提供しているAzureを利用し、データを広域に分散させた超分散型のデータベースだ。Azureの40カ所にわたるデータセンターにデータを分散させながら、1つのデータベースとして動かすことができる。

 これにより、サポートされるデータ量はPB(ペタバイト)クラスへと規模が拡大する。また、地球規模に展開されているAzureのデータセンターを利用するため、1秒あたり数百万トランザクションを処理できるようになった。

 データモデルもキーバリュー型、ドキュメント型、カラムファミリー型、Graph型などが用意されている。また、アクセスAPIもDocument DB、MongoDB、Spark、Table Storage、Gremlin Graphなどが利用できる。

 前述したように、Azure Cosmos DBは地球規模のAzureのデータセンター全体で動作しており、リージョンという概念はない。このため、全世界でサービスを提供する必要があるアプリケーションなどには、非常にメリットがある。

 データを自動的にユーザー近くのリージョンにレプリケーションすることで、世界のどの地域からアクセスがあっても、身近なAzureデータセンターからレスポンスを返すことになる。この仕組みにより、地球規模のデータベースでありながら、非常に高いレスポンスを実現している。

 また、各リージョンへのレプリケーションなどの機能は、Azure Cosmos DBがバックグラウンドで自動的に行ってくれるため、システム管理にかかる手間が少なくて済む。このため、各リージョンで動作しているDocument DBをリージョンごとにコピーして動作させて大規模のサービスを展開するよりも、管理面ではユーザーの負担は非常に少ない。

 Microsoftにしてみれば、AWSのDynamoDBへの対抗もあるだろう。

 個人的にはAzure Cosmos DBは、テクノロジー面でも面白いと思う。

 全世界でサービスを提供している企業などにとっては非常に有益なサービスとなるだろうが、日本企業のどれだけの企業がこのサービスを必要とするのか疑問もある。国内市場や、広くてもアジア市場をカバーしている程度の企業にとっては、メリットを見いだせないかもしれない。

 ただ、今後ビジネスの重要な側面となるIoTなどを考えると、こういったDBは必要になるのだろう。

 例えば、食材を加工する機器を販売している中小企業が、海外に自社の製品を販売したとする。機器に各種センサーを埋め込み、Azure Cosmo DBでデータを収集していけば、日本に居ながら販売した機器の状態を監視し、必要な時期にメンテナンスを行ったり、突発的な故障時にも、どの部品が故障したのかなどをチェックしたりすることもできる。これにより、大規模なメンテナンスサービス網を構築しなくても、主要なリージョンに支社を設置することで、世界規模のビジネスを行えるようになる。

 また、各種センサーからの情報が集まることで、機器の改良なども日本国内の開発拠点で行うことができるし、単に機器を販売するというモデルではなく、機器本体は低コストで提供して稼働時間ベースのサービス料を課金したり、メンテナンスで収益を上げたりといった、新たなビジネスモデルも考えられる。

 現在のAzureやAWSでも同じようなビジネスを構築することはできるが、管理などの手間が多くかかる。Azure Cosmos DBを使えばデータベースとしては一元的に管理できるため、各リージョンにわたっての面倒な作業はしなくて済む。

Cosmos DBは、Azureのワールドワイドのデータセンターを利用したNoSQLサービスだ
PBクラスのデータを扱え、秒間100万トランザクションを実現する
SLAも4つにタイプに分かれている。ユーザーが必要とするSLAを優先できる

ある程度のインテリジェントをエッジに持たせたAzure IoT Edge

 もう1つ、大きな発表としてはAzure IoT Edgeがある。

 Azure IoT Edgeは、Edgeに置かれるデバイスに対し、Azureが提供しているサービス(Azure IoT Hub、Azure Stream Analytics、Azure Machine Learning)と連携できるモジュールを、Dockerコンテナとして提供する機能だ。

 この機能では、EdgeデバイスがすべてのデータをそのままAzureにアップするのではなく、ある程度の処理をEdgeデバイス自体でも行えるようにしている。

 また、Azure側でEdgeデバイスの管理を行っているため、Dockerコンテナ化したシステムのアップデートも簡単に行える。

 Azure IoT Edgeは、Linux版、Windows 10 IoT版が用意されている。Edgeデバイスとしては、Raspberry Piなどのコンパクトなデバイスで動作できるようなシステムとなっている。

 今までのMicrosoftなら、Edgeデバイスのハードウェア仕様を決めて、自社仕様のEdgeデバイスを販売するようなビジネスを行っているところだが、Azure IoT Edgeでは、Raspberry Piなどの多くのユーザーが使用しているデバイスを対象としているまた、OSに関しても、WindowsだけでなくLinuxを対象としているように、必ずしもWindowsにこだわっていない。Azure IoT EdgeのコードもGitHubで提供されている。

 なおAzure IoT Edgeの例としては、スウェーデンの工作機器メーカーSandvikが紹介されている。

 Sandvikでは、Azure IoT Edge上でStream AnalyticsやAzure Functions(サーバーレスコンピューティング)を動かし、Edgeである程度の機械学習処理を行わせている。また、何かトラブルの予兆があれば、Azure Functionsと連携した処理をEdgeで行うことが可能になる。

Sandvikでは、Azure IoT Edgeを利用して、Edgeにある程度のMachine Learningの処理を行わせることで、効率をアップしている
Sandvikが使っているAzure IoT Edgeの管理ダッシュボード。Azure IoT Edgeでは、アプリケーションを一括して更新することができる。Edgeでは、Servelessのアプリケーションを動かすことになる

 このほか、Azureの操作をコマンドラインで行える「Cloud Shell」が発表された。現状ではBashがサポートされているが、将来的にはPowerShellもサポートされる予定。これによりIT管理者は、スクリプトベースのプログラミングでAzureの仮想マシンなどを制御・管理することができる。

AzureのコマンドラインとしてBashがサポートされた

 Bashに関しては、Windows Serverでもサポートされることになった。Windows 10 ProでサポートされているBash on WindowsをそのままWindows Serverがサポートしたため、Windows Subsystem for Linux(WSL)を動作させることが可能。Windows ServerでもLinuxのバイナリを直接動かすことが可能になる。

 WSLに関しては、UbuntuベースのLinuxが提供されていたが、Build 2017の発表ではFedoraやOpenSUSEにも対応した。また、これらのシステムでは、Windows Storeからモジュールをダウンロードできるようになる。

 実際にWindows Serverに提供されるのは、秋にリリースが予定されているFall Creators Updateあたりになるだろう。

UbuntuもStoreから配布されるようになり、動作させるのが簡単になった
FedoraやOpenSUSEもStoreから配布され、Windows 10で動作する

 また、Windows ServerにおいてもWindows 10と同じInsider Programを開始し、高い頻度で新しいWindows Serverの機能を提供することになった。

 このほか、AzureのポータルアプリのiOS/Android版が発表された。これにより、モバイルからAzureの制御・管理が行えるようになった。デモでは、iOSからAzureにアクセスしてCloud Shellを動かし、コンソールを表示してBashベースでの制御ができることを示していた。

iOS向けのAzure Portalアプリが公開された。これにより、iPhoneからでも簡単にAzureのインスタンスが管理できる

 企業にとって注目されるのがAzure Database Migration Serviceだろう。オンプレミスのデータベースをAzure SQL Databaseに移行する場合、オンプレミスのデータベースがSQL Serverならそれほど移行に手間はかからないが、Oracle DatabaseやMySQLから移行する場合は、それなりの手間がかかる。

 しかしAzure Database Migration Serviceを使えば、簡単なステップでOracleやMySQLをAzure SQL Databaseに移行できる。

 またデータベース関連では、Azure上でPostgreSQLとMySQLがサポートされた。

Azure Database Migration Serviceでは、オンプレミスのデータベースをクラウドのAzure SQL Databaseへのマイグレーションを自動的に行うサービス。
Azure上でPostgreSQLとMySQLがサービスとして提供される。

対話型のAIスピーカー

 2017年の大きなトレンドになりそうなのが、対話型のAIスピーカーだ。2016年にAmazonがAlexaというクラウドベースの人工知能システムを提供し、AlexaのインターフェイスとしてEchoスピーカーを発表した。

 Echoスピーカーでは、ユーザーの音声を認識し、理解し、その指示に従った情報を返したり、命令を実行したりすることができる。例えば、Echoスピーカーに「音楽を流して」と言えば、AmazonのPrime Musicから音楽を流してくれる。

 またAlexaでは、Amazonが提供する一義的な機能だけでなく、Alexa Skill Kitという開発ツールを使って、独自のサービスを追加することもできる(Alex Skillsは、Amazon.comのWebサイトからユーザーが自由にダウンロード可能)。これを使えば、例えば「CNNのフラッシュニュースを読み上げて」といったことが可能になる。

 Alexaがヒットしたことにより、Microsoft、Google、Appleも同様のシステムの開発を進めている。GoogleはGoogle Homeという名称で開発しており、Googleの開発者カンファレンスでは、日本語版を年内に発表するとしていた。

 Microsoftは、Cortana Speakerという名称で発表。Amazon.comのようにハードウェアは提供せず、協力メーカーがハードウェアを作り、クラウドサービスをMicrosoftが提供することにした。第1弾としては、Samsungに買収されたオーディオメーカーのHarman Kardonが「Invoke」というスピーカーの発売を予定している。またHPもCortana Speakerの販売を表明している。

Microsoftでは、AzureのCognitive Serviceをさらに充実させていく
Harman Kardonが開発しているInvoke。Cortanaベースで音声認識と受け答えができる

 Microsoftでは、Cortana SpeakerはAmazonのEchoのようにスピーカーデバイスだけでなく、さまざまな家電機器やITデバイスに入り込んでくると考えている。このため、ハードウェアよりもサービスにこだわりたいと考えているようだ。Cortana Speakerでは、Alexa Skill Kitと同じようにCortana Skill Kitが提供され、サードパーティがさまざまなサービスを構築できるようにしている。

 Cortana Speakerの日本語版に関してはまったく未定だ。サービス自体は、既存のCortanaやAzureに各種サービスが利用できるため、日本語化はそれほど難しくないだろうが、実際にCortana Speaker自体を販売する企業がどのくらいあるだろうか。

 またハードウェアをMicrosoft自体が手がけていないため、Amazon Echoのように低価格でデバイスが提供できるどうかもわからない。Amazon Echoのスタンダード版が約180ドルのため、Harman Kardonではこれよりも安く提供したいとしているが…。

Visual Studioのアップデート

 このほか、開発ツールのVisual StudioのMac版を発表し、Xamarinベースでマルチプラットフォームのアプリを開発する場合、Visual Studio for Macベースで簡単に行えるようになった。またVisual Studioに、Azureのアプリケーションをオンラインでデバッグする機能が追加されている。

Visual Studioを用いて、Azureのアプリケーションのデバッグもオンラインで行えるようになった
Mac版のVisual Studioが発表された

 Microsoftでは、買収したXamarinのソフトウェアを進化させ、.NET Frameworkをオープンソースとし、今回すべてのOS環境において統一的なフレームワークの.NET Standard 2.0を提供することになった。

 .NET Standardベースならば、ビジネスロジック部分はすべてのOSで共通となるため、マルチデバイスではアプリ開発が簡単になる。

 ただUI部分に関しては各OSで異なることから、デバイスごとにコードを書く必要があった。そこでUIを共通化するために、XAMLをオープン化したXAML Standardが発表された。XAML Standardでは、各OSのランタイムを用意することで、XAML自体を動作させることができるようになる。開発者はUIをXAMLで記述すれば、各OSに対応した形でUIが作成できるようになる。これによりマルチデバイス開発が非常に容易になる。

 これが進めば、1アプリ、マルチデバイスという開発者にとって待望の環境が実現する。

Microsoftは、.NETのスタンダード化、GUIのXAMLのスタンダード化を行っている。これにより、各OSのUI部分も吸収したアプリの開発がXamarinで行える

*****

 Microsoftでは、Azureの機能を日々強化している。機械学習エンジンだけでなく、機械学習エンジンを利用した各種サービス、例えば画像認識、音声認識などのサービスが日々進化している。

 また、認識サービスのCognitive Serviceに関しても、開発者がカスタム化して学習させることを可能にしている。開発者が独自のCognitiveシステムを構築する時に、一から開発するのではなく、既存のCognitive Serviceの機能をベースとして使用し、必要な部分を自由にカスタム化できるようになったため、開発にかかる負担が非常に小さくなる。

 Microsoftでは、Azureの持つバックエンドのIntelligentを日々進化させているが、まだまだ多くのアプリケーションで、こうしたIntelligent機能が活用されているとはいえない。例えば、アプリの内部で画像認識を使えば、新たな可能性が出てくるものもあるだろう。実際、Windows 10 Fall Creators Updateでは、OSだけでなく、アプリ部分でもAzureのIntelligent機能が利用されてきている。

 Microsoftとしては、多くのアプリでAzureのIntelligent機能が使われることで、Azure自体のトラフィックや利益を上げるようにしていくのだろう。こういった意味でも、Microsoftのビジネスのコア部分がクラウドへとシフトしている結果だといえる。