SlideShare a Scribd company logo
1 of 72
Copyright © GREE, Inc. All Rights Reserved. 
サービスの効果を高める 
グリー内製ツールの技術と紹介 
だいぶインフラストラクチャ寄りです 
グリー株式会社堀口真司 
2014/11/22
Copyright © GREE, Inc. All Rights Reserved. 
インフラ女子 
グリー株式会社会社紹介 
六本木に 
構えてます 
知名度低め 
偉い人がよくわからない 
ことをやっている 
グリーCTO 
GREE 10th
Copyright © GREE, Inc. All Rights Reserved. 
自己紹介 
• 31歳ゲーム好き。仕組みを調べたり作ったりする方が好き。 
• 生まれも育ちも東京です。北区→渋谷区→練馬区→大田区→港区 
• インフラエンジニアには珍しいゲーム業界系(?) 
家庭用ゲーム 
GC/PS2 
家業 
MMO-RPG 
独自プロトコル系 
PC/PS2~PSP 
アーケードゲーム 
ハードウェア系 
PS3/Linux 
ソシャゲ 
インフラ系 
? 
18歳 
10歳 
C/C++ 
チート・セキュリティ 
t
Copyright © GREE, Inc. All Rights Reserved. 
もくじ 
• 用語や構成 
• 問題解決しようとしたこと 
• ツール一覧 
• 今後の展開 
• まとめ
Copyright © GREE, Inc. All Rights Reserved. 
用語や構成 
ブラウザなど 
プロキシ・ロードバランサ 
アプリケーションサーバ 
データベース 
サーバ・ハードウェア 
ラック・データセンター 
CDN 
DNS 
冗長性 
柔軟性 
高更新頻度 
拡張性 
手軽さ
Copyright © GREE, Inc. All Rights Reserved. 
用語や構成 
プロキシ・ロードバランサCDN 
アプリケーションサーバ 
データベース 
サーバ・ハードウェア 
ラック・データセンター 
DNS 
ブラウザなど 
• フィーチャーフォン 
• Android / iOS 
• Unity3D 
• Adobe AIR 
• flashlite 
• HTML5 
• ほとんどモバイル端末
Copyright © GREE, Inc. All Rights Reserved. 
ブラウザなど 
用語や構成 
アプリケーションサーバ 
データベース 
サーバ・ハードウェア 
ラック・データセンター 
CDN 
DNS 
プロキシ・ロードバランサ 
• LVS (DSR) 
• LVS (NAT) 
• Apache 
• nginx 
• ハコモノ
LVS はglobal ip を持ち 
インターネットからの 
2 
3 LVS またはproxy 
のレイヤーが無いパ 
Copyright © GREE, Inc. All Rights Reserved. 
よくあるLVS(DSR) – Proxy - httpd 
LVS LVS 
proxy proxy proxy 
httpd httpd httpd ….. httpd 
入り口になる。 
2台一組で片方は待機系 
1 
Reverse proxy へは 
WRR によって割り振られる。 
DSR なのでレスポンスは 
LVS を通らず直接返す 
httpd へはWR で割り振られる。 
サーバスペックによって重みがある。 
このレイヤでだいたい100台ぐらい 
ターンもある 
VIP
Apache 内で動くものが大半。 
ほとんどがPHP たまにRuby。 
一部node.js によるフルスタック 
Copyright © GREE, Inc. All Rights Reserved. 
ブラウザなど 
用語や構成 
プロキシ・ロードバランサ 
データベース 
サーバ・ハードウェア 
ラック・データセンター 
CDN 
アプリケーションサーバDNS
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 
スマホ時代まで
Copyright © GREE, Inc. All Rights Reserved. 
ブラウザなど 
用語や構成 
プロキシ・ロードバランサ 
アプリケーションサーバ 
サーバ・ハードウェア 
ラック・データセンター 
CDN 
DNS 
データベース 
• MySQL 
• flare 
• MongoDB 
• ZooKeeper
Copyright © GREE, Inc. All Rights Reserved. 
ふつうのMySQL 
app 
• Master 
• Slave 
しかし、尋常でない 
レベルの可用性。 
ほとんどの運用も 
無停止で行う
Copyright © GREE, Inc. All Rights Reserved. 
ブラウザなど 
用語や構成 
プロキシ・ロードバランサ 
アプリケーションサーバ 
データベース 
ラック・データセンター 
CDN 
DNS 
サーバ・ハードウェア 
• Debian 
• ubuntu 
• solaris 
• Fusion IO 
• ZFS
NIC4 
? 
Copyright © GREE, Inc. All Rights Reserved. 
基本セット 
従系スイッチ 
NIC2 
standby 
サーバ 
NIC3 
ipmi 
主系スイッチ 
bonding 
NIC1 
active 
RAID1 
No-battery 
コスパ重視 
バッテリ管理コストの 
都合でキャッシュの 
バッテリ無し。 
用途によって 
容量が違う 
SCSI-HDD SCSI-HDD 
操作系スイッチ 
電源 
系統 
A 
系統 
B 
系統 
C 
インターネットもローカルもこれ一本 
電源は一基のみ。 
系統がダウンすると 
1/3 のサーバが 
SCSI-HDD SCSI-HDD ダウンしてしまう 
1 
2 
3
Copyright © GREE, Inc. All Rights Reserved. 
ブラウザなど 
用語や構成 
プロキシ・ロードバランサ 
アプリケーションサーバ 
データベース 
サーバ・ハードウェア 
CDN 
DNS 
ラック・データセンター 
メインは東京 
ラック間転送量や 
電源容量、重量など 
を考慮し配置する
Copyright © GREE, Inc. All Rights Reserved. 
ブラウザなど 
用語や構成 
プロキシ・ロードバランサ 
アプリケーションサーバ 
データベース 
サーバ・ハードウェア 
ラック・データセンター 
CDN 
DNS 
画像やアプリパッケージ配信。 
CDN 用サブドメインにて 
アクセスするとCDN 経由になる。 
多様な使い方。
Copyright © GREE, Inc. All Rights Reserved. 
ブラウザなど 
用語や構成 
プロキシ・ロードバランサ 
アプリケーションサーバ 
データベース 
サーバ・ハードウェア 
ラック・データセンター 
CDN 
DNS 
カオス
問題解決しようとしたこと 
Copyright © 2004-2014 GREE,Inc. Confidential All Rights Reserved.
Copyright © GREE, Inc. All Rights Reserved. 
当時の状況 
フィーチャーホン 
スマートフォンアプリデベロッパー 
課金など 
プラットフォームやSNS 
ゲーム 
ダウンさせられない 
齟齬があってもダメ 
若干妥協できる 
速度・効率重視 
端末も多く、 
利用される技術はとても多い
早い、安い、うまい 
似てるようなゲームが多い 
しかし特殊な表現も一部あり 
フィーチャーホン 
スマートフォンアプリデベロッパー 
課金など• 負荷に応じてサーバをた 
Copyright © GREE, Inc. All Rights Reserved. 
当時の状況 
プラットフォームやSNS 
ゲーム 
くさん追加 
• 月末月初は慎重に 
• ダウンしたらすぐに電話 
• 気合と根性で運用
ツール一覧 
Copyright © 2004-2014 GREE,Inc. Confidential All Rights Reserved.
Copyright © GREE, Inc. All Rights Reserved. 
ツールもくじ 
• オリジナルやOSS の組み合わせ
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
パラメータの書き換えは頻繁 
かつコードを書かない人も 
編集できるぐらい単純 
Copyright © GREE, Inc. All Rights Reserved. 
Cascade 
• サービスを止めずにデータソースを切り替えられる 
• データへのアクセス方法が統一されている 
アプリケーション 
Cascade 
KVS RDBMS 
parameter 
ORM でなく比較的ベタなSQL . 
クエリの可視化をしやすくすることで 
問題解決やチューニングもしやすく。
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
Copyright © GREE, Inc. All Rights Reserved. 
Awacs 
agent 
agent 
agent 
重要なものをまとめる 
各種サーバにインストール 
されているagent から大量 
のレポートが送られてくる 
1 
queue 
filter 
filter 
topic 
summarizer 
mail queue 
2 
メールや電話を行う 
3
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
Copyright © GREE, Inc. All Rights Reserved. 
昔のサーバ管理方法は 
• PHP の配列に直接書いておく 
• サーバのIP アドレス 
• サーバの用途
Copyright © GREE, Inc. All Rights Reserved. 
Server 
• 他のサービスと同じように、全部いりのうちのひとつ 
• 自身のサーバも当システムに登録、利用 
api.server 
グリーのプラットフォームや 
ゲーム等のデータも入っている。 
データベースの運用品質も 
お客様向けサービスと全く同じ
Copyright © GREE, Inc. All Rights Reserved. 
Server 
• データセンター、ラック、配置場所などの納品情報 
• いつ、どのように機材の役割が変わったかなどの履歴 
• 生まれたて→ データベースサーバとして→ ウェブとして→ 破棄 
• ホスト名、タグ、用途、アドレスなど僅かな状態 
web 
api
Copyright © GREE, Inc. All Rights Reserved. 
状態確認ツールなど 
• 状態確認やMySQL の稼働状況、トポロジの確認、Proxy の設定変更 
などCLI による一つのコマンドで出来るようになっている 
• 実装言語が多種。sh > php > pl > rb . わずかにpython,node.js 
• 野良ツールもあわせると100個をおそらく超える
更新中のサーバに 
アクセスできないよう 
Proxy でコントロール 
Copyright © GREE, Inc. All Rights Reserved. 
例えば、デプロイツール 
api.server 
deploy1 
deploy2 
deploy… 
デプロイ対象の 
アドレスや状態を 
問合せ 
platform 
game 
sns 
数十並列x数千台に 
ソースコードや画像等を 
rsync していく 
proxy 
1 
2 
3
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
ノードの 
監視と制御 
Copyright © GREE, Inc. All Rights Reserved. 
制御システム 
サーバ管理システムノード 
cloud flare 
Message 
Queue 
Message 
Queue 
制御 
サーバ 
制御 
サーバ 
制御 
サーバ 
ノード 
状態管理サーバ 
Operator 
ノード 
ノード 
ノード 
ノード 
ノード 
個々のノードの 
構成管理を行う 
大部分が 
Haskell にて 
できている
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
Copyright © GREE, Inc. All Rights Reserved. 
Skail 
CW mail Skype 
skail 
IRC1 
IRC2 
MacBook 
で動いている 
BOT deploy1 
deploy2 
deploy… 
worker 
BOT にコマンド 
を送ることができる 
JIRA 
jenkins 
イベントの通知
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
Haskell 
軽量、高速、安定 
Copyright © GREE, Inc. All Rights Reserved. 
SH Bot 
Realtime server 
Api (www) 
独自プロトコルのサーバを 
シナリオに応じて 
ブラックボックステストを行う
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
Copyright © GREE, Inc. All Rights Reserved. 
LWF 
.swf json 
Unity3D 
HTML5 
Cocos2d 
入稿データは 
swf を利用できる 
他 
プレイヤーがサポート 
しているプラットフォーム。
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
RUM のダウンロードと 
通知はCDN で行う 
Copyright © GREE, Inc. All Rights Reserved. 
RUM 
CDN 
varnish 
普通のwww 
Python のdaemon 
fluentd 
HDFS 
1 
フィルタによって通常の 
アクセスかRUM クエリ 
かを振り分ける 
2 
整形して分析 
ツールに保存 
3
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
サーバ管理システムの 
データベースを参照している 
Copyright © GREE, Inc. All Rights Reserved. 
PrimDNS 
作業用PrimDNS 
app 
app 
PrimDNS 
一般的な 
primary,secondary 
による冗長化 
ゾーン毎に 
任意のコマンドで 
解決できる
Copyright © GREE, Inc. All Rights Reserved. 
DNS 戦国時代 
• Bind 
• gree.jp を管理。CDN でキャッシュされている 
• Unbound 
• 外部ドメインの中間キャッシュ 
• tinydns 
• 殆どのサーバに入っているローカルキャッシュ 
• 設定が柔軟で使いやすい 
• PowerDNS 
• 主にMySQL アクセスコントロール用 
• LVS(NAT) で負荷分散しPowerDNS の機能でアドレスをWRR できる 
• dnsmasq 
• tinydns と同じ用途で利用 
• ubuntu では主にこちら 
• PrimDNS 
• 内部サーバのホスト名解決用
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
Copyright © GREE, Inc. All Rights Reserved. 
手動時代 
チャットや空気を 
読んで作業する。 
かなり多い 
デプロイの依存関係マトリクス。 
他の人がデプロイ中に 
依存しているコードをデプロイ 
してはいけない
2 3 
Copyright © GREE, Inc. All Rights Reserved. 
Release M@aster 
nginx 
unicorn 
rails 
api.server 
deploy1 
deploy2 
deploy… 
MySQL 
Redis 
worker 
worker がジョブを読んで 
デプロイを実行。 
完了したらジョブの状態を 
更新して次へ。 
開発者がブラウザを 
ポチポチしてジョブを設定 
1 
ジョブの状態はMySQL へ。 
実行時にRedis にキュー
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
問題のあったサーバの 
エントリ書き換え 
Power DNS 
Copyright © GREE, Inc. All Rights Reserved. 
GTP 大規模向け 
GTP 
GTP 
MySQL の状態を 
クローリング。 
100台/sec 
1 
2 
Master のDB が 
ダウンした場合は 
Slave の昇格 
www 
www 
www 
www 
3 
どのDB サーバにアクセス 
するかは名前解決の結果に 
よって制御される 
GTP
nsswitch.conf を拡張した 
Agent のエントリを書き換え 
Copyright © GREE, Inc. All Rights Reserved. 
GTP 小規模向け 
GTP 
www 
www 
www 
www 
3 
名前解決使うのは同じ
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
サービス毎に仕切りが 
あり他のネットワーク 
www 
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 
stg 
QA 
batch 
にアクセス 
できない 
SDB
Copyright © GREE, Inc. All Rights Reserved. 
gateway 
SDB 
SDB 
Web, API 
Worker template 
gateway 
にシェルスクリプトの 
template を送り 
Worker に実行させる 
node 
node 
node 
普通のMVC アプリ
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
Copyright © GREE, Inc. All Rights Reserved. 
node 
node 
awacs Controller 
Auth 
Aegis 
Core 
API 
Web 
Render 
node 
Server 
構成管理 
tool 
Chef を 
Controller で実行 
することで 
Core の負担軽減。 
HTML レンダリング 
情報もAPI から 
取得してくる 
ノードからの 
ログはawacs 
に送る 
社員LDAP 
協力会社LDAP
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
Ganglia 
MySQL関連だけで 
100個ぐらい 
追加しやすいので 
とりあえず表示が多い 
Copyright © 2004-2014 GREE,Inc. Confidential All Rights Reserved.
rrd gmetad 
Copyright © GREE, Inc. All Rights Reserved. 
ganglia 
Ganglia 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 
web 
rrd gmetad 
agent 
agent 
agent 
agent 
agent 
agent 
agent 
agent 
agent 
agent 
agent 
agent 
agent 
agent 
web 
見かけ上、これ一基で 
すべてのサーバのメトリクス 
を監視、調査できる 
マルチキャストでなく、 
ユニキャストで二回 
別々のgmetad に送ってる 
/24 単位でクラスタ。 
大量のクラスタ。
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
Copyright © GREE, Inc. All Rights Reserved. 
app 
vip 
active standby 
Andes 
MySQL MySQL 
DRBD DRBD 
VIP でactive 選択 
Pacemaker 
corosync で制御 
専用NIC で直結。 
データ同期に問題が出る 
可能性はとても低い。 
Standby 側のMySQL 
起動に数秒の時間がかかる
Copyright © GREE, Inc. All Rights Reserved. 
他にも 
• 分析ツール 
• レポートツール 
• サポートツール 
• 野良アプリ公開広場 
• などなどたくさんある…
Copyright © GREE, Inc. All Rights Reserved. 
gpdata 
www 
www 
www 
www 
MySQL 
Web 
HDFS 
HDFS 
Zoo 
Keeper 
Azkaban 
MR 
Hive 
Presto 
Macaron 
Solaris / log 
HBase 
オリジナル 
Frontend 
とても 
たくさん 
ある 
分析基盤は 
よくわからない
Copyright © GREE, Inc. All Rights Reserved. 
region 
PowerDNS 
VIP 
LVS 
(NAT) 
LVS 
(NAT) 
Power 
DNS 
MySQL 
tinydns 
Power 
DNS 
MySQL 
最寄のリージョンに 
問い合わせる。 
DB の内容は同じだが 
名前解決の結果を 
リージョン毎に変えられる 
Power 
DNS 
MySQL 
region 
VIP 
LVS 
(NAT) 
LVS 
(NAT) 
Power 
DNS 
MySQL 
Power 
DNS 
MySQL 
Power 
DNS 
MySQL 
tinydns 
データセンター毎に 
ワンセットずつある
PHP Ruby Shell Perl JavaScript Haskell C/C++ Python Java 
Copyright © GREE, Inc. All Rights Reserved. 
ツール系開発言語分析 
32% 
21% 
18% 
10% 
7% 
6% 
利用言語 
4% 2%0%
Copyright © GREE, Inc. All Rights Reserved. 
今後の展開
Copyright © GREE, Inc. All Rights Reserved. 
ウェブからネイティブゲームへ 
• 昔のプラットフォーム 
• Mixi 
• Mobage 
• Gree 
• さらに昔は任天堂、SCE、SEGA 
• すこし前の開発環境 
• Web で高度な表現をするためには 
• HTML5,LWF,WebGL,enchant.js 等.. 
• 今のゲームプラットフォーム 
• App Store 
• Google Play
Copyright © GREE, Inc. All Rights Reserved. 
ツール開発の目標 
• 大規模は見据えつつも 
• 大ヒットしない可能性 
• 運用維持費の考慮 
• オリジナルか、汎用かの比較 
• クライアントアプリ技術は収束気味 
• Unity3D またはCocos2d 
• ウェブ技術は停滞気味 
• Web の利点が生かしにくく、HTML5/WebGL は進化せず 
• ダウンロード不要→ むしろStore に案内しにくい 
• セキュリティ→ アプリ毎に権限の可視化で軽減 
• ウェブ臭がむしろ避けられる
Copyright © GREE, Inc. All Rights Reserved. 
インフラの今後 
• 必要なときに必要な分だけ 
• これは今も昔も変わらず 
• ネイティブ(クライアント)寄りになってきて、サーバの演算リソースが低下 
• HTML レンダリング→ API コール 
• 他変わらず 
• クラウドの展開 
• クラウドゲーミングが普及した場合、サーバの演算リソースが必要になるが… 
• P2P のサポートとか 
• ゲームロジックを書けるSaaS とか
Copyright © GREE, Inc. All Rights Reserved. 
まとめ 
大量のサーバ 
大量のツール 
如何にして展開していくか
Copyright © GREE, Inc. All Rights Reserved. 
まとめ 
• 規模が大きくなったら 
• OSS ではまかないきれない 
• アレコレ考えるより作るほうがよい 
• 拡大はいつか必ず止まる 
• よく起こる(起こった)問題 
• 短期的に作られたツールが広く長く利用されてしまい、メンテコストが上がる 
• 社内向けだからとセキュリティが甘いことがあり、対応が先送りになる 
• CLI 派とGUI 派があり、両対応コストがかさむ 
• ある既存ツールの置き換えツールができたとき、依存しているツールの対応コスト 
が増える 
• 進化の足かせにもなる 
• 短期的にはサーバ全体の需要は下がるであろう 
• HTML レンダリングは無くなり、API 利用にシフト
ありがとうございました 
Copyright © 2004-2014 GREE,Inc. Confidential 2010 All Rights Reserved.

