52
© 2015 Google コンテナ技術とGoogle Compute Engineで実現する クラウド時代のアプリ実行環境 サーバサイドはこれで決まり! Google Cloud Platform セールスエンジニア 福田 #gcpライブ

Google for モバイル アプリ - コンテナ技術と Google Compute Engine で実現するクラウド時代のアプリ実行環境

Embed Size (px)

Citation preview

© 2015 Google

コンテナ技術とGoogle Compute Engineで実現するクラウド時代のアプリ実行環境〜 サーバサイドはこれで決まり!

Google Cloud Platform セールスエンジニア福田 潔

#gcpライブ

agendaモバイルバックエンドの選択肢

Google Compute Engine の特徴

コンテナ技術とGoogle Container Engine

モバイルバックエンドの選択肢

クラウドバックエンド

端末内で独立したアプリ 83%

モバイルバックエンド

?

モバイルバックエンド

IaaSにするかPaaSにするか

ハイパーバイザー

ゲスト環境

app コード

app 実行環境

ゲストOS

ライブラリ

Googleが管理Googleが管理

ユーザ管理

ユーザ管理

HW

IaaSにするかPaaSにするか

ハイパーバイザー

ゲスト環境

app コード

app 実行環境

ゲストOS

ライブラリ

Googleが管理Googleが管理

ユーザ管理

ユーザ管理

HW

Compute Engine

IaaSInfrastructure-as-a-Service

Compute EngineApp Engine

PaaSPlatform-as-a-Service

Google Cloud Platform

App Engine の特徴

● Platform-as-a-service

● ユーザはアプリケーションを書いてデプロイするだ

け。残りはGoogle が管理

● 負荷に応じて自動的にスケールアウト

● Python, Java, PHP, Go言語をネイティブサポート

● Cloud Endpoint を利用すると容易にAPI化可能

Google Compute Engine の特徴

Compute Engine = Google が提供するIaaS

Googleスケール

Google クオリティ

低コスト

高速なインスタンス起動低コスト

● VMあたり20秒から40秒程度で起動

● クラスタサイズを増や

しても変わらない

ブートしてSSH可能になるまでの時間

クラスタサイズ

VMあたりの起動時間

