[sapporo cedec] サービスの効果を高めるグリー内製ツールの技術と紹介

72
Copyright © GREE, Inc. All Rights Reserved. サービスの効果を高める グリー内製ツールの技術と紹介 だいぶインフラストラクチャ寄りです グリー株式会社 堀口真司 2014/11/22

Upload: greetech

Post on 07-Jul-2015

2.142 views

Category:

Technology


4 download

DESCRIPTION

SAPPORO CEDECでの講演資料です。 http://smileboom.com/sapporocedec/ <セッション内容> サービスの効果を高めるグリー内製ツールの技術と紹介 堀口 真司 グリー株式会社 開発統括本部 インフラストラクチャ本部 お客様に、よりよいサービスを届けるために開発されたツールの紹介をします。 またそれらの需要変化や規模、技術、今後の展開などをお見せします。

TRANSCRIPT

Page 1: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

サービスの効果を高めるグリー内製ツールの技術と紹介

だいぶインフラストラクチャ寄りです

グリー株式会社堀口真司

2014/11/22

Page 2: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

インフラ女子

グリー株式会社 会社紹介

六本木に構えてます

知名度低め

偉い人がよくわからないことをやっている

グリー CTO

GREE 10th

Page 3: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

自己紹介

• 31歳ゲーム好き。仕組みを調べたり作ったりする方が好き。

• 生まれも育ちも東京です。北区→渋谷区→練馬区→大田区→港区

• インフラエンジニアには珍しいゲーム業界系 (?)

家庭用ゲームGC/PS2

家業

MMO-RPG

独自プロトコル系PC/PS2~PSP

アーケードゲームハードウェア系

PS3/Linux

ソシャゲインフラ系

?

18歳

10歳C/C++

チート・セキュリティ

Page 4: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

もくじ

• 用語や構成

• 問題解決しようとしたこと

• ツール一覧

• 今後の展開

• まとめ

Page 5: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

用語や構成

アプリケーションサーバ

データベース

サーバ・ハードウェア

ラック・データセンター

プロキシ・ロードバランサ

ブラウザなど

CDN

DNS

冗長性柔軟性

高更新頻度

拡張性手軽さ

Page 6: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

用語や構成

アプリケーションサーバ

データベース

サーバ・ハードウェア

ラック・データセンター

プロキシ・ロードバランサ CDN

DNS

ブラウザなど

• フィーチャーフォン• Android / iOS

• Unity3D

• Adobe AIR

• flashlite

• HTML5

• ほとんどモバイル端末

Page 7: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

ブラウザなど

用語や構成

アプリケーションサーバ

データベース

サーバ・ハードウェア

ラック・データセンター

CDN

DNS

プロキシ・ロードバランサ

• LVS (DSR)

• LVS (NAT)

• Apache

• nginx

• ハコモノ

Page 8: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

よくある LVS(DSR) – Proxy - httpd

LVS LVS

proxy proxy proxy

httpd httpd httpd httpd…..

LVSは global ip を持ちインターネットからの入り口になる。

2台一組で片方は待機系

Reverse proxy へはWRRによって割り振られる。DSR なのでレスポンスはLVS を通らず直接返す

httpdへはWR で割り振られる。サーバスペックによって重みがある。このレイヤでだいたい100台ぐらい

3LVS または proxy

のレイヤーが無いパターンもある

VIP

Page 9: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

プロキシ・ロードバランサ

ブラウザなど

用語や構成

データベース

サーバ・ハードウェア

ラック・データセンター

CDN

DNSアプリケーションサーバ

Apache 内で動くものが大半。ほとんどが PHPたまに Ruby。一部 node.jsによるフルスタック

Page 10: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

いにしえの全部いり戦略

httpd

a.game.gree.jp b.game.gree.jp

support.gree.jp dev.gree.jp

stg.gree.jp

api.gree.jp