More Related Content

What's hot

SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質 SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質 Hironori Washizaki
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル貴志 上坂
 
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチYoshiki Hayama
 
アジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とはアジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とはYusuke Suzuki
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Shin Ohno
 
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13Amazon Web Services Japan
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDayマイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay都元ダイスケ Miyamoto
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
テストコードの DRY と DAMP
テストコードの DRY と DAMPテストコードの DRY と DAMP
テストコードの DRY と DAMPYusuke Kagata
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門Kohei Tokunaga
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjugYahoo!デベロッパーネットワーク
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTT DATA Technology & Innovation
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方Yoshiyasu SAEKI
 
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べたWkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べたfirewood
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門土岐 孝平
 
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現するゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現するKeioOyama
 

What's hot (20)

SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質 SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
 
Serverless時代のJavaについて
Serverless時代のJavaについてServerless時代のJavaについて
Serverless時代のJavaについて
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
 
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
 
アジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とはアジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とは
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
 
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDayマイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
テストコードの DRY と DAMP
テストコードの DRY と DAMPテストコードの DRY と DAMP
テストコードの DRY と DAMP
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べたWkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べた
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門
 
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現するゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
 

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

ネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったことネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったことgree_tech
 
Web サービス インフラの近未来
Web サービス インフラの近未来Web サービス インフラの近未来
Web サービス インフラの近未来Syuichi Murashima
 