(秒

低コストGoogleスケール

Googleクオリティ

VMにアタッチすることのでき

るコスト効果の高いストレー

適用領域プロダクトの初期段階ブートIOストリーミング IO

高性能ディスクの選択肢

高I/Oを要求するアプリケー

ションに適した高性能なSSD

適用領域本番環境のDB

VMが動作するホストサーバ

にアタッチする、最も高い性

能を発揮するローカルフラッ

シュストレージ

最大680,000 READ IOPS

適用領域Hadoop, Cassandra クラスタ

標準永続ディスク SSD 永続ディスク ローカル SSD

低コストGoogleクオリティ

Googleスケール

Volume Size (GB)

標準永続ディスク

SSD 永続ディスク

ボリュームサイズ (GB)

ボリュームサイズ (GB)

ランダム

RE

AD

IOP

S

ランダム

WR

ITE

IOP

S

ディスクサイズに応じてIOPSがスケールする低コスト

Googleクオリティ

Googleスケール

Google Compute Engineの最も優れている特徴の一つは、その性能が非常に信頼できるということだ。

– Joe Masters EmisonFounder & VP of Research

and Development, BuildFax

source: Google

低コストGoogleクオリティ

Googleスケール

一貫した性能

優れたネットワーク性能

1 Stream 200 Streams

Gbi

ts /

sec

0

2

4

6

8

Baseline

Andromeda 1.0 (Mar 2014)

Andromeda 1.5 (Oct 2014)

TCP Throughput

低コストGoogleクオリティ

Googleスケール

● ロードバランサーは

“google.com”と同じインフ

ラを使用

● 準備時間の必要なく100万 QPSのリクエストに対応可

100万 QPS トータルコスト10 USD

4秒で起動

120秒以内に安定

source: Google

低コストGoogleスケール

Googleクオリティ

高性能なロードバランサー

source: Google

低コストGoogleクオリティ

Googleスケール

透過的なメンテナンス

ライブマイグレーション

“ログおよびDBのデータを見てみたが、通常と異る

ところは何もなかった。もし、 Googleが我々のイ

ンスタンスが移動したことを教えてくれなかった

ら、全く気づかなかったでしょう。 ”

“このテストはGCEのライブマイグレーションが

我々の期待どおり動作することを確信させてくれ

た”

ライブマイグレーション

HTTP および JSON API による容易なアクセス

$ gcloud auth login

$ gcloud compute instances create my-instance --zone us-

central1-a

$ gcloud compute instances list

低コストGoogleクオリティ

Googleスケール

最低10 分より1分単位で課金

低コストGoogleクオリティ

Googleスケール

使った分だけの課金

一分の単位の課金のメリット

Atomic Fictionの例

Type of Frame Hourly Per-Minute Savings

Short (12-25 mins) $26.40 $16.28 38%

Medium (49-72 mins) $39.60 $26.44 33%

Very Long (6-7 hours) $147.84 $132.18 10%

• 使えば使うほど、単価が安くなる

• 自動的に適用される

• 事前に支払う必要なし

• ロックインされることもない

• 複雑な計画も必要ない

低コストGoogleクオリティ

Googleスケール

使いつづけると自動的に割引が適用

コンテナ技術と Google Container Engine

Googleでは毎週20億コンテナを作成

軽量軽量でシンプル、容易にアク

セス可能

ポータブルマルチクラウドに対応、パブリック、プライベート、ハイブ

リッド

拡張性カプセル化されており、容易

に交換可能

なぜコンテナなのか?

Kubernetes κυβερνήτης: Greek for “pilot” or “helmsman of a ship”

the open source cluster manager from Google

Google Container Engine (alpha)

KubernetesMaster/Scheduler

クラスタ

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

MINIONS

Log Roller

Web Server

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

KubernetesMaster/Scheduler

ポッド

FE

FE

FE

FE

FE

FE

BE

BE

BE BEBE

BE

BEBE

BE

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

多数のポッドを識別するには?

labels: role: frontend

FE

FE

FE

FE

FE

FE

BE

BE

BE BEBE

BE

BEBE

BE

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

ラベル

labels: role: frontend stage: production

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

FE

FE

FE

FE

FE

FE

BE

BE

BE BEBE

BE

BEBE

BE

ラベル

FE FE FE FE

replicas: 4template: ...labels: role: frontend stage: production

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

レプリケーションコントローラ

FE

replicas: 1template: ...labels: role: frontend stage: production

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

レプリケーションコントローラ

FE FE FE

replicas: 3template: ...labels: role: frontend stage: production

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

Kubernetes - Master/Scheduler

レプリケーションコントローラ

id: backend-serviceport: 9000labels: role: backend stage: production

Backend Service

BE BE BE BE

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

ContainerAgent

サービス

FE

port: 9000

Load-Balancing

ポッドは自動配置される!

でも、FEはどうやってBEにアクセスするの?

デモ

KubernetesMaster/Scheduler

クラスタを作成

MachineHost

MachineHost

MachineHost

ContainerAgent

ContainerAgent

ContainerAgent

MINIONS MachineHost

Redis Master

Master Service

Redis Slave

Redis Slave

Slave Service

PHPFrontend

PHPFrontend PHP

Frontend

Frontend Service Public IP

Next Step?

さあ、始めてみましょう!$300、60日間無料でお試しいただけます

https://cloud.google.com/free-trial/

無料セミナー開催中

goo.gl/YRyMiv

申し込みフォーム

● 2/26 16:00-18:00 Google Compute Engine● 3/12 16:00-18:00 BigQuery

ありがとうございました