Copyright
(C)
DeNA
Co.,Ltd.
All
Rights
Reserved.
FINAL
FANTASY
Record
Keeperを⽀支える
Webアプリケーションフレームワークの技術
株式会社ディー・エヌ・エー
Japanリージョン
ゲーム事業本部
技術・編成部
開発基盤グループ
越智
琢正
takumasa.ochi@dena.com
Copyright
(C)
DeNA
Co.,Ltd.
All
Rights
Reserved.
アジェンダ
! FFRKを⽀支えるWebアプリケーションフレームワーク(GunyaSiF)
! フレームワークの改良良
Before
FFRK
⁃ Gadget
Server,
Feature
Phoneからの脱却
⁃ Hot
Deployの実装
! フレームワークの改良良
After
FFRK
⁃ Sessionの効率率率化
3
4.
Copyright
(C)
DeNA
Co.,Ltd.
All
Rights
Reserved.
FFRKを⽀支える
Webアプリケーションフレームワーク
(GunyaSiF)
4
5.
Copyright
(C)
DeNA
Co.,Ltd.
All
Rights
Reserved.
FFRKを⽀支えるWebアプリケーションフレームワーク(GunyaSiF)
GunyaSiFとは?
! 2013年年頃に作られたPerl,
Amon2ベースのフレームワーク1
! ポスト
MobaSiF2
時代の内製フレームワークとして作られた
! 紆余曲折を経て、今はFINAL
FANTASY
Record
Keeper
を⽀支えている
5
1. DeNAが開発した新たなフレームワーク「GunyaSiF」とは?h;p://next.rikunabi.com/tech/docs/ct_s03600.jsp?p=002398
2. 【YAPC::Asia
2008】モバゲータウンのフレームワーク「MobaSiF」公開
h;p://codezine.jp/ar[cle/detail/2528
6.
Copyright
(C)
DeNA
Co.,Ltd.
All
Rights
Reserved.
FFRKを⽀支えるWebアプリケーションフレームワーク(GunyaSiF)
GunyaSiFが⽀支えているゲーム
! 実は、ブラウザアプリから、iPhone,
Androidアプリまで様々
6
Copyright
(C)
DeNA
Co.,Ltd.
All
Rights
Reserved.
フレームワークの改良良
Before
FFRK
Gadget
Server,
Feature
Phoneからの脱却
9
10.
Copyright
(C)
DeNA
Co.,Ltd.
All
Rights
Reserved.
フレームワークの改良良
Before
FFRK
GunyaSiFはやや特殊な環境下で⽣生まれた
! 2013年年、当時としては普通だった環境
⁃ Feature
Phone
/
Smart
Phone
の同時対応
⁃ Mobage
の
Gadget
Server
を通した環境
• 認証済みのユーザーが、特定のProxy
Serverを介してGame
Serverに
リクエストを送ってくるような環境
! しかし、時代は瞬く間に移り変わった
⁃ 市場をうめつくしていく
Smart
Phone
• 実のところ、GunyaSiFを利利⽤用したFPタイトルは⽇日の⽬目を⾒見見なかった
⁃ Game
Serverが前⾯面に⽴立立ち、よりオープンなシステムへ
• JS
SDKを利利⽤用した認証等、認証が必須ではない世界
⁃ ネイティブアプリの台頭
10
11.
Copyright
(C)
DeNA
Co.,Ltd.
All
Rights
Reserved.
フレームワークの改良良
Before
FFRK
時代に合わせてGunyaSiFも変化しなけ
ればならない
しかし、既存の全アプリの完全な動作を
担保しつつ、時代を追うのはメンテナン
スコスト
&
実装難易易度度が⾼高い
バージョンを切切る決断!
11
Copyright
(C)
DeNA
Co.,Ltd.
All
Rights
Reserved.
フレームワークの改良良
Before
FFRK
GunyaSiF
v0.2では、SPAである「おさんぽホ
ッコリーナ」や「レボリューションスタジ
アム」、GunyaSiF初のアプリタイトルであ
る「にゃんパズル」が無事にリリースされた。
が、FFRKをリリースするためには、もう⼀一つ⼤大
きな壁が存在した。
13
14.
Copyright
(C)
DeNA
Co.,Ltd.
All
Rights
Reserved.
フレームワークの改良良
Before
FFRK
Hot
Deployの実装
14
15.
Copyright
(C)
DeNA
Co.,Ltd.
All
Rights
Reserved.
フレームワークの改良良
Before
FFRK
GunyaSiFにはAtomicな形のHot
Deployは無かった
! 特殊な構成環境が原因の1つ
⁃ 最低3レポジトリ以上から構成
(submoduleとかではない…)
⁃ 複数アプリを同居させる環境あり
⁃ Deploy元にも先も、特殊な環境が必要
その結果……
Hot
Deployは先⼈人により挑戦されるものの、諦められていた…
! Hot
Deployが無い世界では、職⼈人芸
が繰り広げられていた…
⁃ ファイルの依存関係、再起動タイミングまで計算に⼊入れる
⁃ ファイルの反映順序に気を使った
2度度蒔き、3度度蒔き
15
16.
Copyright
(C)
DeNA
Co.,Ltd.
All
Rights
Reserved.
フレームワークの改良良
Before
FFRK
しかし、キャッシュ不不整合のリスクが
⾮非常に⾼高く、運⽤用エンジニアもただただ⾟辛い
FFRKでは、Client
Cacheの特性上、不不整
合が致命的となることが分かった
ということで、作りました
16
17.
Copyright
(C)
DeNA
Co.,Ltd.
All
Rights
Reserved.
フレームワークの改良良
Before
FFRK
Capistrano::GunyaSiF
! 背景
⁃ 複雑なdeployにも対応でき、社内外で実績もある
Capistranoを採⽤用
! 概要
⁃ 開発者は、Capistrano
3
の流流儀に従ったDSLを書くだけ
⁃ 複数レポジトリを独⽴立立にcloneして、role毎に良良い感じに構築
⁃ rsyncをベースとして、ネットワーク負荷を削減
! エンジニアの⼼心理理的負荷削減や、Perl特有の問題の為に
⁃ コミットハッシュ、ファイル差分レベルでのDry-‐‑‒run機能
⁃ Server::Starter
以下のプロセスの世代交代検知タスク
⁃ Xslateのプリコンパイルタスク(現在検討中)
⁃ 等など……
! 結果
⁃ Hot
Deployが可能になり、運⽤用⼯工数とリスクを⼤大幅削減
⁃ QA/開発環境も同⼀一⼿手法で構築可能になり、開発⼯工数も⼤大幅削減
17
18.
Copyright
(C)
DeNA
Co.,Ltd.
All
Rights
Reserved.
フレームワークの改良良
Before
FFRK
そして、無事にFFRKのリリース⽇日を迎
えたのであった
$
cap
production
deploy
(ッターン
18