SlideShare una empresa de Scribd logo
1 de 68
Descargar para leer sin conexión
サイバーエージェントの
ゲーム事業のインフラからみた
ゲーム開発スタイルの変遷
2016/3/1
株式会社サイバーエージェント
⽩白井  英
お前、誰よ
• 株式会社 サイバーエージェント
• SGE統括室CTO
• 白井 英
• エンジニア
• Twitter
@goodoo
• Blog
http://ameblo.jp/goodoo
• DQ10
すぐちむ (FB392-435) プクリポ(旅芸人)
少し説明
CyberAgentの
子会社群による
ゲーム事業
ゲーム事業開発の歴史
2010年
ソーシャルアプリ黎明期
2010年の
PHP
カンファレンス
その頃のウチ・・
星空バータウン
ドリームプロデューサー
コーデマニア
当時はまだ
ガラケーが主戦場
とはいえその
流行(負荷)具合は
やばかった
当時の数字
• ユーザ数約200万人
• 6000req/sec
• 約10億PV/Month
• 75万(MonthlyActiveUser)
• ピーク時のトラフィック200Mbps
「星空バータウン」
開発環境に
目を向ける
当時(2010年)の開発の仕方
• サーバはオンプレ
• CakePHP
• puppetでサーバ構築
• デプロイはCapistrano
• DBのMigrationはRake
※すべてのプロジェクトで実施できてたわけではないです
「星空バータウン」のサーバ構成 2010/7
!
Web 30 &
Flash 3 &
Cache 1 &
DB &
「星空バータウン」のサーバ構成 2011/5
!
FW 2 $
LB 2 $
PROXY 5 $
Web 25 $
Flash 3 $
Cache 5 $
DB 9 $
当時は1チームの
人数がすくなかった
(エンジニアは2・3人)
開発サーバ(Web)は
エンジニア1人1台
用意していた
ソースコードの管理は
Subverion!
当時の小話・・
急激な会員の伸び
「明日中に
Webサーバ20台
追加お願いします」
Puppetを流し込
んでひたすら
セットアップ!
なんとか間に合う
(Puppetありがとう!)
2012-13年
ブラウザソーシャル
アプリ後期
ブラウザのアプリと
ネイティブのアプリ
を作り始めた
開発環境に
目を向ける
当時(2012-13年)の開発の仕方
• サーバはオンプレからクラウド
• CodeIgniter
• デプロイはshell(rsync)
• Subversion管理
• Redmineでチケット駆動へ
1チームのあたりの
人数が増えた
開発サーバの割当
機能毎
開発者毎
様々
開発ラインが並行で
いくつも走るように
なった結果
2013-14年
転換期
開発環境としての
開発のし易さを
見直す
このスライドの内容を実践
http://www.ryuzee.com/contents/blog/6102
・ユニットテストを書く
・結合テストを自動化
・継続的インテグレーションサーバを
 つかう
・デプロイを自動化
・環境構築を自動化
このスライドの内容を取り入れる
http://sotarok.hatenablog.com/entry/20120919/presented_git_and_pull_request_work_flow_at_phpcon2012
開発フローの
見直し
・1チケット1ブランチ
・ブランチ名は、チケット番号
・ローカルのVirtualBoxで開発
・ローカルのテストが通ったら
 featureへPUSH
