resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

73
Copyright Drecom Co., Ltd. All Rights Reserved. 2014/07/12 @sue445 関西ソーシャルゲーム勉強会・2014夏

Upload: go-sueyoshi-aka-sue445

Post on 31-May-2015

14.459 views

Category:

Documents


6 download

DESCRIPTION

関西ソーシャルゲーム勉強会・2014夏 - 関西ソーシャルゲーム勉強会 Doorkeeper ( http://ksgs.doorkeeper.jp/events/11635 ) で発表した資料です Blog: http://sue445.hatenablog.com/entry/2014/07/12/204741

TRANSCRIPT

Page 1: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

2014/07/12 @sue445関西ソーシャルゲーム勉強会・2014夏

Page 2: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

自己紹介

sue445● ドリコム サービス基盤部

○ 主に社内ツール、社内ライブラリ系○ ガルロワ、フルボッコ、ジョジョSS、トレクルなど、最近のネ

イティブアプリの課金決済系ライブラリ作ってます○ たまにインフラ

● Ruby歴2年のルビーチョットデキルエンジニア● 当時ドリコム入社1年半にして今回初めてガチャを作った(重

要)● 好きな言語はJava(重要)● 自称:TDDマニアなキュアエンジニア

Page 3: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

趣味で作ってるもの

● rubicure○ https://github.com/sue445/rubicure○ プリキュアのRuby実装

● Gitpeach○ https://github.com/sue445/gitpeach○ issueをカンバン風に管理○ Gitlab用のwaffle.ioクローン

● Chrome Gitlab Notifier○ https://github.com/sue445/chrome-gitlab-notifier○ Gitlabの通知をChromeで受け取る拡張

● and more !

Page 4: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

【CM】ワタシハ テスト チョットデキルTシャツ

エンジニアならチェックしておきたい技術系Tシャツまとめ - くりにっき

Page 5: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

【CM】フルボッコヒーローズ

http://official.fullbokko.drecom.jp/

Page 6: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

Page 7: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

今期の嫁: キュアハニー

Page 8: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

本妻: キュアピース

Page 9: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

【最近のお気に入り】枕嫁

Page 10: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

チラリズムよい

Page 11: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

【CM】プリキュアハッカソン2 開催!@弊社

http://connpass.com/event/7181/

Page 12: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

アジェンダ

● リセマラ is 何● 開発体制● 実績● アプリの構成● 工夫したこと● Twitter APIの闇● よくある質問● エピローグ

Page 13: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

リセマラ is 何

● 「リセットマラソン」の略● パズドラとかでゲーム開始直後にもらえるカードがランダムな

ので、強いユニットが貰えるまでインストールとアンインストールを繰り返すこと

● 中の人的にはインストールユーザと実際のユーザの剥離が出るのでつらい。。。

Page 14: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

ゲームリリース前に公式でリセマラできるようにしたw

当時のドメインも resemara.fullbokko.drecom.jp

Page 15: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

Attention!!

● ここに掲載してる技術情報は2014年3月時点のものなので若干古いです○ 事前登録期間が2013年12月~2014年2月のため

Page 16: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

解決策

実演

Page 17: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

Twitterで認証してつぶやけば何回でもガチャ回せる

Page 18: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

詳しいこと

● フライングゲットガチャ セミナー資料○ http://www.slideshare.net/drecom/drecom-20140225-

seminar-31882381● 【ドリコムセミナーレポート】『フライングゲットガチャ』はなぜ成

功したのか? マーケティング担当者がその秘訣を語る。 | Social Game Info ○ http://gamebiz.jp/?p=127470

Page 19: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

メンバー

● 開発 x 1○ sue445(サーバ周り全部)○ ガチャ演出周りで助っ人(2週間くらい)

● デザイン x 1○ 絵とコーディング回り

● 企画 x 1● 開発計1ヶ月弱くらい

○ 途中で仕様変更が何回もあったので実開発は2週間くらい

Page 20: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

実績

● Twitter/Facebook認証数○ 約10万人

● 事前登録数:48万人○ 業界最多?(たぶん)

● ガチャ総回転数○ 996万回○ 瞬間最大風速0:00~0:10でガチャ13500回転くらい

Page 21: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

本番環境の構成

● web x 2○ redisあいのり(redis 2.6.16)○ それぞれにredis入れてVIPでアクセス(後述)

● db x 2 (fioではなく普通のHDD)○ MySQL Percona server

● cache x 2○ 最初はwebにmemcache同居だったけどメモリ的に厳し

かったので途中で追加してもらった● いずれもCentOS 6● 負荷が読めないのでとりあえずミニマムスタートしてみたが

割となんとかなった

Page 22: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

よくあるKVS構成

web-xx web-xx job-xx job-xx

redis-01(Master)

redis-02(Slave)

VIP

Page 23: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

フラゲガチャのKVS構成(サーバ節約)

web-02

VIP

web-01

redis(M) redis(S)

自分自身にVIPをつけることで最低限の台数でHA構成を構築

Page 24: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

ステージング環境の構成

● Debian Wheezy● OpenStackの自分用Railsアプリ頻出ミドル全部入りスナップ

ショットからインスタンス立てて環境構築○ nginx, mysql, redis, memcached, git, tmux, 自分の

dotfilesなど● 詳しくは弊社外道父のブログ参照

○ OpenStackでつくる開発環境と外道塾 発表資料 | 外道父の匠

Page 25: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

アプリ周り

● Ruby 2.0.0-p353 + Rails 4.0.2○ リリース当時(2013/12/16)では最新○ 途中で2.1.0出たけど数ヶ月でお役御免だったのでス

ルー● capistrano 3

○ v2 -> v3で全部変わってたのでtaskを全部書き直した○ webサーバ2台なのにクラスタリスタート作ったw○ 開発期間短いながらも自分のアプリで人柱になって、有

志の手により社内gem化された

Page 26: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

機能

作った

● 事前登録● リセマラガチャ● シリアル生成● DM送信

作ってない

● レポート系(工数削減のため)○ GoogleAnalytics○ fluentd (事前登録とガチャ)

● メンテナンス画面○ 忘れてたw

Page 27: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

工夫したこと

● 事前登録● リセマラガチャ● TwitterのDM大量送信

Page 28: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

事前登録

Page 29: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

事前登録

仕様

● 認証不要● 「事前登録する」のPOSTの度に一意なシリアルコードを作る● シリアルコードがiOSかAndroidかアプリ側で識別したい

問題点

● 表示したシリアルを全部DBに突っ込んでたら死ぬ(容量的にも負荷的にも)

● 認証かかってないため、GoogleのクローラとかがPOSTすると事前登録数が水増しされてしまう

Page 30: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

表示したシリアルを全部DBに突っ込んでたら死ぬ問題

解:シリアルコードの暗号・復号化社内ライブラリ使った

● 別アプリで作ってたのを流用● 見た目は12文字の数字だけど、39ビット分の情報を持たせ、

報酬IDや連番も含ませたり整合性チェックもできるようにした● 連番をredis counterで持たせた

○ iOSとAndroid各1つずつ○ 本当なら発行したシリアルを全部DBにINSERTするとこ

ろだが、redis counterを2つだけ使うだけで万事解決

Page 31: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

クローラによる水増し問題

● bodyにformタグを全て含めないことで、スクレイピングしただけではボタンを押せないようにした

● Ajax使えばクローラはだいたいごまかせる(気がする)● 後発の他社の事前登録ガチャはこの対策してないように見

えた

Page 32: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

クローラによる水増し問題

HTML上はformタグのactionが空

onclickでsubmit直前に設定する

Page 33: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

リセマラガチャ

Page 34: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

リセマラガチャ

仕様が複雑

Page 35: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

リセマラガチャ

問題点

● 6時間ごとにworkerで全ユーザのガチャ回数リセットするとユーザ増えた時に処理に時間がかかって死ぬ

● ガチャ回す度にヒストリレコードINSERT&ガチャ総回転数UPDATEしたらDBが負荷で死ぬ

● Twitterの性質上バズると局所的にアクセスが来るため負荷が読めない

● そもそもの仕様が複雑 (;´Д`)

Page 36: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

解決策

全部redisでよくね?

Page 37: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

リセマラガチャ

Page 38: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

画面表示でSELECTすらしてないwww

redis counterredis counter

redis counter

redis counter (with expire)

Page 39: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

ガチャ回す時は3種類のカウンタを同時に増やす

全員の総回転数++

自分の回転数++

1ターム内のガチャ回数++

Page 40: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

MySQL使ってるのはたったこれだけ

● ユーザ認証○ 認証後にtwitterのaccess tokenをユーザマスタに入れる

● POSTする時にcurrent userでロック(SELECT ~ FOR UPDATE)○ パワーアタック系のチート対策○ 1ユーザで複数同時に処理を走らせない

● ユニット確定時に報酬レコードをINSERTする

Page 41: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

よくあるガチャのテーブル構成(適当)

users user_cards

gacha_cards

1 n n   1

cards

gachasgacha_histories

1 n

n

1

n 1

1

n

n 1

Page 42: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

リセマラガチャのテーブル構成

users user_rewards rewards

1   n n   1

● rewards = cards + gachas○ 今回はガチャ1つしかやらないので分ける必要もなかった○ rewardsをガチャの度に全件取得するコストが心配だった

が、ガチャで使う最低限のカラムしかないため余裕だった● ガチャ履歴もログに出してfluentdで送るようにしたのでガ

チャのhistoryテーブルも不要

Page 43: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

redis内訳

users (各ユーザに対してカウンタが設定)● ガチャ合計回転数● 1ターム内のガチャ回転数

○ 0, 6, 12, 18時にexpire● 1ターム内のリセット回数

○ 0, 6, 12, 18時にexpire

ユーザに紐付かない系

● シリアルコード内の連番(iOS, Androidそれぞれ)○ 事前登録する度にインクリメント○ 事前登録数はこれの合計

● 全ユーザ合計のガチャ回転数● ★5(一番レアリティの高いユニット)の放出数

Page 44: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

redisの値に有効期限をつける方法

EXPIRE key sec or EXPIREAT key unixtime● リセマラでは後者を利用● redis-objectsのドキュメントには一切書いてなかったがソー

ス見たら実装されてた○ ただしunixtimeなので Time#to_i して渡す

● ガチャ回す時にINCRとEXPIREATを同時に使う● 現在時間を元に次の6時, 12時 … を算出するのが一番大変

だったw○ 時間のテストはdelorean最強○ https://github.com/bebanjo/delorean

Page 45: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

expireつけた結果

ガチャリセットのかかる0時, 6時, 12時, 18時きっかりに山ができてるw

Page 46: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

cacti @db ピーク時でもCPU使用率0.14% www

Page 47: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

cacti @webLAもピーク時で1〜2くらい

Page 48: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

Twitter APIの闇

1. 凍結済ユーザの判別が困難な問題2. DM送信コストが結構高い件について3. アプリのパーミッションが大雑把な問題

Page 49: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

1. 凍結済ユーザの判別が困難な問題

他ユーザから凍結済ユーザを見ようとすると403(エラー(Forbidden)になるが、凍結済ユーザ自身は普通に見れる

Page 50: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

@sue445_sst5 が凍結済ユーザ

Page 51: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

何が問題か?

● 凍結済でもTwitterで認証してログインできる● ガチャ回せる● つぶやく時に初めてエラーになる

○ 調べたら凍結済ユーザでもGET系は全部大丈夫で、POST系が全部失敗。。。

● 事前登録終了後にDMでシリアルコードを送れない○ CSのコストup

Page 52: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

結局どうした?

諦めた(キリッ

● 公式アカウント(@fullbokkoheroes)経由でチェックするにしてもRateLimitがあるので限界がある

● 15分間で180回までなので焼け石に水

Page 53: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

2. DM送信コストが結構高い件について

● ユニットを確定してたら事前登録終了後にDMでシリアルを送る

● 年末にDMを送ったら1時間半で7000通しか送れなかった○ 秒速1.3通○ Twitter API叩くコストが意外に高い

● 発行したシリアルは50000枚○ ガチャ35000枚, お年玉15000枚○ このままだと全部DM送るのに65000秒(=18時間)かかる

ことにw○ ヤバイ

Page 54: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

【解決方法】並列送信

● redisは使ってたけどSidekiqやResque(Rubyの並列処理のライブラリ)は入れていなかったので昔ながらのThreadを使った○ 数回しか使わないスクリプトのためだけにセットアップす

るのが抵抗あった● 普通にやるとThreadが一度に全実行されるため同時実行す

るスレッド数を制限する必要ある○ サーバの負荷とAPI実行時の帯域がやばい

Page 55: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

【解決方法】並列送信

● ruby-threadのThread pool使った○ 20スレッドでDM45000通送るのに約40分○ 秒速18通

● jobサーバがないのでDM送信の度に本番のwebを1台切り離して即席jobサーバにしてた(つらい)○ ピーク時避ければweb1台でも耐えられた

● rubyのプロセスだけでCPU 50〜60%くらい使った● SidekiqやResqueでqueueの数制限するのが大正解

Page 56: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

3. アプリのパーミッションが大雑把な問題

Twitterアプリのパーミッションは大きく分けて3種類

● Read only○ GETは出来るがPOSTはダメ○ 例)Twilog

● Read and write○ GETとPOSTはOK○ DMは送信出来るが受信は出来ない○ 例)ボット

● Read, Write and Access direct messages○ ↑ + DM送受信OK○ 例)普通のTwitterクライアント

Page 57: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

適切なパーミッションって?

アプリの仕様上つぶやきとDM送信できればいいのでRead and writeが適切(重要)

Page 58: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

アプリに適切なパーミッションが大事

● 不要なパーミッションはつけない○ 何も考えずに適当に「Read, Write and Access direct

messages」にするのはセキュリティ的によろしくない○ twitterでアプリ連携する=自分の家の合鍵を他人に預ける

のと同じ

● パーミッションが広いと意識の高いユーザが不安に思う○ 懐中電灯アプリで電話帳やGPSにパーミッションがあるの

と同じような感じ

● 下手すると事案に発展する可能性がある

Page 59: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

ここで他社事例を見てみましょう

Page 60: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

セーフw

Page 61: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

アウトおおおおおおおおおおおお

Page 62: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

アウトおおおおおおおおおおお

Page 63: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

もし間違えて認証しちゃったら

● https://twitter.com/settings/applications で認証を取り消せばok

Page 64: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

【重要事項】

● アプリのパーミッションは一応変更出来る○ 変更するとユーザから取得したaccess tokenは全部無効

になる○ 認証を事前に取得しておいて後から使うような使い方だ

と、途中でパーミッションを変えると死ぬ● それ以外の情報(アプリ名やアイコンなど)は途中で変えても

問題なし

Page 65: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

よくある質問

● Q. 失敗談○ A. 1回だけ間違えて本番落としたw○ その時点ではまだデプロイしてはいけないものを間違え

て本番に上げた○ cap deploy:rollback は神○ 【教訓】何かあってから命綱を作るのは手遅れ。命綱は常

に整備しておくべき● Q. 最初からRedisメインにしようと思った?

○ 「一定時間で回数リセット」って仕様聞いた時にKVS使った方がいいような予感はしてた

○ 既存アプリだとDBがボトルネックで詰まるのをよく見てたので、極力DBを使わない構成にしたかった

Page 66: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

【結論】

Page 67: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

用途を絞ればKVS最強

Page 68: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

エピローグ

Page 69: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

フラゲガチャが正式に事業化された

https://flyinggacha.com/

Page 70: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

● 他部署が運用してるので僕はノータッチ● ベースは全く一緒だけどフルボッコでまずかった部分を改良

してくれてる(感謝)● 2~3ヶ月で切り捨てる想定で設計したシステムを引き継がせ

てしまって心が痛む('A`)○ 後からちゃんと改修してくれた

● Twitterを使った事前登録したい場合には是非弊社にお声がけを!○ https://www.drecom.co.jp/contact/form/

Page 71: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

あわせて読みたい

ドリコムを支えるインフラ

● drecomにおけるwinning the metrics battle ○ http://www.slideshare.

net/KenichiMitsuki/ss-35379098● ドリコムのInfrastructure as code

○ http://www.slideshare.net/y05_net/infrastructure-as-code-35373108

Page 72: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

会社概要

社名:

証券コード:

本社:

電話番号:

社員数:

設立年月日:

資本金:

事業内容:

株式会社ドリコム

3793 東証マザーズ

〒153-0064

東京都目黒区下目黒1丁目8-1 アルコタワー17F

TEL:03-6682-5700 FAX:03-6682-5711

239名 (正社員・契約社員のみ)

2001年11月13日

1,124百万円(2014年3月末現在)

ソーシャルゲーム事業

ソーシャルラーニング事業

アドソリューション事業

Copyright Drecom Co., Ltd. All Rights Reserved.

Page 73: Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

Copyright Drecom Co., Ltd. All Rights Reserved.

ご静聴ありがとうございました!