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

Addressables で大量のリソース管理・困りどころと解消法
Addressables で大量のリソース管理・困りどころと解消法Addressables で大量のリソース管理・困りどころと解消法
Addressables で大量のリソース管理・困りどころと解消法Kenta Nagai
 
BigQuery で 150万円 使ったときの話
BigQuery で 150万円 使ったときの話BigQuery で 150万円 使ったときの話
BigQuery で 150万円 使ったときの話itkr
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計Yoshinori Matsunobu
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxShota Shinogi
 
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例UnityTechnologiesJapan002
 
backlogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見るbacklogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見るTakeru Maehara
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術dena_study
 
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYOFINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYOGame Tools & Middleware Forum
 
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話torisoup
 
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しようUnity Technologies Japan K.K.
 
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例UnityTechnologiesJapan002
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれKumazaki Hiroki
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
 
Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編Unity Technologies Japan K.K.
 
elixirを使ったゲームサーバ
elixirを使ったゲームサーバelixirを使ったゲームサーバ
elixirを使ったゲームサーバHidetaka Kojo
 
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_ltDoozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lttorisoup
 
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介torisoup
 
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミングUnity Technologies Japan K.K.
 
UniTask入門
UniTask入門UniTask入門
UniTask入門torisoup
 

What's hot (20)

Addressables で大量のリソース管理・困りどころと解消法
Addressables で大量のリソース管理・困りどころと解消法Addressables で大量のリソース管理・困りどころと解消法
Addressables で大量のリソース管理・困りどころと解消法
 
BigQuery で 150万円 使ったときの話
BigQuery で 150万円 使ったときの話BigQuery で 150万円 使ったときの話
BigQuery で 150万円 使ったときの話
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
 
backlogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見るbacklogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見る
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
 
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYOFINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
 
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
 
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
 
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編
 
elixirを使ったゲームサーバ
elixirを使ったゲームサーバelixirを使ったゲームサーバ
elixirを使ったゲームサーバ
 
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_ltDoozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
 
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
 
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
 
Riderはいいぞ!
Riderはいいぞ!Riderはいいぞ!
Riderはいいぞ!
 
UniTask入門
UniTask入門UniTask入門
UniTask入門
 

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で挑戦を続ける新入りエンジニア〜
 
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
 

Recently uploaded

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (10)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

[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