node
port:1234
/var/www/feature/1234
チケット番号とURLを結びつけ
node
port:1235
/var/www/feature/1235
node
port:1236
/var/www/feature/1236
node
port:1237
/var/www/feature/1237
nginx
1234.example.com
1235.example.com
1236.example.com
1237.example.com
server {
listen 80;
server_name ~^(?<port>d+).example.com;
location / {
set $url example.com;
proxy_pass http://$url:${port};
}
}
機能単位で環境を
分ける方針で
開発サーバを運用
当時(2013-14年)の開発の仕方
• サーバはクラウド
• CodeIgniter(PHP)
• express(Node.js)
• デプロイはCapistrano
• DBのMigrationはRake
• Git管理
• Redmineでチケット駆動
• PullRequestによるソースレビュー
継続的デリバリー
現在
ネイティブアプリが
主戦場
様々な技術を使用
【サーバ】
• クラウド
• AWS
• CAのプライベートクラウド
• GAE(Java)
• AWS
• オペレーション効率化
• CAのプライベートクラウド
• コストメリット
• GAE
• Googleと仲良くなれた
それぞれのメリット
• Googleと仲良くなれた
【その他】
• Git
• Git-flowが主流
• 一部GitHub-flowを使用
• チケット管理
• Redmineが主流
【その他】
• 構成管理
• Chef
• Ansible
サーバがクラウド
になった影響は?
クラウドになったからと
いって開発サーバを
どんどん増やすわけでは
なかった
サーバを管理するのは
人
クラウドになったからと
いって開発サーバを
どんどん増やすわけでは
なかった
継続的デリバリー
番外編
今後のはなし
Blue Green Deploy
http://ameblo.jp/principia-ca/entry-12071871177.html
Docker
http://ameblo.jp/principia-ca/entry-12103919307.html
グループ内では
Dockerの本番運用
事例がでてきている
ゲーム事業部内では・・
http://blog.applibot.co.jp/2016/02/10/総会aiバトルを支える技術
社内での利用事例が
ゲームの運用と
クラウドの利点を
マッチさせるために
工夫が必要
自分たちのプロセスは
自分たちで進化させる!
ご清聴ありがとうございました

Más contenido relacionado

La actualidad más candente

How are AsakusaSatellite growing with mzp
How are AsakusaSatellite growing with mzpHow are AsakusaSatellite growing with mzp
How are AsakusaSatellite growing with mzp
Ryo Suetsugu
 

La actualidad más candente (20)

Photogrammetry on Cloud
Photogrammetry on Cloud Photogrammetry on Cloud
Photogrammetry on Cloud
 
この中に1人、素人がいる!
この中に1人、素人がいる!この中に1人、素人がいる!
この中に1人、素人がいる!
 
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
 
Oculus rift入門
Oculus rift入門Oculus rift入門
Oculus rift入門
 
phpck
phpckphpck
phpck
 
スマホでVRコンテンツを作る方法
スマホでVRコンテンツを作る方法スマホでVRコンテンツを作る方法
スマホでVRコンテンツを作る方法
 
AimingでGoogle Cloud Platformの利用について
AimingでGoogle Cloud Platformの利用についてAimingでGoogle Cloud Platformの利用について
AimingでGoogle Cloud Platformの利用について
 
How are AsakusaSatellite growing with mzp
How are AsakusaSatellite growing with mzpHow are AsakusaSatellite growing with mzp
How are AsakusaSatellite growing with mzp
 
もしSIerのエンジニアがSRE本を読んだら
もしSIerのエンジニアがSRE本を読んだらもしSIerのエンジニアがSRE本を読んだら
もしSIerのエンジニアがSRE本を読んだら
 
すごろくゲームでPlayFabの活用を検討
すごろくゲームでPlayFabの活用を検討すごろくゲームでPlayFabの活用を検討
すごろくゲームでPlayFabの活用を検討
 
"クラウド × IoT 勉強会" Bluemix とスマホでゲームを作ろう!ハンズオン
"クラウド × IoT 勉強会" Bluemix とスマホでゲームを作ろう!ハンズオン"クラウド × IoT 勉強会" Bluemix とスマホでゲームを作ろう!ハンズオン
"クラウド × IoT 勉強会" Bluemix とスマホでゲームを作ろう!ハンズオン
 
ハンズオン:Bluemix とスマホでゲームを作ろう!
ハンズオン:Bluemix とスマホでゲームを作ろう! ハンズオン:Bluemix とスマホでゲームを作ろう!
ハンズオン:Bluemix とスマホでゲームを作ろう!
 
社内でのjira運用
社内でのjira運用社内でのjira運用
社内でのjira運用
 
ここにハマった!Dockerコンテナホスティング「Arukas」の裏側
ここにハマった!Dockerコンテナホスティング「Arukas」の裏側ここにハマった!Dockerコンテナホスティング「Arukas」の裏側
ここにハマった!Dockerコンテナホスティング「Arukas」の裏側
 
Rancher on Bluemix Infrastructure
Rancher on Bluemix InfrastructureRancher on Bluemix Infrastructure
Rancher on Bluemix Infrastructure
 
今からでも遅くない! 2から始めるangular js
今からでも遅くない! 2から始めるangular js今からでも遅くない! 2から始めるangular js
今からでも遅くない! 2から始めるangular js
 