可能な限りすべてのソースを持ってる。Virtual host によって機能使い分け。

CLI agent

スマホ時代まで

Page 11: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

プロキシ・ロードバランサ

ブラウザなど

用語や構成

アプリケーションサーバ

サーバ・ハードウェア

ラック・データセンター

CDN

DNS

データベース

• MySQL

• flare

• MongoDB

• ZooKeeper

Page 12: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

ふつうの MySQL

app

• Master

• Slave

しかし、尋常でないレベルの可用性。ほとんどの運用も無停止で行う

Page 13: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

プロキシ・ロードバランサ

ブラウザなど

用語や構成

アプリケーションサーバ

データベース

ラック・データセンター

CDN

DNS

サーバ・ハードウェア

• Debian

• ubuntu

• solaris

• Fusion IO

• ZFS

Page 14: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

基本セット

サーバ

NIC3

ipmi

RAID1

No-battery

SCSI-HDD SCSI-HDD

主系スイッチ

従系スイッチ操作系スイッチ

電源

系統A

系統B

系統C

インターネットもローカルもこれ一本

電源は一基のみ。系統がダウンすると

1/3のサーバがダウンしてしまうSCSI-HDD SCSI-HDD

バッテリ管理コストの都合でキャッシュのバッテリ無し。用途によって容量が違う

bonding

NIC1

active

NIC2

standby

コスパ重視

NIC4

?

2

3

Page 15: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

プロキシ・ロードバランサ

ブラウザなど

用語や構成

アプリケーションサーバ

データベース

サーバ・ハードウェア

CDN

DNS

ラック・データセンター

メインは東京ラック間転送量や電源容量、重量などを考慮し配置する

Page 16: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

プロキシ・ロードバランサ

ブラウザなど

用語や構成

アプリケーションサーバ

データベース

サーバ・ハードウェア

ラック・データセンター

DNS

CDN画像やアプリパッケージ配信。

CDN 用サブドメインにてアクセスすると CDN経由になる。

多様な使い方。

Page 17: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

プロキシ・ロードバランサ

ブラウザなど

用語や構成

アプリケーションサーバ

データベース

サーバ・ハードウェア

ラック・データセンター

CDN

DNSカオス

Page 18: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © 2004-2014 GREE,Inc. All Rights Reserved.Confidential

問題解決しようとしたこと

Page 19: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

当時の状況

ゲーム

プラットフォームや SNS

課金などダウンさせられない齟齬があってもダメ

若干妥協できる速度・効率重視

フィーチャーホンスマートフォン アプリデベロッパー

端末も多く、利用される技術はとても多い

Page 20: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

当時の状況

ゲーム

プラットフォームや SNS

課金など • 負荷に応じてサーバをたくさん追加

• 月末月初は慎重に• ダウンしたらすぐに電話• 気合と根性で運用

フィーチャーホンスマートフォン アプリデベロッパー

早い、安い、うまい似てるようなゲームが多いしかし特殊な表現も一部あり

Page 21: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © 2004-2014 GREE,Inc. All Rights Reserved.Confidential

ツール一覧

Page 22: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

ツールもくじ

• オリジナルや OSSの組み合わせ

Page 23: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

もくじ• Cascade

• ミドルウェア

• github公開済み

• SQLや KVS等のデータにアクセスできる

• PHPかつ仕組みが単純なので扱える人が多い

• Cascade

• Awacs

• (1st) Server

• Flare

• Skail

• SH bot

• LWF

• RUM

• PrimDNS

• Release M@aster

• GTP

• SDB

• Aegis

• ganglia

• Andes

Page 24: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

Cascade

• サービスを止めずにデータソースを切り替えられる

• データへのアクセス方法が統一されている

アプリケーション

KVS RDBMS

Cascadeparameter

パラメータの書き換えは頻繁かつコードを書かない人も編集できるぐらい単純

ORM でなく比較的ベタな SQL .

