Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

6 月 18 日 Next - あっという間の、Google Cloud Platform 開発ガイド

Google Cloud Platform がどんなものなのか、実際に見てみましょう。

  • Login to see the comments

6 月 18 日 Next - あっという間の、Google Cloud Platform 開発ガイド

  1. 1. あっという間の Google Cloud Platform 開発ガイド
  2. 2. GCP Nextデベロッパー トラック: アジェンダ あっという間の、Google Cloud Platform 開発ガイド 意外と簡単、AI を使ったリアルタイム モバイルゲーム開発 Kubernetes のコンテナ技術ですべてをシンプルに 1 2 3 Google が描く、MapReduce を超えたビッグデータの世界4
  3. 3. Cloud Spin 私たちがどのようにしてクラウドで、映画「マトリックス」の世界 を実現したのか
  4. 4. ユーザーがCloud Spinエリアの 中央に入り、誰かがタブレットの スタートボタンを押す。
  5. 5. タブレットがスマホに通知を送り それぞれがショートビデオの録画を 開始する。 ピクチャーIDはXで す。今すぐ録画を開 始してください!
  6. 6. ユーザーがジャンプすると オーディオキューを使って 正確なフレームを特定する。
  7. 7. バックエンド アーキテクチャ 入力 バケット スティッチングQ デバイス エクストラクションQ 通知 プロセッサー エクストラク ター スティッチャー 動画 アップロード オブジェクト 変更通知 出力 バケット コーディネーター
  8. 8. 動画アップロードと通知
  9. 9. 動画アップロードと通知 入力 バケット スティッチングQ デバイス エクストラクションQ 通知 プロセッサー エクストラク ター スティッチャー 動画 アップロード オブジェクト 変更通知 出力 バケット コーディネーター
  10. 10. 要件 ● 大量の非構造化データ用ストレージ ● 即時アクセスと読み込みにおける強い一貫性 ● 新たに登場したオブジェクトに対して起動される通知
  11. 11. Google Cloud Storage オブジェクト ストア 変更通知 オブジェクトごとに最大テラバイト 単位までのデータを保存。データ は保存済みの状態で暗号化。粒 度の細かいアクセス制御 フル バージョニング、変更通知 お よびリジューマブルアップロードお よびダウンロードが可能 可用率の高いジオ 冗長データ レ プリケーション システムで99.9% のSLA 。各オブジェクトに対し、 強力なリードアフターライトの 一 貫性 信頼性が高く 一貫性がある
  12. 12. Cloud Storageのオプション 標準的なストレージ 耐久性が高く、可用性を 抑えたストレージ 速度 可用性 耐久性 コスト ニアライン どのようなワークロードにも適した 万能クラウド ストレージ 速度 可用性 耐久性 コスト 速度 可用性 耐久性 コスト 高可用性・高性能を必要としない 使用事例向け アクセス頻度の低いコンテンツの 長期ストレージ向け
  13. 13. オブジェクト変更通知 クラウド ストレージ バケット [myapp-input-bucket] $ gsutil notification watchbucket https://myapp.appspot.com gs://myapp-input-bucket 通知 処理 エンドポイント https://myapp.appspot.com
  14. 14. オブジェクト変更通知 クラウド ストレージ バケット [myapp-input-bucket] クライアント 通知 処理 エンドポイント オブジェクトの 追加/アップデート/削除
  15. 15. オブジェクト変更通知 クラウド ストレージ バケット [myapp-input-bucket] 通知 処理 エンドポイント オブジェクト変更通知 POST /storage/v1/b/myapp-input-bucket/o/watch?alt=json HTTP/1.1 Host: www.googleapis.com Content-Length: 200 User-Agent: google-api-python-client/1.0 Content-Type: application/json Authorization: Bearer OAuthToken { "token": "<ClientToken>", "type": "<web_hook>", "id": "<ChannelId>", "address": "https://myapp.appspot.com" }
  16. 16. エッジ キャッシング
  17. 17. まとめ 入力 バケット スティッチングQ デバイス エクストラクションQ 通知 プロセッサー エクストラク ター スティッチャー 動画 アップロード オブジェクト 変更通知 出力 バケット コーディネー ター
  18. 18. 通知処理
  19. 19. 通知処理 入力 バケット スティッチングQ デバイス エクストラクションQ 通知 プロセッサ エクストラク ター スティッチャー 動画 アップロード オブジェクト 変更通知 出力 バケット コーディネー ター
  20. 20. 要件 ● HTTPS POSTリクエストを処理 ● シンプルなAuthN ● リクエストを処理し、タスクをキューへプッシュ
  21. 21. Google App Engine ランタイムのチョイス - Java、Python、Go - PHP - カスタム 開発が容易 - ローカルでビルドおよびテスト - アプリコードに集中 - バージョニング - トラフィック分割 管理がわずか - フルマネージド - パッチ/アップデートなし - Google SREによる24x7 運用 - オートスケール
  22. 22. App Engineホスティング環境 サンドボックス ウェブサーバー ユーザー コード サンドボックスランタイム VM コンテナ ウェブサーバー ユーザー コード オプショナルパッケージ 標準/カスタム ランタイム インスタンス App Engineホスティング環境 コンテナ ベースのホスティング環境
  23. 23. まとめ 入力 バケット スティッチングQ デバイス エクストラクションQ Goアプリ Engineアプリ エクストラク ター スティッチャー 動画 アップロード オブジェクト 変更通知 出力 バケット コーディネー ター +
  24. 24. メッセージングとパイプライン
  25. 25. パイプラインの構築 入力 バケット スティッチングQ デバイス エクストラクションQ 通知 プロセッサー エクストラク ター スティッチャー 動画 アップロード オブジェクト 変更通知 出力 バケット コーディネー ター
  26. 26. 要件 ● 非同期メッセージング ● プル サブスクリプション
  27. 27. Cloud Pub/Sub (ベータ) 安定かつリアルタ イムのメッセージ ング 高速データ向け 設計 アプリケーション 間で安定かつリ アルタイム、多対多の非同期メッ セージングを提供 処理パイプラインにデータを送信し たり、その他アプリ、デバイス、 Google Cloud Servicesにバックア ウトしたりすることが可能。 グローバルであるように設計され ており、可用性が高く、最小のレ イテンシで「ファイア・アンド・ フォーゲット」(撃ちっ放し)するこ とが可能。冗長の転送経路。 Googleスケール の設計
  28. 28. Pub/SubトピックB サブスクリプション XA サブスクライ バーX パブリッ シャーB トピックA パブリッ シャーA トピックC パブリッ シャーC メッセージ1 メッセージ1 メッセージ3メッセージ2 メッセージ2 サブスクライ バーY メッセージ3 サブスクライ バーZ メッセージ3 サブスクリプション XB サブスクリプション YC サブスクリプション ZC パブリッシャーとサブスクライバー
  29. 29. Pub/Subトピック プル サブスクリプション プッシュ サブスクリプ ション Google Cloud Platformアプリ サードパーティーのネットワーク アプリ デスクトップ / コマンドラインアプリ モバイル アプリ Javascript / html5のクライアン ト パブリッシャーとサブスクライバーのエンドポイント
  30. 30. メッセージングはショック アブゾーバ スループット可用性 • 停電中に新たなリクエス トをバッファリング • 停電を引き起こす過負 荷を阻止 • 停電からの回復のため にリクエストをリダイレクト • 新たなリクエスト率の急 増を平坦化 • 複数ワーカー間で負荷 を分散 • 到着率とサービス率のバ ランスを取る
  31. 31. 使用事例: ワークキュー (スティッチング) トピックの抽出Pub/Sub エクストラク ター エクストラク ター エクストラク ター エクストラク ター 共有サブスクリプション App Engine抽出タスク
  32. 32. サブスクライバー サブスクライバー Pub/Sub Pub/Sub プッシュ サブスクリプ ション プル サブスクリプショ ン msg ack msg ack RPC送信 RPCリターン
  33. 33. 使用事例: ワークキュー (抽出) トピックのスティッチ ング Pub/Sub スティッ チャー スティッチング メッセージ エクストラク ター
  34. 34. パイプライン処理
  35. 35. パイプライン処理 入力 バケット スティッチングQ デバイス エクストラクションQ 通知 プロセッサー エクストラク ター スティッチャー 動画 アップロード オブジェクト 変更通知 出力 バケット コーディネー ター
  36. 36. 要件 ● Queue Depthに基づいたワーカーのオンデマンド ス ケーリングができるロングランニング サービス ● セキュアなpub/subサブスクライバーとして機能すること ができる ● 開発、デプロイ、管理が容易
  37. 37. Google Compute Engine コンピュート リソース - アメリカ、欧州、アジア地 区 - 高速なSDNベースの仮想 ネットワーキング 常に高速 - 高速の仮想マシン プロビジョ ニング - 一貫した性能 コスト効率が高い - Sub-Hour Billing - ブロック ストレージに対 してIOPSの請求なし - ロードバランシングに仮 想マシンは不要
  38. 38. 多様なワークロードに合わせたインスタンス 1 2 4 8 (共有) 16 32 Compute Engineの仮想マシン: ● Debian、CentOS、SUSE、RHEL Ubuntu、Windows (ベータ) ● 共有コアあるいは1~32コア ● 最大208 GBのRAM
  39. 39. マネージド インスタンス グループ マネージド インスタンス グループ ● 同一のVMインスタンスのグループ化 マネージド インスタンス グループ VMVM仮想マシン
  40. 40. 仮想マシンの 作成/ 破壊 インスタンス グループ マネージャー マネージド インスタンス グループ VMVM仮想マシン インスタンス グループ マネージャー マネージド インスタンス グループ ● 同一のVMインスタンスのグループ化 ● インスタンス グループ マネージャーによ るプロビジョニングと監視
  41. 41. インスタンス テンプレート 仮想マシンの 作成/ 破壊 インスタンス グループ マネージャー Instance Template インスタンス テンプレート マネージド インスタンス グループ VMVM仮想マシン マネージド インスタンス グループ ● 同一のVMインスタンスのグループ化 ● インスタンス グループ マネージャーによ るプロビジョニングと監視 ● インスタンス テンプレートがコンフィグ レーションをプロビジョニングから切り離 す
  42. 42. マネージド インスタンス グループ インスタンス グループ アップデーター 仮想マシンの 作成/ 破壊 インスタンス グループ アップデーター ローリング アップデート VMVM仮想マシン 新たな テンプレート マネージド インスタンス グループ ● 同一のVMインスタンスのグループ化 ● インスタンス グループ マネージャーによ るプロビジョニングと監視 ● インスタンス テンプレートがコンフィグ レーションをプロビジョニングから切り離 す ● インスタンス グループ アップデーターが ローリング アップデートを適用
  43. 43. Compute Engine Autoscaler マネージド インスタンス グループ 仮想マシンの 作成/破壊 インスタンス グループ マネージャー アクチュエータ 監視 オートスケーラー クラウド モニタリング 利用 VMVM仮想マシン Pub/Subトピック
  44. 44. コンテナリゼーション エクストラクター ワーカー 仮想マシンの 作成/破壊 インスタンス グループ マネージャー アクチュエータ 監視 オートスケーラー クラウド モニタリング 利用 VMVM コンテナ 仮想マシン トピックの抽出
  45. 45. 将来: Container Engine Kubernetesを使用してDockerコンテナをデプロイ、実行、 管理 コンテナ専用に作られた仮想マシンのクラスタをスピンアッ プ いかなるDockerファイルも1つのコマンドでクラスタにインス トール可能 モバイルアプリのインストールと同じくらい容易にコンテナを デプロイ 今日のトークセッション: 望ましい状態: Kubernetes のコンテナ技術です べてをシンプルに
  46. 46. まとめ 入力 バケット スティッチングQ デバイス エクストラクションQ 通知 プロセッサー エクストラク ター スティッチャー 動画 アップロード オブジェクト 変更通知 出力 バケット コーディネー ター
  47. 47. コーディネーション
  48. 48. コーディネーション 入力 バケット スティッチQ デバイス エクストラクトQ 通知 プロセッサー エクストラク ター スティッチャー 動画 アップロード オブジェクト 変更通知 出力 バケット コーディネー ター
  49. 49. Firebase 次のトークセッションにも是非ご参加ください! 意外と簡単、AI を使ったリアルタイム モバイルゲーム開発
  50. 50. まとめとHex Test
  51. 51. • Bret McGowen • Francesc Campoy • Kathy Kam • Ray Tsang デモ作成
  52. 52. ありがとうございました!

×