SlideShare uma empresa Scribd logo
1 de 68
Baixar para ler offline
サイバーエージェントの
ゲーム事業のインフラからみた
ゲーム開発スタイルの変遷
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バトルを支える技術
社内での利用事例が
ゲームの運用と
クラウドの利点を
マッチさせるために
工夫が必要
自分たちのプロセスは
自分たちで進化させる!
ご清聴ありがとうございました

Mais conteúdo relacionado

Mais procurados

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

Mais procurados (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
 

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

オンラインゲームのRails複数db戦略
オンラインゲームのRails複数db戦略オンラインゲームのRails複数db戦略
オンラインゲームのRails複数db戦略Yasutomo Uemori
 
ゆとりエンジニア交流会_20130706
ゆとりエンジニア交流会_20130706ゆとりエンジニア交流会_20130706
ゆとりエンジニア交流会_20130706拓 小林
 
ソーシャルゲーム開発における運用とそのツール
ソーシャルゲーム開発における運用とそのツールソーシャルゲーム開発における運用とそのツール
ソーシャルゲーム開発における運用とそのツールYoshiaki Sugimoto
 
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?モノビット エンジン
 
WebARで作るDukeが飛び出すカード
WebARで作るDukeが飛び出すカードWebARで作るDukeが飛び出すカード
WebARで作るDukeが飛び出すカードHideyuki Fujikawa
 
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のりMasakazu Matsushita
 
ブロックチェーンを活用した次世代芸能エージェント
ブロックチェーンを活用した次世代芸能エージェントブロックチェーンを活用した次世代芸能エージェント
ブロックチェーンを活用した次世代芸能エージェントSHIDEO 関田
 
非ゲーム業界のデザイナーが CEDECに参加してきた
非ゲーム業界のデザイナーが CEDECに参加してきた非ゲーム業界のデザイナーが CEDECに参加してきた
非ゲーム業界のデザイナーが CEDECに参加してきたMeyco U
 
nomad-cliの紹介
nomad-cliの紹介nomad-cliの紹介
nomad-cliの紹介Kohki Miki
 
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例Satoshi Yamafuji
 
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プロトタイプ開発 〜実践事例のご紹介〜SORACOM,INC
 
if-up 2019 | C3. コンシューマープロダクトにおけるクラウド実践
if-up 2019 | C3. コンシューマープロダクトにおけるクラウド実践if-up 2019 | C3. コンシューマープロダクトにおけるクラウド実践
if-up 2019 | C3. コンシューマープロダクトにおけるクラウド実践SORACOM,INC
 
デブサミ関西2013 「ソーシャルゲームのデータサイエンス」
デブサミ関西2013 「ソーシャルゲームのデータサイエンス」デブサミ関西2013 「ソーシャルゲームのデータサイエンス」
デブサミ関西2013 「ソーシャルゲームのデータサイエンス」OCHI Shuji
 
今日から始めるC3.js
今日から始めるC3.js今日から始めるC3.js
今日から始めるC3.jsWataru Nakaseko
 
アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現
アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現
アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現gree_tech
 
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話Keisuke Utsumi
 
ASP.net MVC で Stripe 課金を実装してみた話
ASP.net MVC で Stripe課金を実装してみた話ASP.net MVC で Stripe課金を実装してみた話
ASP.net MVC で Stripe 課金を実装してみた話Yukihito Kataoka
 
変化の時代で勝つためのアジャイルゲーム開発 2012 03-24
変化の時代で勝つためのアジャイルゲーム開発 2012 03-24変化の時代で勝つためのアジャイルゲーム開発 2012 03-24
変化の時代で勝つためのアジャイルゲーム開発 2012 03-24俊仁 小林
 

Semelhante 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
 

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