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

gree_tech
gree_techgree_tech
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.
1 of 72

Recommended

暗号技術の実装と数学 by
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
9.6K views35 slides
Node.jsアプリの開発をモダン化するために取り組んできたこと by
Node.jsアプリの開発をモダン化するために取り組んできたことNode.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたことbitbank, Inc. Tokyo, Japan
15.3K views60 slides
Webブラウザ上で動作する帳票エンジンを作る話 by
Webブラウザ上で動作する帳票エンジンを作る話Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話terurou
1.8K views25 slides
脱RESTful API設計の提案 by
脱RESTful API設計の提案脱RESTful API設計の提案
脱RESTful API設計の提案樽八 仲川
14K views53 slides
初心者向けWebinar AWSで開発環境を構築しよう by
初心者向けWebinar AWSで開発環境を構築しよう初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しようAmazon Web Services Japan
29.5K views69 slides
人生がときめくAPIテスト自動化 with Karate by
人生がときめくAPIテスト自動化 with Karate人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with KarateTakanori Suzuki
9.3K views35 slides

More Related Content

What's hot

目grep入門 +解説 by
目grep入門 +解説目grep入門 +解説
目grep入門 +解説murachue
89.4K views83 slides
Building the Game Server both API and Realtime via c# by
Building the Game Server both API and Realtime via c#Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#Yoshifumi Kawai
53.8K views67 slides
分散トレーシングAWS:X-Rayとの上手い付き合い方 by
分散トレーシングAWS:X-Rayとの上手い付き合い方分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方Recruit Lifestyle Co., Ltd.
3.3K views71 slides
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~ by
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~Ryota Watabe
14.9K views29 slides
PHPからgoへの移行で分かったこと by
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことgree_tech
6.4K views39 slides
Linux女子部 systemd徹底入門 by
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Etsuji Nakai
137.9K views50 slides

What's hot(20)

目grep入門 +解説 by murachue
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
murachue89.4K views
Building the Game Server both API and Realtime via c# by Yoshifumi Kawai
Building the Game Server both API and Realtime via c#Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
Yoshifumi Kawai53.8K views
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~ by Ryota Watabe
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
Ryota Watabe14.9K views
PHPからgoへの移行で分かったこと by gree_tech
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
gree_tech6.4K views
Linux女子部 systemd徹底入門 by Etsuji Nakai
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai137.9K views
DeNAの最新のマスタデータ管理システム Oyakata の全容 by sairoutine
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
sairoutine3.6K views
O/Rマッパーによるトラブルを未然に防ぐ by kwatch
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
kwatch48.4K views
新入社員のための大規模ゲーム開発入門 サーバサイド編 by infinite_loop
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop48.1K views
マルチテナントのアプリケーション実装〜実践編〜 by Yoshiki Nakagawa
マルチテナントのアプリケーション実装〜実践編〜マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜
Yoshiki Nakagawa4.2K views
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!) by Trainocate Japan, Ltd.
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
ドメイン駆動設計のための Spring の上手な使い方 by 増田 亨
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨138K views
分散システムについて語らせてくれ by Kumazaki Hiroki
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki119.4K views
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス by Amazon Web Services Japan
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
インフラエンジニアってなんでしたっけ(仮) by Akihiro Kuwano
インフラエンジニアってなんでしたっけ(仮)インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
Akihiro Kuwano102.6K views
Dockerからcontainerdへの移行 by Akihiro Suda
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda7.5K views

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

ネットワークエンジニアがWeb開発をやってみて思ったこと by
ネットワークエンジニアがWeb開発をやってみて思ったことネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったことgree_tech
1.4K views29 slides
Web サービス インフラの近未来 by
Web サービス インフラの近未来Web サービス インフラの近未来
Web サービス インフラの近未来Syuichi Murashima
304 views60 slides
activerecord-turntable by
activerecord-turntableactiverecord-turntable
activerecord-turntableDrecom Co., Ltd.
4.9K views42 slides
201910 azure seminar by
201910 azure seminar201910 azure seminar
201910 azure seminarSAKURUG co.
106 views66 slides
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例 by
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例terurou
2.6K views36 slides
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E by
プロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #Eプロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #EShuji Watanabe
2.8K views47 slides

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

ネットワークエンジニアがWeb開発をやってみて思ったこと by gree_tech
ネットワークエンジニアがWeb開発をやってみて思ったことネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったこと
gree_tech1.4K views
Web サービス インフラの近未来 by Syuichi Murashima
Web サービス インフラの近未来Web サービス インフラの近未来
Web サービス インフラの近未来
Syuichi Murashima304 views
201910 azure seminar by SAKURUG co.
201910 azure seminar201910 azure seminar
201910 azure seminar
SAKURUG co.106 views
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例 by terurou
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
terurou2.6K views
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E by Shuji Watanabe
プロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #Eプロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
Shuji Watanabe2.8K views
Wb埼玉09 ハンズオン CPIサーバー使ってみよう by 忠之 日下部
Wb埼玉09 ハンズオン CPIサーバー使ってみようWb埼玉09 ハンズオン CPIサーバー使ってみよう
Wb埼玉09 ハンズオン CPIサーバー使ってみよう
忠之 日下部1K views
【dots. IT勉強会】開発環境のDocker化 by Yuki Kanazawa
【dots. IT勉強会】開発環境のDocker化【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
Yuki Kanazawa8.1K views
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜 by gree_tech
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
gree_tech7.9K views
クラウド概要 by Engine Yard by Yu Kitazume
クラウド概要 by Engine Yardクラウド概要 by Engine Yard
クラウド概要 by Engine Yard
Yu Kitazume1.4K views
とあるメーカーのRedmine活用事例 by agileware_jp
とあるメーカーのRedmine活用事例とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例
agileware_jp2.8K views
LambdaとMobileの美味しいかもしれない関係 by Hiraku Komuro
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係
Hiraku Komuro1K views
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕) by Developers Summit
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
Developers Summit24.9K views
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング by Amazon 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で実現するエッジコンピューティング
DeNAのサーバー"コード"レスアーキテクチャ by Haruto Otake
DeNAのサーバー"コード"レスアーキテクチャDeNAのサーバー"コード"レスアーキテクチャ
DeNAのサーバー"コード"レスアーキテクチャ
Haruto Otake2.5K views
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減 by gree_tech
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
gree_tech742 views

More from gree_tech

アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜 by
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜gree_tech
725 views36 slides
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介 by
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介gree_tech
229 views13 slides
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表 by
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表gree_tech
1K views18 slides
アプリ起動時間高速化 ~推測するな、計測せよ~ by
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~gree_tech
1.9K views84 slides
長寿なゲーム事業におけるアプリビルドの効率化 by
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化gree_tech
347 views116 slides
Cloud Spanner をより便利にする運用支援ツールの紹介 by
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介gree_tech
684 views31 slides

More from gree_tech(20)

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

Recently uploaded

SSH応用編_20231129.pdf by
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdficebreaker4
335 views13 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf定例会スライド_キャチs 公開用.pdf
定例会スライド_キャチs 公開用.pdfKeio Robotics Association
111 views64 slides
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
60 views26 slides
The Things Stack説明資料 by The Things Industries by
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things IndustriesCRI Japan, Inc.
58 views29 slides
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
120 views42 slides

Recently uploaded(11)

SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4335 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.58 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka88 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda355 views
さくらのひやおろし2023 by 法林浩之
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023
法林浩之96 views

[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