ゲームインフラとgoogle cloud platformと酒!

38
GCE事例とgrasysの仕組み紹介

Upload: yusuke-hasegawa

Post on 21-Mar-2017

621 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: ゲームインフラとGoogle Cloud Platformと酒!

GCE事例とgrasysの仕組み紹介

Page 2: ゲームインフラとGoogle Cloud Platformと酒!

会社紹介社名 株式会社grasys

設立 2014年11月13日

代表 長谷川祐介

事業内容 MSPシステム設計・構築・運用保守

2015年1月になりました!

Page 3: ゲームインフラとGoogle Cloud Platformと酒!

自己紹介氏名 長谷川 祐介

経歴

GMO, Yahoo Japan, Squere Enix etc… 2010年にgms(gloopsの前身)へ入社インフラ面のすべての設計

開発部部長として開発部組織化、エンジニアの採用執行役員、プリンシパルインフラストラクチャーアーキテクト

職種 いわゆるインフラエンジニアGCP歴 GCE初期の頃からその他 azure, awsも触っています。

publish

Fusion-IOを2011年に本番導入しFusion-IO社に取り上げられるSoftwareDesign2012.03記事

2012年DellのCM出演(テレビ東京 ワールドビジネスサテライト)Icinga(nagiosのfork)のユーザーコミュニティに掲載

facebook: yusuke.exzm

Page 4: ゲームインフラとGoogle Cloud Platformと酒!

GCE事例紹介

Page 5: ゲームインフラとGoogle Cloud Platformと酒!

Application WebSocket

HTTP Load Balancer

Cloud Storage

BigQueryPercona XtraDB ClusterRedisUserData Shard

RedisWebSocket HealthyList

MonitorOperation

Static IP Static IP Static IP

CNAME asset.xxx.com

Cloud Storage

backup

KPI Data

Cloud MonitoringCloud Logging

2014年前半頃に構成したものに現状のアレンジを加えており当時の構成とは異なっています。

Page 6: ゲームインフラとGoogle Cloud Platformと酒!

Application

nginx

gunicorndjango

haproxy maxscale

consul

serf

fluentd

redis XtraDBXtraDBXtraDBredis

bigquery

各種Instance情報

influxdbへのmetrics送信各種監視Statusなど

HTTP Load Balancer

Page 7: ゲームインフラとGoogle Cloud Platformと酒!

WebSocket

nginx

gunicorndjango

haproxy maxscale

consul

serf

fluentd

redis XtraDBXtraDBXtraDBredis

bigquery

各種Instance情報

influxdbへのmetrics送信各種監視Statusなど

redis

HTTP Load Balancer

Page 8: ゲームインフラとGoogle Cloud Platformと酒!

ApplicationとWebSocketの連携

redis

consul

HTTP API- nginx- DNS- supervisord- haproxy- maxscale- connections上記statusがすべてOKのInstanceをRedisのListとして保存

Page 9: ゲームインフラとGoogle Cloud Platformと酒!

Network Load Balancer

rabbitmq cluster percona xtradb cluster

applicationold api operation monitor

BigQuery

Cloud DNS Network Load Balancer

applicationnew api

redis

image cache

jobqueueworker

applicationcustomer api

key data temporary dataasset

Network Load Balancer Network Load Balancer

現在準備中

applicationsub system

ha-mode

Cloud Storage

Page 10: ゲームインフラとGoogle Cloud Platformと酒!

Network Load Balancer

master node client node data node

kibana

elasticsearchelasticsearchelasticsearch elasticsearch elasticsearch

fluentd fluentd

elasticsearch

fluentd

elasticsearch

fluentd

elasticsearch

fluentd

Static IP

1日特に多い日で150GBちょっと多めの日で40GB

普通は6~8GB

Page 11: ゲームインフラとGoogle Cloud Platformと酒!

Photonもやってたりします・・・実際の台数とかは言えませんが!w

Page 12: ゲームインフラとGoogle Cloud Platformと酒!
Page 13: ゲームインフラとGoogle Cloud Platformと酒!
Page 14: ゲームインフラとGoogle Cloud Platformと酒!
Page 15: ゲームインフラとGoogle Cloud Platformと酒!

すいませんが言えません・・・

• 某社様とコンソールゲームとか

• 某社様とスマートフォン向け期待のタイトル

• 某社様とIPのスマートフォン向けゲームとか

• 現在某社様とめっちゃ設計中だったりとか

Page 16: ゲームインフラとGoogle Cloud Platformと酒!

ゲーム業界のみなさまへ• オンプレミスからのGCP移行についての注意点などはいくつかありますが、ぶっちゃけここじゃ話し切れないのでご相談ください。

• むしろ常時接続とか

• バックエンドどうするのとか

• データ通信のストリームバッファ使いたいとか

• グローバルバランシングと常時接続のハンドリングとか

Page 17: ゲームインフラとGoogle Cloud Platformと酒!

grasys architecture

Page 18: ゲームインフラとGoogle Cloud Platformと酒!

まずは・・・ うちがよく使ってるみなさん

Page 19: ゲームインフラとGoogle Cloud Platformと酒!
Page 20: ゲームインフラとGoogle Cloud Platformと酒!