クエリの可視化をしやすくすることで問題解決やチューニングもしやすく。

Page 25: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

もくじ• Awacs

• アラート発行システム

• agentをインストール

• 監視ツールのクローラーが限界だった

• Cascade

• Awacs

• (1st) Server

• Flare

• Skail

• SH bot

• LWF

• RUM

• PrimDNS

• Release M@aster

• GTP

• SDB

• Aegis

• ganglia

• Andes

Page 26: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

Awacs

agent

agent

agent

各種サーバにインストールされている agentから大量のレポートが送られてくる

queue

filter

filtertopic

summarizer

queuemail

重要なものをまとめる

2

メールや電話を行う

Page 27: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

もくじ• Server (サーバ管理)

• 通称ファースト環境

• サーバ機材の一生を管理する•納品から破棄まで

• 数万台分のエントリ

• 僅かながら状態を持てる

• Cascade

• Awacs

• (1st) Server

• Flare

• Skail

• SH bot

• LWF

• RUM

• PrimDNS

• Release M@aster

• GTP

• SDB

• Aegis

• ganglia

• Andes

Page 28: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

昔のサーバ管理方法は

• PHPの配列に直接書いておく• サーバの IPアドレス

• サーバの用途

Page 29: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

Server

• 他のサービスと同じように、全部いりのうちのひとつ• 自身のサーバも当システムに登録、利用

api.server

グリーのプラットフォームやゲーム等のデータも入っている。データベースの運用品質もお客様向けサービスと全く同じ

Page 30: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

Server

• データセンター、ラック、配置場所などの納品情報

• いつ、どのように機材の役割が変わったかなどの履歴• 生まれたて→ データベースサーバとして→ ウェブとして→ 破棄

• ホスト名、タグ、用途、アドレスなど僅かな状態

web

api

Page 31: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

状態確認ツールなど

• 状態確認や MySQLの稼働状況、トポロジの確認、 Proxyの設定変更など CLIによる一つのコマンドで出来るようになっている

• 実装言語が多種。 sh > php > pl > rb . わずかに python,node.js• 野良ツールもあわせると100個をおそらく超える

Page 32: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

例えば、デプロイツール

api.server

deploy1

deploy2

deploy…

デプロイ対象のアドレスや状態を

問合せ

platform

game

sns

数十並列x数千台にソースコードや画像等を

rsync していく

proxy

更新中のサーバにアクセスできないようProxyでコントロール

Page 33: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

もくじ• Flare / cloud Flare

• KVS

• 単体機能は memcache

• コアは C/C++

• マネジメントツールはHaskell

• Cascade

• Awacs

• (1st) Server

• Flare

• Skail

• SH bot

• LWF

• RUM

• PrimDNS

• Release M@aster

• GTP

• SDB

• Aegis

• ganglia

• Andes

Page 34: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

制御システム

ノードサーバ管理システム

cloud flare

Message

Queue

Message

Queue

制御サーバ

制御サーバ

制御サーバ

ノード

状態管理サーバ

Operatorノード

ノード

ノード

ノード

ノード

個々のノードの構成管理を行う

ノードの監視と制御

大部分がHaskellにてできている

Page 35: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

もくじ• Skail

• Skype Bridgeが元

• Skype,IRC,CW,mail

• それぞれのチャンネルの内容を同期

• Chat-ops

• Cascade

• Awacs

• (1st) Server

• Flare

• Skail

• SH bot

• LWF

• RUM

• PrimDNS

• Release M@aster

• GTP

• SDB

• Aegis

• ganglia

• Andes

Page 36: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

Skail

SkypemailCW

skail

IRC1

IRC2

MacBook

で動いている

BOT deploy1

deploy2

deploy…

worker

BOTにコマンドを送ることができる

JIRA

jenkins

イベントの通知

Page 37: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

もくじ• SH bot (通称)

• ふるまいは常識的なもの•ログイン~対戦~終了

