2019-05-29 de:code 2019 Day1 #decode19
2019/05/29 に開催された de:code 2019 Day1 のイベントレポートです。
●イベント概要
「今すぐ使えるテクノロジ」と「未来を創るテクノロジ」を体感する 2 日間
de:code (デコード) は、開発者をはじめとする、IT に携わるすべてのエンジニアの皆様を対象にした、今年で 6 回目となる年に一度のテクニカル カンファレンスです。de:code 2019 では、AI、Mixed Reality、サーバレス、コンテナ、IoT をはじめとする、「今すぐ使えるテクノロジ」と「未来を創るテクノロジ」を知り、学び、体験いただけるセッションとプログラムを提供いたします。また、直前に米国シアトルで開催される開発者向けイベントである Microsoft Build (2019 年 5 月 6 日 - 8 日) で提供される最新情報も凝縮して、日本のお客様にいち早くお届けします。
業界のエキスパートが集い、最新事例を共有し、未来につながるアイデアを膨らませ、コードの力で実現する、de:code 2019 にぜひご参加ください。
Imagine
業界を代表するエキスパートから最新のテクノロジと動向を学び、スキル向上につながる道筋と新しいビジネス機会の想像を膨らませてください。
Create
最新のテクノロジ、イノベーション、ツールを探索し、皆様が携わるシステムをより良いものとするしくみや、未来を創る新しい体験を創造してください。
Code
業界を代表するエキスパート、開発者、エンジニアの仲間との交流を通じて、新たなひらめきやアイデアを膨らませ、コードの力で実現してください。
■基調講演 1
平野 拓也 さん (日本マイクロソフト株式会社)
●de:code
・今年で6回目のテクニカルセッション
・buildの日本版とも言えるイベント
●阿修羅像は何歳?
-> 23歳
・奈良大学と協業
・奈良時代の仏像は怒りの感情が多い
●ノートルダム大聖堂の修復に貢献
・文化遺産を3Dで再現
・過去の写真などのデータから3Dモデルを再現
AIは各業種へ
コネクテッドデバイスは各家庭へ
大きなOpportunityがある
Intelligent Cloud / Intelligent Edge
2つがつながっていることで
膨大な意味のあるデータをつくる
●ミッション
地球上すべての個人とすべての組織が
より多くのことを達成できるようにする
Microsoftのお客様も、お客様でない方も含めて
●DXを提供するプラットフォーム
・Dynamics 365 & Power Platform
・Microsoft 265
・Gaming
・Azure
●パートナーシップ
・RedHat
OpenShift と Azureを組み合わせたプロダクトを発表
・Adobe
オープンデータイニシアティブ
データのサイロ化を防ぐ
・Dell Technologies
MSはオープン路線へ
・SONY
クラウドソリューションの共同開発
SONY製品にMSのプロダクトを組み込む
イメージセンサーを共同開発
●トヨタ x HoloLens2
・自動車の修理、点検を紙やwebから3D手順へ
・Azure AIで作業ミスを検出
・習熟度を上げる、ミスを減らす
●SmartStoreリファレンスアーキテクチャ
・キャッシュレス、スマホ決済
・在庫管理、店舗ごとのシナリオ
・サンプルコードをGitHubに公開
・リテールのDXを進めていく
●Ascent
・自動運転の一番の課題は?
整備された環境しか走れない
通信やインフラが整っている必要がある
自動運転意外と共存が必要
交差点での譲り合いなどが実現できていない
・アセントの独自性 3つのアプローチ
仮想空間でのトレーニング
イレギュラーな状況はシミュレータで
機械学習
神経科学なども取り入れている
説明可能
なぜその運転をしたのかをトレース
自動運転をホワイトボックス化
・自動運転、産業用ロボット向けのAIソフト開発
少子高齢化のロボティクス
過疎地での自動運転
・Azureを積極的に利用して、開発を加速
・なぜAzure?
AIスタートアップに必要なツール、インフラ
スケーラビリティ
AI/IoTサービスのラインナップ充実度
●Trust
・Privacy / Cybersecurity / Responsible AI
・これからは、どこまで使ってよいのか?も問題
●日本の社会変革に貢献
・インダストリー イノベーション
・ワークスタイル イノベーション
・ライフスタイル イノベーション
-> 一見別々に見えるが、全てがつながっている
■基調講演 2
ジャレッド スパタロウ さん (マイクロソフト コーポレーション)
●テクノロジーの進歩
・指数関数的に、かつてない進歩のスピード
・すべての企業がテクノロジー企業
・課題とリスク
このテクノロジーは私達の求める方向に進んでいるのか?
知識に埋もれた知恵はどこに行った?
情報に埋もれた知識はどこに行った?
●生産性の再定義が必要・個人の生産性を上げる、とは?
・学校でも仕事でも
●テクノロジーの歴史
・アプリが中心
職人のようにツールの使い方を学んでいた
・デバイスが中心
iPhone/iPadで一夜にして変わった
何十億という人に、NASAがはじめて月に送った以上の性能のデバイス
・人が中心
Microsoft 365
アプリ、デバイスをクラウドでつなぐ
全てを通して人に向かう
●Microsoft 365
・デモ
outlookのInboxで
予定調整メールを受けた
カレンダーから空き時間の候補を選択、返信
スマホからビデオ会議でスライド再生も
PCでは
スタートメニューがシンプルに
windows updateに期間指定
・Teams
Focusステータスになると、通知を制限
・Collections
コンテンツの収集、共有
・Ideas
読むのにかかる時間
含まれている略語
文法だけでなく、文章の改善提案
"あとでやる" を文章から検知して、ドキュメント内のタスク化
メンションもドキュメント上から飛ばせる
●Microsoft Graph
・利用すると、バックグランドでデータを収集
ノードが名詞、エッジが動詞
私は文章を書く
私、文章
書く
オーナー
私は文章を読む
私、文章
読む
ステータス
・すべての活動をデータ化
●Windows
・React Native for Windows
uwpからJSを呼び出し
・Windows Terminal
複数のshellを統合
powershell, cmd, ubuntu
タブで切り替え
UNICODEをフルサポート
絵文字も使えます
・WSL2
ファイルアクセスのパフォーマンスが3〜4倍に
●Office
・Fluid Framework
ドキュメントをコンポーネントに分割
分散型のドキュメントモデル
人と、AIやbotがリアルタイムに協業できる
ドキュメント編集をリアルタイム翻訳
アプリをまたがって同じ要素を編集
wordとexcelなど
●Edge
・Collections
イントラのファイル検索
話題のドキュメント、最近編集したもの
IE互換で古いドキュメントにもアクセス
●Teams
・PCを持っていない人に向けて
工場の現場、レストランの最前線など
スマホから操作して、チームのコラボレーションへ
・オンラインミーティング
最大9人
ホワイトボードに人が重なるとオーバーレイ
AIりんな
●ダンスの動画生成
・事前収録の映像
・AIで生成した振り付けスケルトン
・AIで生成した動画生成
■基調講演 3
ジュリア ホワイト さん (マイクロソフト コーポレーション)
●コードが全てのUXを牽引している
開発者でいるということはエキサイティング
Azureは全てのtool, language, appの組み合わせをサポート
●Intelligent Cloud / Intelligent Edge
・Azure利用のハイブリッドアプリ
クラウド
| tool, devops, ID
| OS, app PF, data PF
| AI, security
データセンター + エッジデバイス
・Visual Studio ファミリ
Visual Studio Code
Visual Studio
Visual Studio Online
・GitHub
1億 リポジトリ
11億 コラボレーション
・GitHub + Azure DevOps
Azure Pipeline
YAML定義
k8s統合
マルチクラウド、ハイブリッドクラウド対応
●demo
・リアルタイム感情分析
・VisualStudio 2019
IntelliCode
コンテキストに合わせてコード補完をサジェスト
.editorconfig
コーディング規約
-> 一括解決
Azure Dev Spaces
AKSクラスタの個人用namespace
GitHub操作は代替できる
●AzureDevOps
・Pipelines
PRトリガでAzure Pipelineが動く
AB#999 コメント付きをmergeでBoardsが自動クローズ
マルチクラウド対応
スニペットも充実
・Environment
k8sクラスタと連携
・GitHub と Azure Active Directoryの同期
GitHubアカウント -> Azureサインイン
・VisualStudio + GitHub Enterprise 統合サブスクリプション
●Azure
・エッジデバイス
・サーバレスアーキテクチャ
・インフラストラクチャ
・ツール
●サーバーレスコンピューティング
・AppService
・Functions
・AKS
●AppService on Linux
・Functions
事前ウォームアップサービスもあります
・AKS
virtual kubeletでnodeをelasticに
・KEDA
あらゆるk8sで
イベントドリブンでコンテナ作成、スケール
●Azureエッジデバイス
・Stack, Data Box, Sphere, Kinect, HoloLens
・デバイスパートナーは数百社
・スターバックス
ガーディアンデバイスで
セキュアにインターネットアクセス
●Azure Sphere
Visual Studio x C言語
・IoT Central
デバイステンプレートで管理
テレメトリからグラフ追加
コマンドでデバイスを操作
・IoT PnP
Device Capability Models
デバイステンプレートを展開
準備しておけばデバイスを自動登録も
●Azure Kinect
・画素深度センサー、RGBカメラ、360度に7つのカメラ
・軽くなりました
・複数台をつないで連携動作
・単体でもいろいろ出来るが
Azureと連携することでデバイスのポテンシャルが上がる
●Azure Cognitive Services
・画像、音声、検索、言語、判断
・Personalizer
・Coversation Transcription
文字起こし
・Ink Recognizer
・Form Recognizer
フォームからKeyValueを抽出
●Azure Machine Learning
・Learning Workspace
・Automated ML
●データ + 分析
・SQL Database HyperScale
データは指数関数的に拡張している
データベースも同様にスケールが必要
PostgreSQLもサポート
・SQL Database サーバーレス
AIが組み込まれたフルマネージド
・SQL Database Edge
ARMプロセッサに最適化
組込みの時系列データ
・Cosmos DB
地球規模の分散データベースサービス
どこからでもミリ秒でread/write
機械学習の組込みもサポート
●Azure Analytics
・SQL Data Warehouse
ペタバイト単位でデータを格納
Gigaomベンチマークで BigQuery, Redhift より高速
・Power BI
セルフサービスBI
●ゑびや
・レジもない、そろばんで売上計算
-> Azureとは何かを勉強
・ハッカソン
・自分たちで、書籍ネット、動画で学んだ
-> 自分たちで開発
・BIでロスが減る = リスクヘッジ
・中小企業のほうが様々な課題がある
■基調講演 4
アレックス キップマン さん (マイクロソフト コーポレーション)
●HoloLens2
・視野角 x2
・快適性 x3
・オープン開発
●視野角
・1°あたり47ピクセル
・1720 x 700px -> 8Kのようなジャンプ
・1秒間に120回のスキャン
●深度センサー
・kinectのインサイトから
・空間マッピング
・アーティクレーテッド ハンドトラッキング
・アイトラッキング
どこを見ているかに合わせてAIを利用
●Windows Hello
ヒトを認識してセキュアに
●音声
・3つのマイクが頭に
-> ノイズキャンセル
・2つが口の周り
-> ビームフォーミング
・空間オーディオ
・ホログラフィックプロセッシングユニット2.0
●快適性
・MSの持っているデザインノウハウを活用して
・どんなヒトでも快適に利用できるように
・デバイスの重心を目の後ろに移動
●demo
・MRのキャプチャスタジオで撮影した映像
・プレゼンスをVirtualにも
リアルタイム文字起こし -> 翻訳 -> 日本語で発音
・コミュニケーション方法や国境を取り去る
●価値創造時間
・Dynamics 365
Remote Assist
Layout
Guides
・HoloLens 1
製造、建設現場、油田、宇宙ステーションでも利用
個別に開発が必要だった
・エッジとクラウドで、一貫したデータの扱いが必要
エッジとクラウドの強みを組み合わせて利用
・製造業で利用するなら高精度のポリゴンが必要
エッジでこれを処理するのは難しい、クラウドと連携して実現
・ホログラムは実在しないものを実現できるもの
HoloLensで現実に持ってくる
・月額99ドルの開発者向けパッケージを発表!
■しくみがわかる Azure Kubernetes Service (AKS) ~開発者目線で Kubernetes の基本を理解する~
阿佐 志保 さん (日本マイクロソフト株式会社)
●Podデザインパターン
・サイドカー
小さな機能をつけるイメージ
・アンバサダー
共通機能をもたせるイメージ
・アダプター
共通のIFをもたせるイメージ
●Podの分け方
・同一のhostで動く必要があるか?
・スケールのタイミングが同じか?
●スケジューリングのアルゴリズム
Scheduler Algorithm in Kuberntes
・Nodeフィルタリング
・Nodeの優先度
●k8sのしくみ
・マニュフェストファイル
クラスタのあるべき姿を定義したもの
・Level Triggering
システムの状態を検知して反応
k8sはこっち
・Edge Triggering
シグナルの変化に反応
・Reconciliation loop
それぞれがループで自分の役割をこなしている
分散システムでは
常にどこかが壊れていることを前提にする
・Deployment
replicasetのバージョンを管理するイメージ
・マニフェストのデータ構造
Deployment / ReplicaSet / Pod
●KEDA
Podの数をイベントに応じてスケール
k8sは、本質的に複数のマシンを1台の様に扱いたい
解決したい課題から把握すれば、道具は理解しやすい
●AKS
・Cluster Autoscaler
・Node Pool
・Virtual Kubelet
・Pod Security Policy
Azure PolicyとAKSが連携
●Azure Pipeline for AKS
・AWSやGCPにもデプロイできます
・yamlサポート
■開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
上坂 貴志 さん (株式会社ネクストスケープ)
●機械学習の基本
・学習は差分ではなく全量
・学習データと検証データは分ける
●Azure Machine Learning Studio
・アルゴリズムの比較、ハイパーパラメータ自動調整など便利
・スケールはできない、学習済みモデルのexportはできない
●Azure Machine Learning Service Visual Interface
・使い勝手はStudioと同じ
やがてこちらに統合されそう
まだ機能が揃っていないので、GAされたら乗り換えを
・用意した学習リソースを利用できる
・デプロイ先にAKSが利用できる
■HoloLens を活用した働き方改革! Dynamics 365 Guides・Remote Assist 活用手法と環境構築を解説します
鈴木 敦史 さん (日本マイクロソフト株式会社)
有野 いく さん
●Mixed Reality の全体像
・ハードウェア
HoloLens2
Azure Kinect DK
・ビジネスアプリケーション
Dynamics 365 Guides
Dynamics 365 Layout
Dynamics 365 Remote Assist
Dynamics 365 Product Visualize
・サービス
Azure Spatial Anchors
Azure Remote Rendering
●HoloLens2
・没入感が高くなっている
・作業しながら使う用途
・裸眼で目視が必要なものの場合、フリップアップで
●ファーストラインワーカーの働き方改革
・工場の現場など、シフト制などでは
インフォメーションワーカーとは別のアプローチが必要
・有野さん:200社以上にインタビュー
共通の課題
人材不足
教育
-> 人材不足で教える人自体が不足
OJTなどの教える頻度も減ってきている
●トレーニング: Guides
・実践的な学習で支援
実機に映像を重ねて行うトレーニング
・トレーニングの有効性を向上
動画でアシスト
・データ活用でパフォーマンス向上
録画してふりかえり
・DEMO
Live Streamで表示
視線だけで操作できる
HoloLensの操作はトレーニングの邪魔
説明が難しいものは動画で説明
3Dで空間を認識しているので、空間の移動もトレース
作業時間も保存してPowerBIで可視化
苦手な場所を見つけるうことも出来る
多くの人が苦手なら、製品の弱点かもしれない
・Guidesの概要
空間に作業ガイドをを作成
写真、動画、音声を添付できる
手順はステップバイステップ
作業時間を記録してレポート
●保守・修理: Remote Assist
・リアルタイムで問題解決
非定型の作業
・離れた場所から効率的なトラブルシューティング
操作を見ながらアシスト
・デバイスを問わず活用
ARCoreのAndroidでも動く
・DEMO
HoloLensがなくてもスマホで動く
Remote Assist Client
リモート側から矢印を打つ & 画面に書き込み
ここはどうなっている?
問題対応は初動が大切
片手がふさがっているから見ながらは難しい
IoTCentralにデバイスの状態を連携
問題があればデバイス側でパトランプ
HoloLens版
エラーコード表をHoloLensに送信
空間を認識できるから細かい指示も出来る
カメラの映像もほぼ作業者と同じ
・Remote Assistの概要
遠隔地からカメラの映像で作業支援
作業者の空間にアノテーション
ファイルを共有
HoloLensとAndroidスマホでも
・効率化以外にも
作業をずっと記録に残せる
問題がったときの改善に役立てる
・構成
Teamsが必須
Field Assistで人の割当も管理できる
●Guides
・必要なもの
HoloLens
WindowsPC
WiFi
(プレビュー申し込みに)SMSが通じる電話
・構築の流れ
docs.microsoft.com/ja-jp/dynamics365/mixed-reality/guides/
わかりにくいので、公開した資料で
・ガイドのオーサリング
作業ステップをつくる
Marker: 機械にマーカーを設定
Manual: 空間に設定->1ヶ所だけ
タスクをつくる
この単位で作業者に見せる
この単位で集計される
まだプレビューなのでrename, removeできません
HoloLensのオーサー画面
実作業しながら
シーターボール、3Dモデル、メディアデータ
を空間に配置
Guides Analytics Reportsを作成
PoerBIのテンプレートを設定
●Remote Assist
・必要なもの
HoloLens
ARCore対応のAndroid端末
Windows PC
WiFiネットワーク
・構築の流れ
公開した資料で
・別のアプリから Remote Assistを呼び出しもできる
■マネージド Kubernetes ガチ本番運用 in ZOZOTOWN
鶴見 純一 さん (株式会社 ZOZO テクノロジーズ)
竹中 達志 さん (株式会社 ZOZO テクノロジーズ)
●ZOZO
・ZOZOTOWN
ファッションのECサイト
・WEAR
コーディネートアプリ
・ZOZO
プライベートブランド
・ZOZOSUITE
●k8s採用の背景
・大部分はオンプレ
利用者とともに買い足していった
10年以上で数百台
運用コストも高い
・サービスの成長とともにサーバも成長
セール時のトラフィックをさばけるように台数を用意
・課題
柔軟なサーバ台数増減
-> クラウド化
運用負荷軽減(手作業)
-> コンテナ化
運用負荷軽減(オートスケール)
-> クラウド環境でのk8s
●目的
・安定運用
突然のアクセス増加に耐える
・運用負荷の軽減
コンテナ化、オースケール、オートヒーリング
・マイクロサービス化
ZOZOTOWNの可用性を上げていきたい
・考えるべきこと
目的の達成
課題の解決
が出来るか?
・今後のビジョン
ZOZOTOWNが常に動作する状態を目指す
マルチクラウド化
現在はAzure
AKSはまだSLAが定義されていないはず
マルチクラウドで可用性を上げたい
●リプレース
・時期
201708〜
・体制
5人
・規模
VM 30+
pod 400+
・対象
ECサイト
参照系: Done
更新系: ToDo
バックエンド
基幹: ToDo
倉庫: ToDo
・経緯
ACS Engine
-> k8s verup
-> AKS
-> k8s verup
お客様に影響なしで切り替えられている
●運用
・覚える知識は多い
・バージョンアップについていく必要がある
・設定 -> 教育 -> 監視 -> 運用
一人が使えてもしょうがない
全員が運用できるように
・運用 -> 調整 -> versionupサイクル
回し続けなければならない
・MSユニファイドサポートが手厚い
何度でも問い合わせできる
AKSもなんどでも
MS技術者に週一くらい着てもらって問題解決
オンプレも相談に乗ってもらっている
-> 1時間調べるなら、5分で問い合わせる
●kubernetes the hard wayをやったことあるひと?
・難しかった?簡単だった?
むずかしい -> マネージドを使おう
●なぜマネージドk8s?
・問い合わせられる
・master nodeをお任せ
●コスト削減
・メリット
master nodeの料金
運用負荷も減る
・デメリット
カスタマイズの幅が小さくなる
カスタマイズする?
安定稼働までが大変
●まずはシンプルな構成をつくってみよう
・安定稼働するのではないか?
・無事に動いた
rolling update, pod restart, drain
・が、なぜかエラー
結構な頻度で 400, 500, 402
どこまでリクエストが届いているか
http, TCP/IP, DB
・要件
エラーレート 0.001%以下
ダウンタイムなし
●AKSの特性
・Azure Active Directory
AKS操作もADの権限で管理
・type: LoadBalancer
= Azure Load Balancer だった
・障害事例
突然podがapplyできなくなった
service principalの期限切れで
container registoryにアクセスできなかった
●Azコマンド
・いろいろ出来る
・が、kubectlをラップしている動作のことも
●安定稼働までの道のり
・まずは「やればできる」
皆さんの会社でもできるはず
・まずやったのは、自分たちの環境ですばやく検証して実測できるか
-> マネージドだからといって任せられない
・クラスターを使い捨てる
本番には変更を加えない
手を加えたら必ず忘れる
検証用クラスタを立てる
試す
切り替える
終わったら捨てる
・pod が not readyになった理由は?
切り分けは幅広いリソースの知識が必要
・思ったより node, podが落ちる
検証できる環境
検証、実測に基づくチューニング
・サービスが継続できるpod数を確保
maxSurge, Unavailable
Rolling updateでどれくらい増減してもよいか
PodDisruptionBudget
nodeまたぎで、同時にいくつ配置されてよいのか
Graceful Shutdown
podの再配置で必ず起きる
強制切断させない
preStop, removed from Serviceが非同期
-> SIGTERM
LivenessProbe, ReadinessProbe
podの起動時間を考慮
ヘルスチェックのエンドポイントを自作
クエリのタイムアウトを考慮したReadinessProbe
・リソース制限
podに割り当てるリソースをケチると立ち上がりが遅くなる
余裕をもたせて配分すると、他のpodがスケジューリングされない
-> nodeのオートスケール
・nodeのオートスケールなし
pod terminate, pod startがシーケンシャル
遅くなると数十分単位
・DBのパフォーマンスはpodのスケールでは解決しない
●まとめ
覚えることは多い、躓いた部分もあるが、安定稼働できている
クラウド化で、リソース不足の心配がなくなった
コンテナ化で、マイクロサービスの足がかかりになった
■感想
Microsoft Graph すごいですね!
OS、Office、コミュニケーションツールを扱っているMicrosoftがCXに向かうと、こんなに突き抜けてサービスをまたいだ活動データが集められるのか!と、改めて大きさを感じました!
HoloLens2、Dynamics 365 x AI でのMR体験は、業種や職種、地域や世代を越えて、すべての人の当たり前にしていきたいですね!
AKS、Machine Learning Service で、事業ごとの作り込みもコンテンツの作り込みに集中できるサービスが展開されていて、マルチクラウドで動作する仕掛けを用意すれば、やるべきことに集中できる環境が整いつつあることを強く感じました!
人が多くて動きが取れなかったり、満席で聞けないセッションがありましたが、この内容なら需要が大きくなりすぎてしまうのも仕方ないのかな、と納得しました。
登壇者の皆さん、運営の皆さん ありがとうございました!明日も楽しみです!!
■Day2の様子
この記事が参加している募集
いつも応援していただいている皆さん支えられています。