provisioningconfigration

各種Middleware setup etc…環境変数/PATH/LD自動設定

configration各種Middleware自動設定

fluentd, haproxy, etc…

clustering serf/consul自動設定

operationperlのcinnamonでできているオーケストレーションツール

bootstrapmonitoring

init制御: glaunchermonitoring: gmonitor

grasys UtilitiesUtilities envutils

cfgutils

clutils

clctl

gutils

Page 21: ゲームインフラとGoogle Cloud Platformと酒!

consul

• cluster情報

• 監視(自社開発のgolang製の仕組み)の発行

• 簡易的なオーケストレーションツールとして

Page 22: ゲームインフラとGoogle Cloud Platformと酒!

serf

• perl cinnamon(オーケストレーションツール)のrole情報のソース

• 将来的に廃止予定

Page 23: ゲームインフラとGoogle Cloud Platformと酒!

terraform• Instance生成

• Disk Attach

• Firewall設定

• Load Balancer生成

• etc..

Page 24: ゲームインフラとGoogle Cloud Platformと酒!

rerun• Bash Command Line Framework

• rerun [modules]: [commands]

• コマンドの体系化が行えて非常に便利!

• gcloudでsnapshotとってdiskつくってimage生成とかめんどくさくて覚えてられない

• InstanceのMachine-SizeとかのResizeとかばばっとやりたい

• elasticsearchのclusterstatusとかnodesとかcurlでいちいち覚えてられない

• コマンド長いものでよく使うものなどを登録して便利に実行してます。

• 一度やったことはもうやらない!w

Page 25: ゲームインフラとGoogle Cloud Platformと酒!
Page 26: ゲームインフラとGoogle Cloud Platformと酒!

envutils• 環境構成ツール

• bashrc自動生成(PATH, MANPATH, PKG_CONFIG_DIRとか

• ldconfig(追加したLDのconfig自動生成と追加

• /usr/local/etc(git管理)と/etc配下の自動symlink

• ntpd設定からchronydのconfig自動生成

• rerunのmodule directoryも含んでいてgitで管理

Page 27: ゲームインフラとGoogle Cloud Platformと酒!

clutils

• consul/serfの自動設定

• Instanceの起動シーケンスで自動設定して起動してくるようにするためのツール

• gitで管理

Page 28: ゲームインフラとGoogle Cloud Platformと酒!

clctl• オーケストレーションツール

• 母体はperlのcinnamon

• cinnamon [role] [task]

• gitで管理

• serfのクラスタ情報からオーケストレーションのRoleを自動生成

• 将来的にはconsulのwrapperなどに移行してserf依存を減らしていく方針で廃止していく予定

Page 29: ゲームインフラとGoogle Cloud Platformと酒!

gmonitor• golangで開発している監視プログラム

• gmonitor [subcommand]

• リソース監視、通信、ミドルウェアのステータス取得

• consulにキックされる形で起動

• consulの監視InterfaceはNagiosPluginと同じ

• InfluxDBへ直接データを書き込む(徐々にStackDriverのCustomMetricsも追加されつつある

• サブコマンドが多くなりすぎてきていて困ってるww(でも気にしない!

Page 30: ゲームインフラとGoogle Cloud Platformと酒!
Page 31: ゲームインフラとGoogle Cloud Platformと酒!

influxdb / grafana

• 時系列データベースとそのフロントエンド

• 各種監視データを入れグラフサンプリング

Page 32: ゲームインフラとGoogle Cloud Platformと酒!

• これはリソース用のダッシュボード

• 各種ミドルウェア用のものもあります。

• 単一ホスト、サーバ種別毎に絞ることもできるようにしています。

Page 33: ゲームインフラとGoogle Cloud Platformと酒!

strecherのGCS版• 名前つけてない・・・

• 通常では対応できないレベルのクラスタ向け

• Google Cloud Storageを利用した大規模向けデプロイツール

• 200 instancesくらいに対して配布対象に対して配布するサイズにもよりますが2秒程度で完了します。

Page 34: ゲームインフラとGoogle Cloud Platformと酒!

Backup Framework• 毎回shellscriptなどで作るのがめんどいのでframewaork化を進めています。

• golang製のCLI Framework

• MySQL/MongoDB

• Google Cloud Storage Standard/NearlineのBulk/Archiveの振り替えなどに対応予定

Page 35: ゲームインフラとGoogle Cloud Platformと酒!

grasysではご紹介したようにたくさんのインフラ向けのツールを開発しています。

Page 36: ゲームインフラとGoogle Cloud Platformと酒!

MSP事業者として インスタンス追加とか管理といった単純な作業ではなく一緒に負荷対策を検討したり必要あれば構成変更も打診しています。

開発者の方と一緒に運用していく形をかなり重視しています。

Page 37: ゲームインフラとGoogle Cloud Platformと酒!

ご興味あればお気軽にご連絡ください!

Page 38: ゲームインフラとGoogle Cloud Platformと酒!

ご清聴ありがとうございました。

ご質問ありましたらお気軽にどうぞ!

Facebookの友達申請もお気軽にどうぞ!

長谷川 祐介facebook: yusuke.exzm