grasysの仕組み解説

56
Date: 2015/01/25 grasysの仕組み解説

Upload: yusuke-hasegawa

Post on 18-Jul-2015

2.207 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: grasysの仕組み解説

Date: 2015/01/25

grasysの仕組み解説

Page 2: grasysの仕組み解説

index• 会社紹介

• 自己紹介

• 実績

• grasysのシステム管理手法

• grasysの各種Toolご紹介

• システム構築のフロー

• システム運用のフロー

• GCP事例紹介(ソーシャルゲーム

• Google Cloud Platformの各種性能評価

Page 3: grasysの仕組み解説

会社紹介

社名 株式会社grasys

設立 2014年11月13日

代表 長谷川祐介

事業内容MSP事業・システム運用保守受託

クラウドのシステムコンサルティング

Page 4: grasysの仕組み解説

2015年1月

パートナーになりました!

Page 5: grasysの仕組み解説

grasys• 開発者様がProductの開発に注力できる環境をご提供

• システムの足回りはすべてこちらがご提供

• 運用コストを意識した運用設計

• 24時間365日の運用監視体制

• 開発者様と24時間365日 連携可能な体制

Page 6: grasysの仕組み解説

自己紹介氏名 長谷川 祐介

経歴

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

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

職種 いわゆるインフラエンジニアGCP歴 GCEを中心に1年ほどその他 azureは少し, awsも触っています。

pub

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

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

今はいろいろアピールしなきゃいけない時期なので勘弁して下さい!w

facebook: yusuke.exzm

Page 7: grasysの仕組み解説

実績(言えないこと多すぎw• 株式会社Zeadle ソーシャルゲーム(mobage/gree)

• クラウドソーシングシステム(global

• A社 XXXXXXX XXXXX (超やばい・・・言えない・・・

• A社 XXXX XX XXXXXXXXX(ひみつ・・・言えない・・・

• A社 XXXXXXXX(い・・・いえない・・・

• B社 XXXXX(いえない・・・

• C社 XXXXXXX(いえない・・・

• D社 XXXXXXXX(いえない・・・

• E社 お話し中

• F社 お話し中

• NDAあるのでこちらに書けないけど・・・いろいろやってます!

Page 8: grasysの仕組み解説

grasysのシステム管理手法

Page 9: grasysの仕組み解説

各種作業の項目に分解

monitoring

configuration

bootstrap

provisioning

operation

deployment

インスタンス起動

必要なソフトウェアのインストール

各種設定の管理

監視と通知

定形の運用作業やオーケストレーション

更新の配布や開発アプリの配布

clustering サーバをグループ化

Page 10: grasysの仕組み解説

provisioningconfigration 環境変数/PATH/LD自動設定

configration各種Middleware自動設定

fluentd/haproxy

clusteringconfigrationmonitoring

serf/consul/monitoring自動設定

clusteringoperation オーケストレーションツール

bootstrapGoogle metadata Instance Tagを利用

各種Daemon起動Tool

provisioningconfigration

ansibleのplaybookまとめwrapper script

grasys Utilities

cfgutils

clutils

clctl

glauncher

envutils

setuputils

現在はperlで書かれているものが多いですが、順次goへ移植中

Page 11: grasysの仕組み解説

考え方• 必要な作業を分類

• 作るToolを体系化多少またがっていても良い一番わかりやすいのは使うMiddlewareはconfigration/provisioningを混ぜて一発セットアップする。

• 目的別に利用

• どこかで何か処理させる必要がある場合、どこに差し込んでいくか考え全体の流れを構成

• 運用設計を必ず初期の要件定義後の設計に盛り込む運用コストが段違いになる

Page 12: grasysの仕組み解説

各種解説

Page 13: grasysの仕組み解説

bootstrap

Page 14: grasysの仕組み解説

provisioning

Page 15: grasysの仕組み解説

configuration

Page 16: grasysの仕組み解説

clustering

Page 17: grasysの仕組み解説

monitoring

Page 18: grasysの仕組み解説

monitoring consul

Page 19: grasysの仕組み解説

monitoring grafana

Page 20: grasysの仕組み解説

monitoring grafana

Page 21: grasysの仕組み解説

monitoring grafana

Page 22: grasysの仕組み解説

monitoring grafana

Page 23: grasysの仕組み解説

monitoring kibana3

Page 24: grasysの仕組み解説

monitoring kibana3

Page 25: grasysの仕組み解説

operation

Page 26: grasysの仕組み解説

deployment

Page 27: grasysの仕組み解説

システム構築のフロー

Page 28: grasysの仕組み解説

srcサーバ構築

Page 29: grasysの仕組み解説

grasys Utilities各種設定

Page 30: grasysの仕組み解説

bootstrap開始

Page 31: grasysの仕組み解説

bootstrap手順を 目的のcluster分繰り返すと

Page 32: grasysの仕組み解説

できあがりの例

Page 33: grasysの仕組み解説

システム運用のフロー

Page 34: grasysの仕組み解説

configの更新(自動化の必要のないもの)

Page 35: grasysの仕組み解説

configの更新(自動化されているもの)

cfgutils

Page 36: grasysの仕組み解説

Daemonのreload/restart

glauncher

Init Script

Page 37: grasysの仕組み解説

運用管理について• 基本はオーケストレーションで対応してます。

• データストア系は1台1台のオペレーションが必要だったりします。

• データストア系のReplication/Cluster化などは随時作っていてこれからgrasys Utilitiesに加わっていく予定です。

Page 38: grasysの仕組み解説

監視体制について

24時間365日対応致します。

Page 39: grasysの仕組み解説

GCP事例紹介

Page 40: grasysの仕組み解説

ソーシャルゲーム事例• Webにおけるリアルタイムを追求

• 最大20人でレイドボスを叩ける

• リアルタイム部分にはWebSocket利用

• サービスの30%以上がWebSocket(イベント時には80%くらい)のWebSocket/XHR部分がキモの設計

• 2014年7月にかなり実験的に作ったアーキテクチャでUpdateしながら現在稼働中

Page 41: grasysの仕組み解説

GCP各種サービスCompute Engine

Application, WebSocketRedis, MariaDB, JobQueue, Worker, Batch

etc…

CloudDNS DNSはすべて依存

Cloud Storage静的ファイル配信Backupなどに活用

BigQuery 各種Syslog, ApplicationLogのアーカイブとして活用

Google Analytics今回スマートフォン限定のサービスなため

全面的に活用

Page 42: grasysの仕組み解説

お世話になっているみなさん

Page 43: grasysの仕組み解説

インスタンス種別Application x 10 MariaDB x 4(Master/Slave x 2

WebSocket x 10 Redis x 4

Job Queue Redis x 2 Operaton Central x 1

Job Queue Worker x 4 Monitor x 1

API x 2 Batch x 1

Page 44: grasysの仕組み解説

Application

Page 45: grasysの仕組み解説

WebSocket

Page 46: grasysの仕組み解説

WEBSOCKET振り分け• LoadBalancerを使ってません!いわゆるHTTP Dispatcherを独自で構成してます。

• 監視結果を元に正常なWebSocketインスタンス情報を更新

• 各レイドボス出現タイミングで選択

• リアルタイムバトルではteam_id単位で利用するインスタンスを選択

Page 47: grasysの仕組み解説

DEPLOY• BlueGreenっぽい

• Active/Standbyの データ保持はconsulのkv

• 基本はserf/consulの オーケストレーション

• git pullするだけ

• nginxのconfigはconsulのkvを用いて自動生成

• その他Roleback可能 Staging/Maintenanceの各Modeを持つ

Page 48: grasysの仕組み解説

Google Cloud Platform 性能評価

Page 49: grasysの仕組み解説

Load Balancer• http://qiita.com/kazunori279/items/8d2417c8510021c697e7こちらで解説されています。

• DNSを介さず世界中のRegionへ分散可能

• ウォームアップなしで常時100万req/secさばける性能を提供(この100万は限界ではなくLoadTestの性能限界らしい・・・w

Page 50: grasysの仕組み解説

Load Balancer

Google Cloud Platform blog転載http://googlecloudplatform.blogspot.jp/2013/11/compute-engine-load-balancing-hits-1-million-requests-per-second.html

Page 51: grasysの仕組み解説

Disk性能(NVMe Debian版

http://qiita.com/kazunori279/items/7837a78d18ec7e22b939

Page 52: grasysの仕組み解説

Network benchmark• あるお客様からの要望で取得

• nuttcpで取得

• 2014.10.09のデータ

• Machine-Typeはn1-standard-4

• 1coreあたり2Gbits/secのcapがあります。

Page 53: grasysの仕組み解説

Network benchmark

Page 54: grasysの仕組み解説

Network benchmark

Page 55: grasysの仕組み解説

Network benchmark

Page 56: grasysの仕組み解説

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

ご質問ありましたらお気軽に名刺交換でもなんでもご質問下さいませ!

長谷川 祐介facebook: yusuke.exzm