201910 azure seminar
201910 azure seminar201910 azure seminar
201910 azure seminarSAKURUG co.
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例terurou
 
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #Eプロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #EShuji Watanabe
 
Wb埼玉09 ハンズオン CPIサーバー使ってみよう
Wb埼玉09 ハンズオン CPIサーバー使ってみようWb埼玉09 ハンズオン CPIサーバー使ってみよう
Wb埼玉09 ハンズオン CPIサーバー使ってみよう忠之 日下部
 
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化Yuki Kanazawa
 
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜gree_tech
 
クラウド概要 by Engine Yard
クラウド概要 by Engine Yardクラウド概要 by Engine Yard
クラウド概要 by Engine YardYu Kitazume
 
とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例agileware_jp
 
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係Hiraku Komuro
 
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)Developers Summit
 
[AWSマイスターシリーズ] Amazon Redshift
[AWSマイスターシリーズ] Amazon Redshift[AWSマイスターシリーズ] Amazon Redshift
[AWSマイスターシリーズ] Amazon RedshiftAmazon Web Services Japan
 
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティングAmazon Web Services Japan
 
DeNAのサーバー"コード"レスアーキテクチャ
DeNAのサーバー"コード"レスアーキテクチャDeNAのサーバー"コード"レスアーキテクチャ
DeNAのサーバー"コード"レスアーキテクチャHaruto Otake
 
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減gree_tech
 
Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話Shota Umeda
 

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

ネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったことネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったこと
 
Web サービス インフラの近未来
Web サービス インフラの近未来Web サービス インフラの近未来
Web サービス インフラの近未来
 
activerecord-turntable
activerecord-turntableactiverecord-turntable
activerecord-turntable
 
201910 azure seminar
201910 azure seminar201910 azure seminar
201910 azure seminar
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
 
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #Eプロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
 
Wb埼玉09 ハンズオン CPIサーバー使ってみよう
Wb埼玉09 ハンズオン CPIサーバー使ってみようWb埼玉09 ハンズオン CPIサーバー使ってみよう
Wb埼玉09 ハンズオン CPIサーバー使ってみよう
 
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
 
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
 
クラウド概要 by Engine Yard
クラウド概要 by Engine Yardクラウド概要 by Engine Yard
クラウド概要 by Engine Yard
 
とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例
 
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係
 
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
 
[AWSマイスターシリーズ] Amazon Redshift
[AWSマイスターシリーズ] Amazon Redshift[AWSマイスターシリーズ] Amazon Redshift
[AWSマイスターシリーズ] Amazon Redshift
 
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング
 
DeNAのサーバー"コード"レスアーキテクチャ
DeNAのサーバー"コード"レスアーキテクチャDeNAのサーバー"コード"レスアーキテクチャ
DeNAのサーバー"コード"レスアーキテクチャ
 