• HTTPではない

• やさぐれたエンジニアがHaskellを使って開発

• 軽量、高速

• Cascade

• Awacs

• (1st) Server

• Flare

• Skail

• SH bot

• LWF

• RUM

• PrimDNS

• Release M@aster

• GTP

• SDB

• Aegis

• ganglia

• Andes

Page 38: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

SH Bot

Realtime server

Api (www)

独自プロトコルのサーバをシナリオに応じて

ブラックボックステストを行う

Haskell

軽量、高速、安定

Page 39: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

もくじ• LWF

• Flashの軽量プレイヤー

• Web,Unity,Cocos等がターゲット

• Cascade

• Awacs

• (1st) Server

• Flare

• Skail

• SH bot

• LWF

• RUM

• PrimDNS

• Release M@aster

• GTP

• SDB

• Aegis

• ganglia

• Andes

Page 40: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

LWF

.swf json

Unity3D

HTML5

Cocos2d

入稿データはswfを利用できる

プレイヤーがサポートしているプラットフォーム。

Page 41: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

もくじ• RUM

• NewRelic参考

• ページ読み込み速度取得

• 釧路出身者が設計から実装、導入まですべて対応

• JSと Python

• Cascade

• Awacs

• (1st) Server

• Flare

• Skail

• SH bot

• LWF

• RUM

• PrimDNS

• Release M@aster

• GTP

• SDB

• Aegis

• ganglia

• Andes

Page 42: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

RUM

CDN

varnish

普通の www

Python の daemon

fluentd

HDFS

RUM のダウンロードと通知は CDN で行う

1

フィルタによって通常のアクセスか RUM クエリかを振り分ける

整形して分析ツールに保存

Page 43: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

もくじ• PrimDNS

• MySQLを参照しレコードを返す

• 内部利用のみ

• C/C++

• Cascade

• Awacs

• (1st) Server

• Flare

• Skail

• SH bot

• LWF

• RUM

• PrimDNS

• Release M@aster

• GTP

• SDB

• Aegis

• ganglia

• Andes

Page 44: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

PrimDNS

PrimDNS作業用

app

app

PrimDNS

サーバ管理システムのデータベースを参照している

一般的なprimary,secondary

による冗長化

ゾーン毎に任意のコマンドで解決できる

Page 45: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

DNS戦国時代

• Bind• gree.jpを管理。 CDNでキャッシュされている

• Unbound• 外部ドメインの中間キャッシュ

• tinydns• 殆どのサーバに入っているローカルキャッシュ

• 設定が柔軟で使いやすい

• PowerDNS• 主に MySQL アクセスコントロール用

• LVS(NAT)で負荷分散し PowerDNSの機能でアドレスをWRRできる

• dnsmasq• tinydnsと同じ用途で利用

• ubuntuでは主にこちら

• PrimDNS• 内部サーバのホスト名解決用

Page 46: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

もくじ• Release M@aster

• “Server” 環境対応

• ソースコードデプロイの排他制御を行う•以前はチャットで音頭を取り合う

• 比較的モダンな GUI•ユーザ制御デプロイ記録

• Ruby

• Cascade

• Awacs

• (1st) Server

• Flare

• Skail

• SH bot

• LWF

• RUM

• PrimDNS

• Release M@aster

• GTP

• SDB

• Aegis

• ganglia

• Andes

Page 47: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

手動時代

チャットや空気を読んで作業する。かなり多い

デプロイの依存関係マトリクス。他の人がデプロイ中に

依存しているコードをデプロイしてはいけない

Page 48: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

Release M@aster

nginx

unicorn

rails

api.server

deploy1

deploy2

deploy…worker

MySQL

Redis

worker がジョブを読んでデプロイを実行。

完了したらジョブの状態を更新して次へ。

開発者がブラウザをポチポチしてジョブを設定

1

ジョブの状態は MySQLへ。実行時に Redisにキュー