ソーシャルゲーム運用チームにJIRAを導入してみた話
ソーシャルゲーム運用チームにJIRAを導入してみた話ソーシャルゲーム運用チームにJIRAを導入してみた話
ソーシャルゲーム運用チームにJIRAを導入してみた話
 
Azure PipelinesをサーバサイドのCI/CDに活用
Azure PipelinesをサーバサイドのCI/CDに活用Azure PipelinesをサーバサイドのCI/CDに活用
Azure PipelinesをサーバサイドのCI/CDに活用
 
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
 
AzureDevOpsで始めるAndroidのCI/CD
AzureDevOpsで始めるAndroidのCI/CDAzureDevOpsで始めるAndroidのCI/CD
AzureDevOpsで始めるAndroidのCI/CD
 

Similar a サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷

ゆとりエンジニア交流会_20130706
ゆとりエンジニア交流会_20130706ゆとりエンジニア交流会_20130706
ゆとりエンジニア交流会_20130706
拓 小林
 
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
モノビット エンジン
 
変化の時代で勝つためのアジャイルゲーム開発 2012 03-24
変化の時代で勝つためのアジャイルゲーム開発 2012 03-24変化の時代で勝つためのアジャイルゲーム開発 2012 03-24
変化の時代で勝つためのアジャイルゲーム開発 2012 03-24
俊仁 小林
 

Similar a サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷 (20)

オンラインゲームのRails複数db戦略
オンラインゲームのRails複数db戦略オンラインゲームのRails複数db戦略
オンラインゲームのRails複数db戦略
 
ゆとりエンジニア交流会_20130706
ゆとりエンジニア交流会_20130706ゆとりエンジニア交流会_20130706
ゆとりエンジニア交流会_20130706
 
ソーシャルゲーム開発における運用とそのツール
ソーシャルゲーム開発における運用とそのツールソーシャルゲーム開発における運用とそのツール
ソーシャルゲーム開発における運用とそのツール
 
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
 
WebARで作るDukeが飛び出すカード
WebARで作るDukeが飛び出すカードWebARで作るDukeが飛び出すカード
WebARで作るDukeが飛び出すカード
 
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり
 
ブロックチェーンを活用した次世代芸能エージェント
ブロックチェーンを活用した次世代芸能エージェントブロックチェーンを活用した次世代芸能エージェント
ブロックチェーンを活用した次世代芸能エージェント
 
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
 
非ゲーム業界のデザイナーが CEDECに参加してきた
非ゲーム業界のデザイナーが CEDECに参加してきた非ゲーム業界のデザイナーが CEDECに参加してきた
非ゲーム業界のデザイナーが CEDECに参加してきた
 
nomad-cliの紹介
nomad-cliの紹介nomad-cliの紹介
nomad-cliの紹介
 
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
 
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
 
if-up 2019 | C3. コンシューマープロダクトにおけるクラウド実践
if-up 2019 | C3. コンシューマープロダクトにおけるクラウド実践if-up 2019 | C3. コンシューマープロダクトにおけるクラウド実践
if-up 2019 | C3. コンシューマープロダクトにおけるクラウド実践
 
デブサミ関西2013 「ソーシャルゲームのデータサイエンス」
デブサミ関西2013 「ソーシャルゲームのデータサイエンス」デブサミ関西2013 「ソーシャルゲームのデータサイエンス」
デブサミ関西2013 「ソーシャルゲームのデータサイエンス」
 
今日から始めるC3.js
今日から始めるC3.js今日から始めるC3.js
今日から始めるC3.js
 
アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現
アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現
アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現
 
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
 
ASP.net MVC で Stripe 課金を実装してみた話
ASP.net MVC で Stripe課金を実装してみた話ASP.net MVC で Stripe課金を実装してみた話
ASP.net MVC で Stripe 課金を実装してみた話
 
変化の時代で勝つためのアジャイルゲーム開発 2012 03-24
変化の時代で勝つためのアジャイルゲーム開発 2012 03-24変化の時代で勝つためのアジャイルゲーム開発 2012 03-24
変化の時代で勝つためのアジャイルゲーム開発 2012 03-24
 
Pokelabo android web
Pokelabo android webPokelabo android web
Pokelabo android web
 

サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