Redmine Ansible
Redmine AnsibleRedmine Ansible
Redmine Ansible
 
Paa s and oss
Paa s and ossPaa s and oss
Paa s and oss
 
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
 
Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話
 

More from gree_tech

アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜gree_tech
 
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介gree_tech
 
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表gree_tech
 
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~gree_tech
 
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化gree_tech
 
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介gree_tech
 
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介gree_tech
 
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現についてSINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現についてgree_tech
 
海外展開と負荷試験
海外展開と負荷試験海外展開と負荷試験
海外展開と負荷試験gree_tech
 
翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組みgree_tech
 
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違いgree_tech
 
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介gree_tech
 
データエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件についてデータエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件についてgree_tech
 
シェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジーシェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジーgree_tech
 
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-gree_tech
 
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話gree_tech
 
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)gree_tech
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行gree_tech
 
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜gree_tech
 
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)gree_tech
 

More from gree_tech (20)

アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
 
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
 
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
 
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
 
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
 
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
 
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
 
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現についてSINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
 
海外展開と負荷試験
海外展開と負荷試験海外展開と負荷試験
海外展開と負荷試験
 
翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み
 
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
 
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
 
データエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件についてデータエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件について
 
シェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジーシェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジー
 
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
 
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
 
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
 
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
 
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
 

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

  • 1. Copyright © GREE, Inc. All Rights Reserved. サービスの効果を高める グリー内製ツールの技術と紹介 だいぶインフラストラクチャ寄りです グリー株式会社堀口真司 2014/11/22
  • 2. Copyright © GREE, Inc. All Rights Reserved. インフラ女子 グリー株式会社会社紹介 六本木に 構えてます 知名度低め 偉い人がよくわからない ことをやっている グリーCTO GREE 10th
  • 3. Copyright © GREE, Inc. All Rights Reserved. 自己紹介 • 31歳ゲーム好き。仕組みを調べたり作ったりする方が好き。 • 生まれも育ちも東京です。北区→渋谷区→練馬区→大田区→港区 • インフラエンジニアには珍しいゲーム業界系(?) 家庭用ゲーム GC/PS2 家業 MMO-RPG 独自プロトコル系 PC/PS2~PSP アーケードゲーム ハードウェア系 PS3/Linux ソシャゲ インフラ系 ? 18歳 10歳 C/C++ チート・セキュリティ t
  • 4. Copyright © GREE, Inc. All Rights Reserved. もくじ • 用語や構成 • 問題解決しようとしたこと • ツール一覧 • 今後の展開 • まとめ
  • 5. Copyright © GREE, Inc. All Rights Reserved. 用語や構成 ブラウザなど プロキシ・ロードバランサ アプリケーションサーバ データベース サーバ・ハードウェア ラック・データセンター CDN DNS 冗長性 柔軟性 高更新頻度 拡張性 手軽さ
  • 6. Copyright © GREE, Inc. All Rights Reserved. 用語や構成 プロキシ・ロードバランサCDN アプリケーションサーバ データベース サーバ・ハードウェア ラック・データセンター DNS ブラウザなど • フィーチャーフォン • Android / iOS • Unity3D • Adobe AIR • flashlite • HTML5 • ほとんどモバイル端末
  • 7. Copyright © GREE, Inc. All Rights Reserved. ブラウザなど 用語や構成 アプリケーションサーバ データベース サーバ・ハードウェア ラック・データセンター CDN DNS プロキシ・ロードバランサ • LVS (DSR) • LVS (NAT) • Apache • nginx • ハコモノ
  • 8. LVS はglobal ip を持ち インターネットからの 2 3 LVS またはproxy のレイヤーが無いパ Copyright © GREE, Inc. All Rights Reserved. よくあるLVS(DSR) – Proxy - httpd LVS LVS proxy proxy proxy httpd httpd httpd ….. httpd 入り口になる。 2台一組で片方は待機系 1 Reverse proxy へは WRR によって割り振られる。 DSR なのでレスポンスは LVS を通らず直接返す httpd へはWR で割り振られる。 サーバスペックによって重みがある。 このレイヤでだいたい100台ぐらい ターンもある VIP
  • 9. Apache 内で動くものが大半。 ほとんどがPHP たまにRuby。 一部node.js によるフルスタック Copyright © GREE, Inc. All Rights Reserved. ブラウザなど 用語や構成 プロキシ・ロードバランサ データベース サーバ・ハードウェア ラック・データセンター CDN アプリケーションサーバDNS
  • 10. 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 スマホ時代まで
  • 11. Copyright © GREE, Inc. All Rights Reserved. ブラウザなど 用語や構成 プロキシ・ロードバランサ アプリケーションサーバ サーバ・ハードウェア ラック・データセンター CDN DNS データベース • MySQL • flare • MongoDB • ZooKeeper
  • 12. Copyright © GREE, Inc. All Rights Reserved. ふつうのMySQL app • Master • Slave しかし、尋常でない レベルの可用性。 ほとんどの運用も 無停止で行う
  • 13. Copyright © GREE, Inc. All Rights Reserved. ブラウザなど 用語や構成 プロキシ・ロードバランサ アプリケーションサーバ データベース ラック・データセンター CDN DNS サーバ・ハードウェア • Debian • ubuntu • solaris • Fusion IO • ZFS
  • 14. NIC4 ? Copyright © GREE, Inc. All Rights Reserved. 基本セット 従系スイッチ NIC2 standby サーバ NIC3 ipmi 主系スイッチ bonding NIC1 active RAID1 No-battery コスパ重視 バッテリ管理コストの 都合でキャッシュの バッテリ無し。 用途によって 容量が違う SCSI-HDD SCSI-HDD 操作系スイッチ 電源 系統 A 系統 B 系統 C インターネットもローカルもこれ一本 電源は一基のみ。 系統がダウンすると 1/3 のサーバが SCSI-HDD SCSI-HDD ダウンしてしまう 1 2 3
  • 15. Copyright © GREE, Inc. All Rights Reserved. ブラウザなど 用語や構成 プロキシ・ロードバランサ アプリケーションサーバ データベース サーバ・ハードウェア CDN DNS ラック・データセンター メインは東京 ラック間転送量や 電源容量、重量など を考慮し配置する
  • 16. Copyright © GREE, Inc. All Rights Reserved. ブラウザなど 用語や構成 プロキシ・ロードバランサ アプリケーションサーバ データベース サーバ・ハードウェア ラック・データセンター CDN DNS 画像やアプリパッケージ配信。 CDN 用サブドメインにて アクセスするとCDN 経由になる。 多様な使い方。
  • 17. Copyright © GREE, Inc. All Rights Reserved. ブラウザなど 用語や構成 プロキシ・ロードバランサ アプリケーションサーバ データベース サーバ・ハードウェア ラック・データセンター CDN DNS カオス
  • 18. 問題解決しようとしたこと Copyright © 2004-2014 GREE,Inc. Confidential All Rights Reserved.
  • 19. Copyright © GREE, Inc. All Rights Reserved. 当時の状況 フィーチャーホン スマートフォンアプリデベロッパー 課金など プラットフォームやSNS ゲーム ダウンさせられない 齟齬があってもダメ 若干妥協できる 速度・効率重視 端末も多く、 利用される技術はとても多い
  • 20. 早い、安い、うまい 似てるようなゲームが多い しかし特殊な表現も一部あり フィーチャーホン スマートフォンアプリデベロッパー 課金など• 負荷に応じてサーバをた Copyright © GREE, Inc. All Rights Reserved. 当時の状況 プラットフォームやSNS ゲーム くさん追加 • 月末月初は慎重に • ダウンしたらすぐに電話 • 気合と根性で運用
  • 21. ツール一覧 Copyright © 2004-2014 GREE,Inc. Confidential All Rights Reserved.
  • 22. Copyright © GREE, Inc. All Rights Reserved. ツールもくじ • オリジナルやOSS の組み合わせ
  • 23. 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
  • 24. パラメータの書き換えは頻繁 かつコードを書かない人も 編集できるぐらい単純 Copyright © GREE, Inc. All Rights Reserved. Cascade • サービスを止めずにデータソースを切り替えられる • データへのアクセス方法が統一されている アプリケーション Cascade KVS RDBMS parameter ORM でなく比較的ベタなSQL . クエリの可視化をしやすくすることで 問題解決やチューニングもしやすく。
  • 25. 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
  • 26. Copyright © GREE, Inc. All Rights Reserved. Awacs agent agent agent 重要なものをまとめる 各種サーバにインストール されているagent から大量 のレポートが送られてくる 1 queue filter filter topic summarizer mail queue 2 メールや電話を行う 3
  • 27. 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
  • 28. Copyright © GREE, Inc. All Rights Reserved. 昔のサーバ管理方法は • PHP の配列に直接書いておく • サーバのIP アドレス • サーバの用途
  • 29. Copyright © GREE, Inc. All Rights Reserved. Server • 他のサービスと同じように、全部いりのうちのひとつ • 自身のサーバも当システムに登録、利用 api.server グリーのプラットフォームや ゲーム等のデータも入っている。 データベースの運用品質も お客様向けサービスと全く同じ
  • 30. Copyright © GREE, Inc. All Rights Reserved. Server • データセンター、ラック、配置場所などの納品情報 • いつ、どのように機材の役割が変わったかなどの履歴 • 生まれたて→ データベースサーバとして→ ウェブとして→ 破棄 • ホスト名、タグ、用途、アドレスなど僅かな状態 web api
  • 31. Copyright © GREE, Inc. All Rights Reserved. 状態確認ツールなど • 状態確認やMySQL の稼働状況、トポロジの確認、Proxy の設定変更 などCLI による一つのコマンドで出来るようになっている • 実装言語が多種。sh > php > pl > rb . わずかにpython,node.js • 野良ツールもあわせると100個をおそらく超える
  • 32. 更新中のサーバに アクセスできないよう Proxy でコントロール Copyright © GREE, Inc. All Rights Reserved. 例えば、デプロイツール api.server deploy1 deploy2 deploy… デプロイ対象の アドレスや状態を 問合せ platform game sns 数十並列x数千台に ソースコードや画像等を rsync していく proxy 1 2 3
  • 33. 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
  • 34. ノードの 監視と制御 Copyright © GREE, Inc. All Rights Reserved. 制御システム サーバ管理システムノード cloud flare Message Queue Message Queue 制御 サーバ 制御 サーバ 制御 サーバ ノード 状態管理サーバ Operator ノード ノード ノード ノード ノード 個々のノードの 構成管理を行う 大部分が Haskell にて できている
  • 35. 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
  • 36. Copyright © GREE, Inc. All Rights Reserved. Skail CW mail Skype skail IRC1 IRC2 MacBook で動いている BOT deploy1 deploy2 deploy… worker BOT にコマンド を送ることができる JIRA jenkins イベントの通知
  • 37. 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
  • 38. Haskell 軽量、高速、安定 Copyright © GREE, Inc. All Rights Reserved. SH Bot Realtime server Api (www) 独自プロトコルのサーバを シナリオに応じて ブラックボックステストを行う
  • 39. 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
  • 40. Copyright © GREE, Inc. All Rights Reserved. LWF .swf json Unity3D HTML5 Cocos2d 入稿データは swf を利用できる 他 プレイヤーがサポート しているプラットフォーム。
  • 41. 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
  • 42. RUM のダウンロードと 通知はCDN で行う Copyright © GREE, Inc. All Rights Reserved. RUM CDN varnish 普通のwww Python のdaemon fluentd HDFS 1 フィルタによって通常の アクセスかRUM クエリ かを振り分ける 2 整形して分析 ツールに保存 3
  • 43. 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
  • 44. サーバ管理システムの データベースを参照している Copyright © GREE, Inc. All Rights Reserved. PrimDNS 作業用PrimDNS app app PrimDNS 一般的な primary,secondary による冗長化 ゾーン毎に 任意のコマンドで 解決できる
  • 45. Copyright © GREE, Inc. All Rights Reserved. DNS 戦国時代 • Bind • gree.jp を管理。CDN でキャッシュされている • Unbound • 外部ドメインの中間キャッシュ • tinydns • 殆どのサーバに入っているローカルキャッシュ • 設定が柔軟で使いやすい • PowerDNS • 主にMySQL アクセスコントロール用 • LVS(NAT) で負荷分散しPowerDNS の機能でアドレスをWRR できる • dnsmasq • tinydns と同じ用途で利用 • ubuntu では主にこちら • PrimDNS • 内部サーバのホスト名解決用
  • 46. 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
  • 47. Copyright © GREE, Inc. All Rights Reserved. 手動時代 チャットや空気を 読んで作業する。 かなり多い デプロイの依存関係マトリクス。 他の人がデプロイ中に 依存しているコードをデプロイ してはいけない
  • 48. 2 3 Copyright © GREE, Inc. All Rights Reserved. Release M@aster nginx unicorn rails api.server deploy1 deploy2 deploy… MySQL Redis worker worker がジョブを読んで デプロイを実行。 完了したらジョブの状態を 更新して次へ。 開発者がブラウザを ポチポチしてジョブを設定 1 ジョブの状態はMySQL へ。 実行時にRedis にキュー
  • 49. 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
  • 50. 問題のあったサーバの エントリ書き換え Power DNS Copyright © GREE, Inc. All Rights Reserved. GTP 大規模向け GTP GTP MySQL の状態を クローリング。 100台/sec 1 2 Master のDB が ダウンした場合は Slave の昇格 www www www www 3 どのDB サーバにアクセス するかは名前解決の結果に よって制御される GTP
  • 51. nsswitch.conf を拡張した Agent のエントリを書き換え Copyright © GREE, Inc. All Rights Reserved. GTP 小規模向け GTP www www www www 3 名前解決使うのは同じ
  • 52. 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
  • 53. サービス毎に仕切りが あり他のネットワーク www 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 stg QA batch にアクセス できない SDB
  • 54. Copyright © GREE, Inc. All Rights Reserved. gateway SDB SDB Web, API Worker template gateway にシェルスクリプトの template を送り Worker に実行させる node node node 普通のMVC アプリ
  • 55. 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
  • 56. Copyright © GREE, Inc. All Rights Reserved. node node awacs Controller Auth Aegis Core API Web Render node Server 構成管理 tool Chef を Controller で実行 することで Core の負担軽減。 HTML レンダリング 情報もAPI から 取得してくる ノードからの ログはawacs に送る 社員LDAP 協力会社LDAP
  • 57. 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
  • 58. Ganglia MySQL関連だけで 100個ぐらい 追加しやすいので とりあえず表示が多い Copyright © 2004-2014 GREE,Inc. Confidential All Rights Reserved.
  • 59. rrd gmetad Copyright © GREE, Inc. All Rights Reserved. ganglia Ganglia 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 web rrd gmetad agent agent agent agent agent agent agent agent agent agent agent agent agent agent web 見かけ上、これ一基で すべてのサーバのメトリクス を監視、調査できる マルチキャストでなく、 ユニキャストで二回 別々のgmetad に送ってる /24 単位でクラスタ。 大量のクラスタ。
  • 60. 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
  • 61. Copyright © GREE, Inc. All Rights Reserved. app vip active standby Andes MySQL MySQL DRBD DRBD VIP でactive 選択 Pacemaker corosync で制御 専用NIC で直結。 データ同期に問題が出る 可能性はとても低い。 Standby 側のMySQL 起動に数秒の時間がかかる
  • 62. Copyright © GREE, Inc. All Rights Reserved. 他にも • 分析ツール • レポートツール • サポートツール • 野良アプリ公開広場 • などなどたくさんある…
  • 63. Copyright © GREE, Inc. All Rights Reserved. gpdata www www www www MySQL Web HDFS HDFS Zoo Keeper Azkaban MR Hive Presto Macaron Solaris / log HBase オリジナル Frontend とても たくさん ある 分析基盤は よくわからない
  • 64. Copyright © GREE, Inc. All Rights Reserved. region PowerDNS VIP LVS (NAT) LVS (NAT) Power DNS MySQL tinydns Power DNS MySQL 最寄のリージョンに 問い合わせる。 DB の内容は同じだが 名前解決の結果を リージョン毎に変えられる Power DNS MySQL region VIP LVS (NAT) LVS (NAT) Power DNS MySQL Power DNS MySQL Power DNS MySQL tinydns データセンター毎に ワンセットずつある
  • 65. PHP Ruby Shell Perl JavaScript Haskell C/C++ Python Java Copyright © GREE, Inc. All Rights Reserved. ツール系開発言語分析 32% 21% 18% 10% 7% 6% 利用言語 4% 2%0%
  • 66. Copyright © GREE, Inc. All Rights Reserved. 今後の展開
  • 67. Copyright © GREE, Inc. All Rights Reserved. ウェブからネイティブゲームへ • 昔のプラットフォーム • Mixi • Mobage • Gree • さらに昔は任天堂、SCE、SEGA • すこし前の開発環境 • Web で高度な表現をするためには • HTML5,LWF,WebGL,enchant.js 等.. • 今のゲームプラットフォーム • App Store • Google Play
  • 68. Copyright © GREE, Inc. All Rights Reserved. ツール開発の目標 • 大規模は見据えつつも • 大ヒットしない可能性 • 運用維持費の考慮 • オリジナルか、汎用かの比較 • クライアントアプリ技術は収束気味 • Unity3D またはCocos2d • ウェブ技術は停滞気味 • Web の利点が生かしにくく、HTML5/WebGL は進化せず • ダウンロード不要→ むしろStore に案内しにくい • セキュリティ→ アプリ毎に権限の可視化で軽減 • ウェブ臭がむしろ避けられる
  • 69. Copyright © GREE, Inc. All Rights Reserved. インフラの今後 • 必要なときに必要な分だけ • これは今も昔も変わらず • ネイティブ(クライアント)寄りになってきて、サーバの演算リソースが低下 • HTML レンダリング→ API コール • 他変わらず • クラウドの展開 • クラウドゲーミングが普及した場合、サーバの演算リソースが必要になるが… • P2P のサポートとか • ゲームロジックを書けるSaaS とか
  • 70. Copyright © GREE, Inc. All Rights Reserved. まとめ 大量のサーバ 大量のツール 如何にして展開していくか
  • 71. Copyright © GREE, Inc. All Rights Reserved. まとめ • 規模が大きくなったら • OSS ではまかないきれない • アレコレ考えるより作るほうがよい • 拡大はいつか必ず止まる • よく起こる(起こった)問題 • 短期的に作られたツールが広く長く利用されてしまい、メンテコストが上がる • 社内向けだからとセキュリティが甘いことがあり、対応が先送りになる • CLI 派とGUI 派があり、両対応コストがかさむ • ある既存ツールの置き換えツールができたとき、依存しているツールの対応コスト が増える • 進化の足かせにもなる • 短期的にはサーバ全体の需要は下がるであろう • HTML レンダリングは無くなり、API 利用にシフト
  • 72. ありがとうございました Copyright © 2004-2014 GREE,Inc. Confidential 2010 All Rights Reserved.

Editor's Notes

  1. 比較的ゆるい CSR も積極的、富士山の掃除ボランティアとかやってます CTO になると付き合いとかいろいろあるらしくよくわからないことをいろいろやっている
  2. CEDEC 2012 チート CEDEC 2013 運用 CEDEC 2014 運営 好きなゲーム
  3. お昼前なので巻いていきます
  4. Keepalived と ipvsadm が非同期 Weighted Random Global ip は DNS にて管理、一台でも壊れた場合、同じ構成のサーバを用意して、残りが壊れる前に切り替える
  5. ZFS FusionIO
  6. Could front akamai
  7. Domain Name System あとで
  8. ノードが flare という KVS
  9. かなり多くのことができる
  10. Bind 高機能で古い、一番普及しているので脆弱性も明らかになりやすい
  11. Python モジュール 一部 node.js