見出し画像

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の様子


この記事が参加している募集

いつも応援していただいている皆さん支えられています。