2 3

Page 49: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

もくじ• GTP

• MySQLへのアクセスをコントロール

• 障害の起こったサーバを外す

• マスターサーバの場合フェイルオーバーを行う

• node.js / MongoDB

• 東川町(旭川の隣)出身者が設計、開発

• Cascade

• Awacs

• (1st) Server

• Flare

• Skail

• SH bot

• LWF

• RUM

• PrimDNS

• Release M@aster

• GTP

• SDB

• Aegis

• ganglia

• Andes

Page 50: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

GTP大規模向け

MySQLの状態をクローリング。

100台/sec

1

Masterの DB がダウンした場合は

Slaveの昇格

2

www

www

www

www

Power DNS

問題のあったサーバのエントリ書き換え

どの DBサーバにアクセスするかは名前解決の結果に

よって制御される

GTPGTP

GTP

Page 51: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

GTP小規模向け

GTP

www

www

www

www

名前解決使うのは同じ

nsswitch.confを拡張したAgentのエントリを書き換え

3

Page 52: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

もくじ• Server Dashboard (SDB)

• パートナー企業さんも利用できる

• 閉じられたネットワークを使える

• Ruby

• Cascade

• Awacs

• (1st) Server

• Flare

• Skail

• SH bot

• LWF

• RUM

• PrimDNS

• Release M@aster

• GTP

• SDB

• Aegis

• ganglia

• Andes

Page 53: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

Server Dashboard (SDB)

gw proxy

www

www

www

www

stg

QA

batch

gw proxy

www

www

www

www

stg

QA

batch

gw proxy

www

www

www

www

stg

QA

batch

サービス毎に仕切りがあり他のネットワーク

にアクセスできない

SDB

Page 54: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

gateway

SDB

SDB

Web, API

Worker template

gateway

にシェルスクリプトのtemplate を送り

Workerに実行させる

nodenode

node

普通の MVC アプリ

Page 55: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

もくじ• Aegis

• SDBを PHPで疎結合に作り直したもの

• 札幌出身者が!

• chefで構築などを行う

• Cascade

• Awacs

• (1st) Server

• Flare

• Skail

• SH bot

• LWF

• RUM

• PrimDNS

• Release M@aster

• GTP

• SDB

• Aegis

• ganglia

• Andes

Page 56: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

Auth

Aegis

Web

Render

Core

API

tool

Server

構成管理

awacs Controllernode

nodenode

Chef をControllerで実行

することでCoreの負担軽減。

HTMLレンダリング情報も APIから取得してくる

ノードからのログは awacs

に送る

社員 LDAP

協力会社 LDAP

Page 57: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

もくじ• Ganglia

• サーバモニタリング

• agentをインストールするだけでお手軽運用

• 大量のメトリクス•どんどん増えた

• Cascade

• Awacs

• (1st) Server

• Flare

• Skail

• SH bot

• LWF

• RUM

• PrimDNS

• Release M@aster

• GTP

• SDB

• Aegis

• ganglia

• Andes

Page 58: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © 2004-2014 GREE,Inc. All Rights Reserved.Confidential

Ganglia

MySQL関連だけで100個ぐらい

追加しやすいのでとりあえず表示が多い

Page 59: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

gangliaGanglia frontend

(reverse proxy)

gmetad

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

rrd

web

gmetadrrd

web

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

agent

gmetadrrd

web

見かけ上、これ一基ですべてのサーバのメトリクス

を監視、調査できる

マルチキャストでなく、ユニキャストで二回

別々の gmetadに送ってる

/24単位でクラスタ。大量のクラスタ。

Page 60: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

もくじ• Andes

• MySQL Master向き

• DRBDによるストレージ多重化

• Cascade

• Awacs

• (1st) Server

• Flare

• Skail

• SH bot

• LWF

• RUM

• PrimDNS

• Release M@aster

• GTP

• SDB

• Aegis

