2018年9月1日土曜日

「GDG DevFest Tokyo 2018」に参加しました


Quick Start GCP

山内 沙織


  • GCPを使うデモ
    • Cloud Shell
      • Google Cloudを使うためのツールがそろっている
    • サーバレス
      • Cloud Functions, App Engine standard
      • オートスケール、使った分の課金 => サーバレス
    • Cloud Storage
      • Multi-Regional, Regional, Nearline, Coldline
      • アクセス頻度(左がアクセス頻度大)
      • オブジェクトストレージ、SQL、NoSQL
      • SQL: SQL(MySQL, Postgres), Spaner(大規模向け)
      • NoSQL: Datastore, Firestore(FirebaseのリアルタイムDBとDatastoreのいいとこどり) => 将来的に統合


PWAのイマ

takanorip


  • PWAの説明(略)
  • PWAのターゲット
    • 広く広めたい => PWA
    • デバイスのセンサーなどパワフルに使いたい => Native App
    • ロイヤリティでWebとNative Appの中間を埋める
  • ブラウザサポート
    • iOS Safariはプッシュ通知などサポートしてない。Service Workerのみ
  • PWA Checklist
  • PWA Starter Kit
  • pwa-helpers
  • PWAのこれから
    • Webの基盤になる
    • すでにAndroidが優勢な国ではPWAの成功事例が多くある
    • 日本はiPhoneが強いのでまだまだ
    • ネイティブとの棲み分けがはっきりと
  • ページをロードしたときにプッシュ通知の許可を求めるな!
    • プッシュ通知を許可するストーリーがアプリよりも重要に
  • 追加の設計が必要
    • オフライン時
    • 戻るボタンがない
    • スプラッシュ画面


GCPのデータベース・ストレージ

apstnbt


  • GCPのストレージを使う利点
    • 冗長化
      • ノードの冗長化
      • DC間の冗長化
    • スケーラビリティ
      • スケールアップには限界 => スケールアウト
      • シャーディング
    • コスト
      • 最大負荷に備えると普段無駄 => 負荷に応じてスケール
      • オートスケール
  • ストレージオプション
  • Bigtable (NoSQL) => Megastore (制約のあるACID) => Spanner (制約のないACID)
  • GCPのストレージプロダクトの基盤、ルーツなどが論文で公開されている
    • それがわかると、将来の見通しができる

Cloud Kata

sinmetal


  • GCPサービス組み合わせのカタ(デザインパターン)
  • LBを使ったWebアプリ
    • LBでURL分岐 => API(GCE), Video(GCE), 静的コンテンツ(Storage)
    • Cloud Storageで静的コンテンツ配信ができる
    • Cloud Network w/ Edge Cacheを静的コンテンツの前に
    • Logging => BigQuery で分析
    • Traceで詳細モニタリング
  • Queueを利用したkata
    • Push型、Pull型
    • App Engine Task Queue (Cloud Taskになる)
      • Pushの流量調整できる
    • Cloud Pub/Sub
      • Pushはスロースタート
    • Media Storage(Storage) => Push(Pub/Sub) => Watermark(Functions)
      • 大きめのタスクはPushとFunctionsでは厳しい
      • 安価なプリエンプティブVM + Pull Queueで重い動画の加工処理
      • リース期間を指定してタスクをPullして、終了後にタスクをdeleteするので、失敗しても、タスクが未処理でdeleteされることはない
    • IoT core => Pub/Sub => Dataflow 数秒枚に集計
  • 巨大ファイルのコピー: Instanceのsnapshotをとって再現
  • Identity Aware Proxyで認証、KMSで暗号/復号


Introduction of Polymer 3.0

kazuyoshi kawakami


  • Polymer Project
    • Chromeチームの中のプロジェクト
    • 目的:ウェブプラットフォームを進化させる
  • 2012年のWeb Components
    • Custom Element
    • Shadow DOM
    • HTML Imports
  • 2018年のWeb Components
    • すべてのブラウザで使える(FirefoxはPolyfill必要)
    • webcompoments.orgで共有
    • Angular, View.jsでも使える(custom-elements-everywhere.com)
  • Polymerキモい
    • polyfill
      • Polymerは当初はWeb Componentsのpolyfillだった
      • Polymer 2.0からpolyfill部分を切り離した
    • bower
      • 当時一般的。クライアントサイドのパッケージマネージャーとしてあっていた
    • HTML Import
  • Polymer 3.0
    • bower => npm
    • HTML Imports => JavaScript Module
    • TypeScript, Webpack, Rollupに対応
    • Polymer 3.0で完成
  • Next Polymer Project
    • Lit-html/Lit-Element
      • 軽量化したPolymer Element
    • Material Web Components
    • Polymer Starter Kit

GCPでつくるデータ処理パイプライン

永井 洋一


  • バッチ処理とストリーム処理両方を扱うケースが多い
    • イベント検知
      • ログ異常検知、トレーディングボット
      • 基本ストリーム処理だが、しきい値の調整にはバッチも必要
    • 機械学習の特徴量生成
      • リアルタイム・レコメンド、FX自動売買ボット
      • 学習データはバッチ、予測はリアルタイム
  • バッチとストリームを扱う場合の問題:別の環境が必要
    • プログラミングモデル:Apache Beam
    • 分散実行インフラ:Dataflow
    • その他
      • Dataflow + Beam:データ処理と分析
      • Dataprep:非プログラマ向け
      • Dataproc + Hadoop:Hadoop/Sparkユーザー向け
  • Apache Beam
    • 抽象データ(PCollection)と処理(PTransform)
    • PTransformのサブクラスによく使う処理がSDKで用意されている
    • I/Oに対応
  • Google Cloud Dataflow
    • 特徴
      • サーバーレス(処理で立ち上がり、終わると消える)
      • オートスケール
      • 負担の大きいタスクを動的にリバランス
    • 例:Wikipediaの日本語ページ230万ページの形態素解析が17分で$0.54
    • GCP連携:I/O対応、パイプラインのTemplate


Auto ML Overview

永井 洋一


  • Cloud Machine LearningとTensorFlowは難しく、APIは一般的すぎる
  • その間を埋めるAutoML:職人技を自動で
    • DeepLearningのハイパーパラメータの調整
    • ネットワークの構造の調整
    • ノード数、レイヤー数の調整
  • AutoMLを支える(と思われる)技術
    • 転移学習
    • Learning to Learning
  • AutoMLシリーズ
    • Vision
    • Natural Language
    • Translation
  • 使い方
    • プログラミング不要
    • 学習データ(入力とラベル)
      • 裏で、学習用80%、評価用10%、テスト用10%に分けられる
      • 分割を明示的に指定もできる
      • ラベルごとに100以上あると望ましい
    • 学習実行
    • 予測モデルをAPIで利用
  • お金をかければ、簡単に機械学習モデルが作れる
  • 用途は限定的で、分類問題がメイン