Microsoft Connect(); 2017 で語られた技術情報まとめ

[Microsoft Connect(); 2017 Day 1 リンク的なの (wordpress.com) ](https://buchizo.wordpress.com/2017/11/16/microsoft-connect-2017-day-1-%E3%83%AA%E3%83%B3%E3%82%AF%E7%9A%84%E3%81%AA%E3%81%AE/)に記載された技術情報が読めない程度に枯れた人間になってしまったので、自分に水を与えるために作りました。
**太字**が今回 Connect(); 2017 で紹介された部分 (つまり新機能など) です。
かなり乱暴に書いているので読みにくいと思います。如何せん量が多すぎるので、ゆっくり直していく予定です。

# Azure App Service

Web Apps、Mobile Apps 等 Web 系 PaaS の総称です。
今回[**サービス提供状態を一覧表示できるインターフェイス**が GA (microsoft.com) ](https://azure.microsoft.com/en-us/blog/announcing-the-general-availability-of-azure-app-service-diagnostics/)されました。

Azure App Service は以下のサービス群で構成されます。

| サービス名 | めっちゃざっくりとした説明 |
|:-----------|:--|
| Web Apps | .NET、Node.js、Java、PHP、Python が動作する Web プラットフォーム。 |
| Mobile Apps |  Xamarin、Apache Cordova といったハイブリット アプリを提供するプラットフォーム。Android、iOS、Windows 向けにいわゆる Web ベースのアプリケーションを提供する基盤として使えるっぽい。 |
| Logic Apps | 各サービスの前後関係を持たせ、連携を行い、ビジネス ロジックを表現するプラットフォーム。メールを受信したらファイルを更新する、ある Web Apps にアクセスしたら別の Web Apps の情報を更新する、といったことができる。多分。 |
| API Apps | Logic Apps から呼び出せるマイクロサービスを作れるプラットフォーム。 |
| Azure Functions | サーバーレス コンピューティングを実装する謎のプラットフォーム。 |

- [App Service の Launch 情報 (wordpress.com)](https://buchizo.wordpress.com/2015/03/25/azure-app-service/)
- [OneDrive から Web Apps のコンテンツをデプロイする (qiita.com)](https://qiita.com/seigo/items/ca2f3590d99eb0a0ed42)
- [Mobile Apps とは (microsoft.com)](https://docs.microsoft.com/ja-jp/azure/app-service-mobile/app-service-mobile-value-prop)
- [Logic Apps とは (microsoft.com)](https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-what-are-logic-apps)

## Xamarin

C# で開発できるクロスプラットフォームなモバイル アプリケーションの開発言語です。Visual Studio (for Mac) で開発できます。買収劇などドラマティックな展開のせいで愛着を持つ人続出、そんな素敵なプラットフォームです。

- [Xamarin とは (qiita.com)](https://qiita.com/amay077/items/38ee79b3e3e88cf751b9)

## Apache Cordova

HTML5 + JavaScript で Xamarin に対抗する競合製品。Mobile Apps はどっちも動くからすごいんですよ。

- [Apache Cordova とは (codezine.jp)](https://codezine.jp/article/detail/9218)
- [Xamarin vs Cordova (buildinsider.net)](http://www.buildinsider.net/mobile/xamarinformsevolve2014/01)

## Azure Functions

高添さんの仰っていた「さーばーれすこんぴゅーてぃんぐ」という奴のようです。
どうもクラウド上で直接コーディングを行え、Logic Apps に組み込んで使え、イベントベースで動作する単純アプリケーションのこと。ブラウザだけあれば全部賄えるから、サーバーレスアーキテクチャだというわけですね。
開発環境は Azure ポータル、Azure CLI、Visual Studio などが選べるようです。
単調なインプットに対して単調なアウトプットを素早く何度も繰り返し行うサービスに向いているそうです。
JavaScript、C#、F#、Python、PHP、Bash、Batch、PowerShell、何でも動きます。

例えば毎日 1 回ログを分析するツールを動かしているのなら、ログをストレージに送り込んでやるだけで、その分析用 PowerShell を Azure Functions で勝手に動いてくれる、そんな感じでクラウド リソースを有効活用できる…そんな感じでしょうか。

今回は [**Azure Functions Proxies** という機能 (microsoft.com) ](https://blogs.msdn.microsoft.com/appserviceteam/2017/11/15/azure-functions-proxies-is-now-generally-available/)がリリースされたようです。Azure Functions を別の Azure Functions でリダイレクトできる、ひとつの名前空間でいろいろアクセスできるようになるよ、というものらしいです。DLL の Web 版みたいなもんですか?

更には [**ローカルの Linux から Azure Functions が実行できる**ようになった (microsoft.com) ](https://blogs.msdn.microsoft.com/appserviceteam/2017/11/15/functions-on-linux-preview/)そうです。Docker 経由必須。プレビューです。

[**その他こまごましたアップデート** (microsoft.com) ](https://blogs.msdn.microsoft.com/webdev/2017/11/15/improvements-to-azure-functions-in-visual-studio/)もあります。

- [とってもわかりやすい Azure Functions の絵 (mynavi.jp)](http://news.mynavi.jp/series/zeroazure/008/)
- [Azure Functions (microsoft.com)](https://azure.microsoft.com/ja-jp/services/functions/)
- [さーばーれすあーきてくちゃ…？ (qiita.com)](https://qiita.com/hat22/items/f7b2aec5211951dd7622)
- [Azure Functions Proxies (qiita.com)](https://qiita.com/TsuyoshiUshio@github/items/f8382686dd094ba4c36d)

# Cosmos DB

アメリカには昔 [Cosmos という素晴らしい番組 (wikipedia.org) ](https://ja.wikipedia.org/wiki/%E3%82%B3%E3%82%B9%E3%83%A2%E3%82%B9_(%E3%83%86%E3%83%AC%E3%83%93%E7%95%AA%E7%B5%84))があってですね。あるいは[そんな宇宙観 (wikipedia.org) ](https://ja.wikipedia.org/wiki/%E3%82%B3%E3%82%B9%E3%83%A2%E3%82%B9_(%E5%AE%87%E5%AE%99%E8%A6%B3)#SF)がありまして。
そのくらいすごいスケーラビリティを持った宇宙規模のデータベース、と勝手に解釈しています。
99 パーセンタイル値で読み取り 10 ミリ秒、書き込み 15 ミリ秒という超低レイテンシーを実現。
グローバルに分散した設計により、アベイラビリティ 99.99% (**読み込みだけなら 99.999%**) を担保します。
スケーリングは無制限。
API として SQL、JavaScript、**Azure Table Storage**、**Apache Spark**、MongoDB、**Apache Casandra**、**Gremlin** が使えます。…って、は? え? どういうこと?
ひとまず、AI に食べさせるためのとんでもない量のビッグデータを保存する領域として使えてなんでもおしゃべりできるすごいストレージと解釈しました。
こいつは間違いなくコスモス。

- [Cosmos DB (microsoft.com) ](https://azure.microsoft.com/ja-jp/services/cosmos-db/)
- [Hadoop と Spark (casleyconsulting.co.jp)](http://www.casleyconsulting.co.jp/blog-engineer/%E5%88%86%E6%95%A3%E5%87%A6%E7%90%86/%E5%88%86%E6%95%A3%E5%87%A6%E7%90%86%E3%81%AB%E5%85%A5%E9%96%80%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F%EF%BC%88hadoop-spark%EF%BC%89/)

## MongoDB
JSON (JavaScript Object Notation) をデータ通信インターフェイスとして利用したドキュメント指向の NoSQL データベースです。
NoSQL データベースの中では圧倒的シェアを誇り、Oracle Database、MySQL、SQL Server、PostgreSQL に次ぐシェアがあります。
更新削除検索において優位。結合操作は不利です。
2007年10月から開発が始まり、最初のリリースは2009年2月。
今回 [**MongoDB に関する拡張** (GA、RC 含む) (microsoft.com) ](https://azure.microsoft.com/en-us/blog/azure-cosmosdb-extends-support-for-mongodb-aggregation-pipeline-unique-indexes-and-more/?ranMID=24542&ranEAID=TnL5HPStwNw&ranSiteID=TnL5HPStwNw-xqk9_AK0U5sDRAdm2lYO.g&tduid=(0b6889549764a8caca6bb76d7fce670c)(256380)(2459594)(TnL5HPStwNw-xqk9_AK0U5sDRAdm2lYO.g)()) が行われました。

- [MongoDB (wikipedia.org)](https://ja.wikipedia.org/wiki/MongoDB)
- [NoSQL (wikipedia.org)](https://ja.wikipedia.org/wiki/NoSQL)

# Azure Database

Azure 上で提供される RDB。
昔は SQL Server Management Studio で管理できる SQL Database (要するに SQL Server API しか喋れない純粋な SQL Server) が動いていたと思ったのだけど、今は [**MariaDB**、PostgreSQL、MySQL (microsoft.com) ](https://azure.microsoft.com/en-us/blog/mariadb-postgresql-and-mysql-more-choices-on-microsoft-azure/)も喋れるそうです。ただし一部はプレビュー。

# IoT Edge

山ほどある IoT デバイス (インターネットにつながる家電やスマホ、パソコンたち) の中には、専用のプロトコルを持つものもあります。そうしたデバイスに対して、クラウド上にある様々なマイクロサービスとの結合を可能にするため、HTTP へのプロトコル変換を行う装置が IoT Edge の正体のようです。要するにマネージドの Azure VM? って言い方したら全部そうか…ｗ
例えばインターネットカメラでとらえた情報を IoT Edge に送り込めば、IoT Edge は IoT Hub を経由し Cognitive Service 等で画像分析を行い、リアルタイムにその結果を返すことができるそうです。

[**IoT Edge で Azure Functions を動作できる** (microsoft.com) ](https://blogs.msdn.microsoft.com/appserviceteam/2017/11/15/azure-functions-on-iot-edge/)ようになったそうです。
それから [**IoT デバイスからのデータを Edge が直接 Stream Analytics で分析できる** (microsoft.com) ](https://azure.microsoft.com/en-us/blog/azure-stream-analytics-now-available-on-iot-edge/)ようにもなったそうです。
更には Container も動きます。

- [Azure IoT Edge (softbanktech.jp)](https://www.softbanktech.jp/service/list/ms-azure_blog/ms-azure_blog_0019/)
- [インテリジェント エッジ (ascii.jp)](http://ascii.jp/elem/000/001/481/1481777/)
- [Azure Stream Analytics (kc-cloud.jp)](http://azure-recipe.kc-cloud.jp/2015/12/streamanalytics-1/)

# Azure VM

## Azure VM N シリーズ

Azure VM には N シリーズというのがあります。これは、要は GPU をバインド VM のことです。[Nvidia の単精度演算処理が超イケてる GPU、**P100 や V100 が使える**ようになったよ (microsoft.com)](https://blogs.msdn.microsoft.com/uk_faculty_connection/2017/11/15/nvidia-p100-and-v100-coming-to-azure/)、ということです。GPU を VM にバインドして何するの? そりゃもう、超 DNN (Deep Neural Networking) ですよ!

- [N シリーズロンチ! (qiita.com)](https://qiita.com/ksasaki/items/12eb932272baae414b88)

## Azure VM Cloud Shell

Azure VM は直接 PowerShell や Bash を Web I/F から呼び出せます。このうち [**Bash の部分が GA** になった (microsoft.com) ](https://azure.microsoft.com/en-us/blog/bash-cloud-shell-ga/)そうです。

# Visual Studio Team Services

**GVFS (Git Virtual File System) という Git 大規模リポジトリを高速管理するための機能が利用できる**そうです。
**シンボルサーバーが利用できる**そうです。
**パイプラインを YAML で書ける**そうです。
ちんぷんかんぷんです。

## Git

Subversion や SVN に変わる新たなソースコード管理基盤。ローカルコミットができるので、大規模コード開発で他に影響を及ぼさずにコミット内容の管理ができるそうです。また、ブランチを作成したときに、自由度が高いのもメリットだそうです。Github はグローバルにオープンな OSS 開発が簡単にできるよ! ローカル Git ならプライベートだよ!

- [Git とは? (qiita.com)](https://qiita.com/satoshi1335/items/ead109412430a078feaa)
- [SVN は捨ててしまえ? (qiita.com)](https://qiita.com/YusukeHosonuma/items/14c59f3878d640a401a1)
- [Github と Git って何が違う? (sixapart.jp)](https://blog.sixapart.jp/2014-03/mttips-02-what-is-git.html)

## Simbol Server

ダンプって解析するの難しいんですよ。だって全部バイナリだから…。そんなときにこの Simbol Server に登録された情報が使えます。WinDBG に Simbol Server を設定し解析すると、バイナリが関数に変換されて見えるようになります。そんな素敵機能。

## YAML

簡単標記のデータ構造体みたいなもの。YAML 自身はマークアップ言語…では無いと言い張っているらしいですが。Ansible の Playbook は YAML で書きます。設定値を定義するレジストリ構造体みたい。

- [YAML の説明 (qiita.com)](https://qiita.com/gcfuji/items/5f8e4c5795ce41b214d1)

# その他もろもろ Azure の機能

## Azure Databricks

Azure VM N シリーズと Cosmos DB 使って Spark でめっちゃくちゃ凄い DNN やろうぜ! となったときに使うクラウドサービス。要は Spark 開発元の Databricks 社が作った[**マネージド Spark 基盤が Azure でも使える**ようになりました (microsoft.com)](https://azure.microsoft.com/ja-jp/blog/a-technical-overview-of-azure-databricks/)。似たような基盤は AWS でも Google でも動いてるっぽいね。

- [Databricks サービス開始 (nikkeibp.co.jp)](http://itpro.nikkeibp.co.jp/article/NEWS/20140702/568202/)
- [Techcrunch の難しい Databricks の説明 (なんでこんなに難しい書き方できるんだ…) (techcrunch.com)](http://jp.techcrunch.com/2017/06/07/20170606deep-databricks/)

## Azure Time Series Insights

Azure 上で時系列データを時系列に分析するサービス。IoT Hub や Event Hubs から流れてきた有象無象をグラフにしたりヒートマップにしたりできるようです。PowerBI の時系列データ特化版みたいなイメージ。[**この機能が GA しました** (microsoft.com)](https://azure.microsoft.com/en-us/blog/microsoft-announces-the-general-availability-of-azure-time-series-insights/)。

- [Azure Time Series Insights とは何ぞや (qiita.com)](https://qiita.com/eriver_jpn/items/ad8b29acf5dbedba6e1e)

## Azure DevOps Project

Azure で DevOps な CI/CD パイプラインを作る機能っぽいです。[**この機能がプレビュー**となりました (microsoft.com)](https://azure.microsoft.com/en-us/blog/azure-devops-project-public-preview/)。

## Azure Active Directory

Azure AD へのサインイン画面がアップデートされ、[**サインインを維持する機能が増えた** (microsoft.com) ](https://cloudblogs.microsoft.com/enterprisemobility/2017/11/15/the-new-azure-ad-sign-in-and-keep-me-signed-in-experiences-rolling-out-now/)そうです。

## Azure Stack

[Azure Stack でオンプレミス クラウドを! (microsoft.com)](https://azure.microsoft.com/en-us/resources/azure-stack-building-end-to-end-validation-environment/) というわけで Tech Summit 2017 でも大いに話題となった **Azure Stack をぜひ使ってね**というアナウンスがあったようです。

## Azure Machine Learning

**Azure Machine Learning Workbench でいろいろできますよ**、**Visual Studio Tools for AI もあるよ**、といった話ですかね。Tech Summit 2017 でも話題になっていましたね。
**リージョンもいくつか増えた**ようです。ちょっと URL 張るの疲れてきた…。

## Azure Cognitive Services

プレビュー版で動いていた様々な機能が色々 GA になるようです。Bot Services とか。

## Azure Advisor

Azure で利用しているリソースを最適化してコストやパフォーマンスを良くしていくための**ダッシュボードが更新されました**。

# 色々まとめてみましたが…

どこまで読んでも OSS 関連製品やテクノロジーに関する情報ばかりです。
世界中の AI エンジニアはみんな OSS 使い続けてたっていうことがよくわかります。
この投稿で、OSS 技術ギャップをなかなか埋められない人が、少しでもインフラエンジニアとして生きていく手助けになれば幸いです。