• ganglia

• Andes

Page 61: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

standbyactive

Andes

MySQL MySQL

DRBD DRBD

app

vip

VIPで active 選択Pacemaker

corosync で制御

専用 NIC で直結。データ同期に問題が出る可能性はとても低い。

Standby 側の MySQL

起動に数秒の時間がかかる

Page 62: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

他にも

• 分析ツール

• レポートツール

• サポートツール

• 野良アプリ公開広場

• などなどたくさんある…

Page 63: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

gpdata

www

www

www

www

MySQL

Web

HDFSHDFS

Zoo

KeeperAzkaban

MR

Hive

Presto

Macaron

Solaris / log

HBase

オリジナルFrontend

とてもたくさんある

分析基盤はよくわからない

Page 64: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

region

PowerDNS

VIP

LVS

(NAT)

LVS

(NAT)

Power

DNS

MySQL

tinydns

Power

DNS

MySQL

Power

DNS

MySQL

region

VIP

LVS

(NAT)

LVS

(NAT)

Power

DNS

MySQL

Power

DNS

MySQL

Power

DNS

MySQL

tinydns

データセンター毎にワンセットずつある

最寄のリージョンに問い合わせる。

DBの内容は同じだが名前解決の結果を

リージョン毎に変えられる

Page 65: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

ツール系開発言語分析

32%

21%

18%

10%

7%

6%

4% 2%0%

利用言語

PHP Ruby Shell Perl JavaScript Haskell C/C++ Python Java

Page 66: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

今後の展開

Page 67: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

ウェブからネイティブゲームへ

• 昔のプラットフォーム• Mixi

• Mobage

• Gree

• さらに昔は任天堂、SCE、SEGA

• すこし前の開発環境• Webで高度な表現をするためには

• HTML5,LWF,WebGL,enchant.js 等..

• 今のゲームプラットフォーム• App Store

• Google Play

Page 68: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

ツール開発の目標

• 大規模は見据えつつも• 大ヒットしない可能性

• 運用維持費の考慮

• オリジナルか、汎用かの比較

• クライアントアプリ技術は収束気味• Unity3Dまたは Cocos2d

• ウェブ技術は停滞気味• Webの利点が生かしにくく、 HTML5/WebGLは進化せず

• ダウンロード不要→ むしろ Storeに案内しにくい

• セキュリティ→ アプリ毎に権限の可視化で軽減

• ウェブ臭がむしろ避けられる

Page 69: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

インフラの今後

• 必要なときに必要な分だけ• これは今も昔も変わらず

• ネイティブ(クライアント)寄りになってきて、サーバの演算リソースが低下

• HTMLレンダリング→ APIコール

• 他変わらず

• クラウドの展開• クラウドゲーミングが普及した場合、サーバの演算リソースが必要になるが…

• P2Pのサポートとか

• ゲームロジックを書ける SaaSとか

Page 70: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

まとめ

大量のサーバ

大量のツール

如何にして展開していくか

Page 71: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © GREE, Inc. All Rights Reserved.

まとめ

• 規模が大きくなったら• OSSではまかないきれない

• アレコレ考えるより作るほうがよい

• 拡大はいつか必ず止まる

• よく起こる(起こった)問題• 短期的に作られたツールが広く長く利用されてしまい、メンテコストが上がる

• 社内向けだからとセキュリティが甘いことがあり、対応が先送りになる

• CLI派と GUI派があり、両対応コストがかさむ

• ある既存ツールの置き換えツールができたとき、依存しているツールの対応コストが増える

• 進化の足かせにもなる

• 短期的にはサーバ全体の需要は下がるであろう• HTMLレンダリングは無くなり、 API利用にシフト

Page 72: [SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介

Copyright © 2004-2014 GREE,Inc. All Rights Reserved.ConfidentialConfidential Copyright © 2004-2010 GREE,Inc. All Rights Reserved.

ありがとうございました