Submit Search
Upload
Inside CyberAgent's Game Development
•
16 likes
•
3,575 views
S
Suguru Shirai
Follow
PHPカンファレンス2015の発表資料 サイバーエージェントのゲーム事業における ゲーム開発の現場のお話
Read less
Read more
Presentations & Public Speaking
Report
Share
Report
Share
1 of 106
Download now
Download to read offline
Recommended
サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷
サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷
Suguru Shirai
ポコロンダンジョンズとリアルタイム通信 -サーバサイド編-
ポコロンダンジョンズとリアルタイム通信 -サーバサイド編-
Suguru Shirai
ポコロンダンジョンズとリアルタイム通信 -クライアント編-
ポコロンダンジョンズとリアルタイム通信 -クライアント編-
Suguru Shirai
Jaws niigata#8
Jaws niigata#8
Kahori Takeda
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり
Masakazu Matsushita
組織にテストコードを書く文化を 根付かせるためにやってきたこと
組織にテストコードを書く文化を 根付かせるためにやってきたこと
Suguru Shirai
It's up to you 〜 楽しさドリブンで歩んだ道 〜
It's up to you 〜 楽しさドリブンで歩んだ道 〜
Masakazu Matsushita
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
YutoNishine
Recommended
サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷
サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷
Suguru Shirai
ポコロンダンジョンズとリアルタイム通信 -サーバサイド編-
ポコロンダンジョンズとリアルタイム通信 -サーバサイド編-
Suguru Shirai
ポコロンダンジョンズとリアルタイム通信 -クライアント編-
ポコロンダンジョンズとリアルタイム通信 -クライアント編-
Suguru Shirai
Jaws niigata#8
Jaws niigata#8
Kahori Takeda
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり
Masakazu Matsushita
組織にテストコードを書く文化を 根付かせるためにやってきたこと
組織にテストコードを書く文化を 根付かせるためにやってきたこと
Suguru Shirai
It's up to you 〜 楽しさドリブンで歩んだ道 〜
It's up to you 〜 楽しさドリブンで歩んだ道 〜
Masakazu Matsushita
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
YutoNishine
Unityでソーシャルログイン機能を実装してみた
Unityでソーシャルログイン機能を実装してみた
昭仁 賀好
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
Akihiro Sugeno
GCPでCI環境を構築する
GCPでCI環境を構築する
Toshihumi Anan
20140829 山形でJAWS-UGをやって困った2つのこと
20140829 山形でJAWS-UGをやって困った2つのこと
Seiji Akatsuka
メタバースのビジネスモデルと技術限界
メタバースのビジネスモデルと技術限界
Ryo Kurauchi
Go (5) JAZUG 関西とゆかいな仲間たち的な
Go (5) JAZUG 関西とゆかいな仲間たち的な
Keiji Kamebuchi
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
Tomotsune Murata
[JAWS-UG関西IoT専門支部] IoTで関西のコミュニティをつなぐ
[JAWS-UG関西IoT専門支部] IoTで関西のコミュニティをつなぐ
Ichiro Tsuji
ゲームデータDLとの戦い ~幻塔戦記グリフォン~
ゲームデータDLとの戦い ~幻塔戦記グリフォン~
Syougo Yoshino
Photogrammetry on Cloud
Photogrammetry on Cloud
Ryo Kurauchi
Designer's Design Talk「デザインの基礎」
Designer's Design Talk「デザインの基礎」
典子 松本
悩めるひとり情シスを救うChatwork API活用方法
悩めるひとり情シスを救うChatwork API活用方法
Mami Sakaguchi
Fantia開発チームのマネジメント改善
Fantia開発チームのマネジメント改善
かの たん
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
KLab Inc. / Tech
アクセシビリティを考えたalt属性を自動生成してみよう!
アクセシビリティを考えたalt属性を自動生成してみよう!
典子 松本
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
gree_tech
はじめてのAzure Azure的ピタゴラスイッチのススメ- PaaS・サーバーレス 初級編 -
はじめてのAzure Azure的ピタゴラスイッチのススメ- PaaS・サーバーレス 初級編 -
典子 松本
コードを書かずに爆速開発
コードを書かずに爆速開発
Cybozucommunity
スマホ版ログレスにポストエフェクトシステムを導入した話
スマホ版ログレスにポストエフェクトシステムを導入した話
章暢 藤井
Rancher on Bluemix Infrastructure
Rancher on Bluemix Infrastructure
cyberblack28 Ichikawa
あなたのチームの「いい人」は機能していますか?
あなたのチームの「いい人」は機能していますか?
Minoru Yokomichi
Apache Drill で見る Twitter の世界
Apache Drill で見る Twitter の世界
Masaru Watanabe
More Related Content
What's hot
Unityでソーシャルログイン機能を実装してみた
Unityでソーシャルログイン機能を実装してみた
昭仁 賀好
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
Akihiro Sugeno
GCPでCI環境を構築する
GCPでCI環境を構築する
Toshihumi Anan
20140829 山形でJAWS-UGをやって困った2つのこと
20140829 山形でJAWS-UGをやって困った2つのこと
Seiji Akatsuka
メタバースのビジネスモデルと技術限界
メタバースのビジネスモデルと技術限界
Ryo Kurauchi
Go (5) JAZUG 関西とゆかいな仲間たち的な
Go (5) JAZUG 関西とゆかいな仲間たち的な
Keiji Kamebuchi
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
Tomotsune Murata
[JAWS-UG関西IoT専門支部] IoTで関西のコミュニティをつなぐ
[JAWS-UG関西IoT専門支部] IoTで関西のコミュニティをつなぐ
Ichiro Tsuji
ゲームデータDLとの戦い ~幻塔戦記グリフォン~
ゲームデータDLとの戦い ~幻塔戦記グリフォン~
Syougo Yoshino
Photogrammetry on Cloud
Photogrammetry on Cloud
Ryo Kurauchi
Designer's Design Talk「デザインの基礎」
Designer's Design Talk「デザインの基礎」
典子 松本
悩めるひとり情シスを救うChatwork API活用方法
悩めるひとり情シスを救うChatwork API活用方法
Mami Sakaguchi
Fantia開発チームのマネジメント改善
Fantia開発チームのマネジメント改善
かの たん
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
KLab Inc. / Tech
アクセシビリティを考えたalt属性を自動生成してみよう!
アクセシビリティを考えたalt属性を自動生成してみよう!
典子 松本
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
gree_tech
はじめてのAzure Azure的ピタゴラスイッチのススメ- PaaS・サーバーレス 初級編 -
はじめてのAzure Azure的ピタゴラスイッチのススメ- PaaS・サーバーレス 初級編 -
典子 松本
コードを書かずに爆速開発
コードを書かずに爆速開発
Cybozucommunity
スマホ版ログレスにポストエフェクトシステムを導入した話
スマホ版ログレスにポストエフェクトシステムを導入した話
章暢 藤井
Rancher on Bluemix Infrastructure
Rancher on Bluemix Infrastructure
cyberblack28 Ichikawa
What's hot
(20)
Unityでソーシャルログイン機能を実装してみた
Unityでソーシャルログイン機能を実装してみた
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
GCPでCI環境を構築する
GCPでCI環境を構築する
20140829 山形でJAWS-UGをやって困った2つのこと
20140829 山形でJAWS-UGをやって困った2つのこと
メタバースのビジネスモデルと技術限界
メタバースのビジネスモデルと技術限界
Go (5) JAZUG 関西とゆかいな仲間たち的な
Go (5) JAZUG 関西とゆかいな仲間たち的な
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
スタートアップだからこそ使うAWS(第5回JAWS-UG Nagoya)
[JAWS-UG関西IoT専門支部] IoTで関西のコミュニティをつなぐ
[JAWS-UG関西IoT専門支部] IoTで関西のコミュニティをつなぐ
ゲームデータDLとの戦い ~幻塔戦記グリフォン~
ゲームデータDLとの戦い ~幻塔戦記グリフォン~
Photogrammetry on Cloud
Photogrammetry on Cloud
Designer's Design Talk「デザインの基礎」
Designer's Design Talk「デザインの基礎」
悩めるひとり情シスを救うChatwork API活用方法
悩めるひとり情シスを救うChatwork API活用方法
Fantia開発チームのマネジメント改善
Fantia開発チームのマネジメント改善
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
アクセシビリティを考えたalt属性を自動生成してみよう!
アクセシビリティを考えたalt属性を自動生成してみよう!
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
はじめてのAzure Azure的ピタゴラスイッチのススメ- PaaS・サーバーレス 初級編 -
はじめてのAzure Azure的ピタゴラスイッチのススメ- PaaS・サーバーレス 初級編 -
コードを書かずに爆速開発
コードを書かずに爆速開発
スマホ版ログレスにポストエフェクトシステムを導入した話
スマホ版ログレスにポストエフェクトシステムを導入した話
Rancher on Bluemix Infrastructure
Rancher on Bluemix Infrastructure
Viewers also liked
あなたのチームの「いい人」は機能していますか?
あなたのチームの「いい人」は機能していますか?
Minoru Yokomichi
Apache Drill で見る Twitter の世界
Apache Drill で見る Twitter の世界
Masaru Watanabe
F.O.Xを支える技術
F.O.Xを支える技術
Yuto Suzuki
あなたのScalaを爆速にする7つの方法
あなたのScalaを爆速にする7つの方法
x1 ichi
Ironicを運用して半年が経過しました - OpenStack最新情報セミナー(2016年7月)
Ironicを運用して半年が経過しました - OpenStack最新情報セミナー(2016年7月)
VirtualTech Japan Inc.
サイバーエージェント様 発表「OpenStackのNWと物理の話」
サイバーエージェント様 発表「OpenStackのNWと物理の話」
VirtualTech Japan Inc.
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
Katsutoshi Nagaoka
GKEで半年運用してみた
GKEで半年運用してみた
Katsutoshi Nagaoka
Wowzaを用いた配信基盤 Takusuta tech conf01
Wowzaを用いた配信基盤 Takusuta tech conf01
Kazuhiro Ota
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
Takahiro Moteki
アメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpring
Takuya Hattori
レスポンシブWebデザインでうまくやるための考え方
レスポンシブWebデザインでうまくやるための考え方
Hayato Mizuno
Atomic Design powered by React @ AbemaTV
Atomic Design powered by React @ AbemaTV
Yusuke Goto
NHN HTML5勉強会 サービス開発
NHN HTML5勉強会 サービス開発
nhn_hangame
The world is connected
The world is connected
Junichiro Ueno
20121217 livedoorblog epub_enquete_report
20121217 livedoorblog epub_enquete_report
saitomo
スマートフォンの徹底検証とWebパフォーマンス
スマートフォンの徹底検証とWebパフォーマンス
Noritaka Baba
[Livesence Tech Night] グリーにおけるHiveの運用
[Livesence Tech Night] グリーにおけるHiveの運用
gree_tech
Strolyによる古地図やイラスト地図を使ったまち歩きや、Wikipedia記事との連携の方法
Strolyによる古地図やイラスト地図を使ったまち歩きや、Wikipedia記事との連携の方法
Toru Takahashi
NHN HTML5勉強会 CSS3アニメーション
NHN HTML5勉強会 CSS3アニメーション
nhn_hangame
Viewers also liked
(20)
あなたのチームの「いい人」は機能していますか?
あなたのチームの「いい人」は機能していますか?
Apache Drill で見る Twitter の世界
Apache Drill で見る Twitter の世界
F.O.Xを支える技術
F.O.Xを支える技術
あなたのScalaを爆速にする7つの方法
あなたのScalaを爆速にする7つの方法
Ironicを運用して半年が経過しました - OpenStack最新情報セミナー(2016年7月)
Ironicを運用して半年が経過しました - OpenStack最新情報セミナー(2016年7月)
サイバーエージェント様 発表「OpenStackのNWと物理の話」
サイバーエージェント様 発表「OpenStackのNWと物理の話」
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
GKEで半年運用してみた
GKEで半年運用してみた
Wowzaを用いた配信基盤 Takusuta tech conf01
Wowzaを用いた配信基盤 Takusuta tech conf01
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
アメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpring
レスポンシブWebデザインでうまくやるための考え方
レスポンシブWebデザインでうまくやるための考え方
Atomic Design powered by React @ AbemaTV
Atomic Design powered by React @ AbemaTV
NHN HTML5勉強会 サービス開発
NHN HTML5勉強会 サービス開発
The world is connected
The world is connected
20121217 livedoorblog epub_enquete_report
20121217 livedoorblog epub_enquete_report
スマートフォンの徹底検証とWebパフォーマンス
スマートフォンの徹底検証とWebパフォーマンス
[Livesence Tech Night] グリーにおけるHiveの運用
[Livesence Tech Night] グリーにおけるHiveの運用
Strolyによる古地図やイラスト地図を使ったまち歩きや、Wikipedia記事との連携の方法
Strolyによる古地図やイラスト地図を使ったまち歩きや、Wikipedia記事との連携の方法
NHN HTML5勉強会 CSS3アニメーション
NHN HTML5勉強会 CSS3アニメーション
Similar to Inside CyberAgent's Game Development
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM,INC
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
モノビット エンジン
クラウドを用いるIoT開発における実費レポート
クラウドを用いるIoT開発における実費レポート
Masayuki KaToH
たのしいアノテーション
たのしいアノテーション
Kazuhiro Sasao
誰でもシステム開発ができる「ノーコード開発」入門
誰でもシステム開発ができる「ノーコード開発」入門
Yukihito Kataoka
皆さん!ふくてんが来ましたよ!!
皆さん!ふくてんが来ましたよ!!
ru pic
Photon Enterprise Cloud 事例
Photon Enterprise Cloud 事例
Tomotsune Murata
Google Material DesignをPolymerで表現しよう
Google Material DesignをPolymerで表現しよう
Masayuki Abe
歩ける全天球動画の実験
歩ける全天球動画の実験
Haruhisa Hasegawa
仮想サーバは、もう不要?!今からIoTやるなら「サーバレス・コンピューティング」
仮想サーバは、もう不要?!今からIoTやるなら「サーバレス・コンピューティング」
真吾 吉田
if-up 2019 | C3. コンシューマープロダクトにおけるクラウド実践
if-up 2019 | C3. コンシューマープロダクトにおけるクラウド実践
SORACOM,INC
今日から始めるC3.js
今日から始めるC3.js
Wataru Nakaseko
GitHub Actionsを使ってAPI外部公開時の作業を自動化した話
GitHub Actionsを使ってAPI外部公開時の作業を自動化した話
KainumaRyo
オブジェクトストレージを使ってイメージビューアを作ってみる
オブジェクトストレージを使ってイメージビューアを作ってみる
Hironobu Saitoh
Ride on azure~アイデアソン編~
Ride on azure~アイデアソン編~
Tatsuya Ishikawa
MRを活用した車両分解訓練(双子ゲームス)
MRを活用した車両分解訓練(双子ゲームス)
Yasuhiro Kobayashi
スマートスピーカーのバックエンドでAzure を使う方法
スマートスピーカーのバックエンドでAzure を使う方法
一希 大田
nomad-cliの紹介
nomad-cliの紹介
Kohki Miki
クラッシュフィーバー開発の裏側
クラッシュフィーバー開発の裏側
Tomotsune Murata
ゆとりエンジニア交流会_20130706
ゆとりエンジニア交流会_20130706
拓 小林
Similar to Inside CyberAgent's Game Development
(20)
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
クラウドを用いるIoT開発における実費レポート
クラウドを用いるIoT開発における実費レポート
たのしいアノテーション
たのしいアノテーション
誰でもシステム開発ができる「ノーコード開発」入門
誰でもシステム開発ができる「ノーコード開発」入門
皆さん!ふくてんが来ましたよ!!
皆さん!ふくてんが来ましたよ!!
Photon Enterprise Cloud 事例
Photon Enterprise Cloud 事例
Google Material DesignをPolymerで表現しよう
Google Material DesignをPolymerで表現しよう
歩ける全天球動画の実験
歩ける全天球動画の実験
仮想サーバは、もう不要?!今からIoTやるなら「サーバレス・コンピューティング」
仮想サーバは、もう不要?!今からIoTやるなら「サーバレス・コンピューティング」
if-up 2019 | C3. コンシューマープロダクトにおけるクラウド実践
if-up 2019 | C3. コンシューマープロダクトにおけるクラウド実践
今日から始めるC3.js
今日から始めるC3.js
GitHub Actionsを使ってAPI外部公開時の作業を自動化した話
GitHub Actionsを使ってAPI外部公開時の作業を自動化した話
オブジェクトストレージを使ってイメージビューアを作ってみる
オブジェクトストレージを使ってイメージビューアを作ってみる
Ride on azure~アイデアソン編~
Ride on azure~アイデアソン編~
MRを活用した車両分解訓練(双子ゲームス)
MRを活用した車両分解訓練(双子ゲームス)
スマートスピーカーのバックエンドでAzure を使う方法
スマートスピーカーのバックエンドでAzure を使う方法
nomad-cliの紹介
nomad-cliの紹介
クラッシュフィーバー開発の裏側
クラッシュフィーバー開発の裏側
ゆとりエンジニア交流会_20130706
ゆとりエンジニア交流会_20130706
Inside CyberAgent's Game Development
1.
Inside CyberAgent s Game
Development 2015/10/3 株式会社サイバーエージェント ⽩白井 英 川村 猛
2.
• 前半 -
(白井) • CyberAgentって? • ゲーム事業開発の歴史 • 開発の仕方 • 後半 - (川村) • PHPに命を救われた話 Agenda
3.
お前、誰よ • 株式会社 サイバーエージェント •
SGE統括室CTO • 白井 英 • エンジニア • Twitter @goodoo • Blog http://ameblo.jp/goodoo • DQ10 すぐちむ (FB392-435) プクリポ(旅芸人)
4.
少し説明
5.
CyberAgentの 子会社群による ゲーム事業
6.
CyberAgentって?
7.
Google先生に聞いた結果 Go Go Go Lang Java ・・・
8.
PHPどこ?
9.
CyberAgentも PHPつかってるよ っていう話をします
10.
ゲーム事業開発の歴史
11.
2010年 ソーシャルアプリ黎明期
12.
2010年の PHP カンファレンス
13.
その頃のウチ・・
14.
星空バータウン ドリームプロデューサー コーデマニア
15.
当時はまだ ガラケーが主戦場
16.
とはいえその 流行(負荷)具合は やばかった
17.
当時の数字 • ユーザ数約200万人 • 約10億PV/Month •
75万(MonthlyActiveUser) • ピーク時のトラフィック200Mbps 「星空バータウン」
18.
開発環境に 目を向ける
19.
当時(2010年)の開発の仕方 • サーバはオンプレ • CakePHP •
puppetでサーバ構築 • デプロイはCapistrano • DBのMigrationはRake ※すべてのプロジェクトで実施できてたわけではないです
20.
テストコードはなかった
21.
開発環境は 1 or 2台を チームで使い分け
22.
Subverion管理で レビューなし・・
23.
つくることに 一生懸命な時代 でした・・
24.
2012-13年 ブラウザソーシャル アプリ後期
25.
ブラウザのアプリと ネイティブのアプリ を作り始めた
26.
開発環境に 目を向ける
27.
当時(2012-13年)の開発の仕方 • サーバはオンプレからクラウド • CodeIgniter •
デプロイはshell(rsync)
28.
• テストコードは少しだけ • Subversion管理 •
Redmineでチケット駆動へ • プログラムレビューはまだ・・・
29.
1チームのあたりの 人数が増えた
30.
開発環境が・・
31.
devがいっぱい・・・
32.
開発ラインが並行で いくつも走るように なった結果
33.
2013-14年 転換期
34.
子会社の1つ(CyberX) が開発言語を PHPからNode.jsへ
35.
新しい技術要素
36.
開発環境としての 開発のし易さを 見直す
37.
このスライドの内容を実践 http://www.ryuzee.com/contents/blog/6102
38.
・ユニットテストを書く ・結合テストを自動化 ・継続的インテグレーションサーバを つかう ・デプロイを自動化 ・環境構築を自動化
39.
このスライドの内容を取り入れる http://sotarok.hatenablog.com/entry/20120919/presented_git_and_pull_request_work_flow_at_phpcon2012
40.
・1チケット1ブランチ ・ブランチ名は、チケット番号 ・ローカルのVirtualBoxで開発 ・ローカルのテストが通ったら featureへPUSH
41.
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}; } }
42.
当時(2013-14年)の開発の仕方 • サーバはクラウド • CodeIgniter(PHP) •
express(Node.js) • デプロイはCapistrano • DBのMigrationはRake
43.
• テストコードを書く習慣に • Git管理 •
Redmineでチケット駆動 • PullRequestによるソースレビュー
44.
継続的デリバリー
45.
現在
46.
ネイティブアプリが 主戦場
47.
様々な技術を使用
48.
【サーバ】 • クラウド • AWS •
CAのプライベートクラウド • GAE(Java)
49.
• AWS • オペレーション効率化 •
CAのプライベートクラウド • コストメリット • GAE • Googleと仲良くなれた それぞれのメリット
50.
• Googleと仲良くなれた
51.
【WAF】 • CodeIgniter • Phalcon
52.
【WAF】 とにかく早いやつ かつ 見通しがいいやつ
53.
【その他】 • Git • Git-flowが主流 •
一部GitHub-flowを使用 • チケット管理 • Redmineが主流
54.
【その他】 チケットを紐づけ ての開発ができる 開発フローを採用
55.
ネイティブが主戦場に なっても サーバエンジニアに対する 変化は少なかった
56.
番外編
57.
子会社群ならではの 工夫
58.
ソースの共有 (現在進行形)
59.
見る専用の Gitlabを立てた
60.
各プロジェクトから ソースを定期的に 自動でPush
61.
アカウントは 社内SSOで管理 (アカウント管理が楽)
62.
Publicレポジトリ廃止 (とっちゃった)
63.
64.
Internalをデフォルト で表示 (見にくいかも・・・)
65.
66.
まだまだ試行錯誤中
67.
自分たちのプロセスは 自分たちで進化させる!
68.
ご清聴ありがとうございました
69.
PHPカンファレンス2015 Inside CyberAgent s Game
Development ∼PHPに命を救われた話∼ 2015.10.03
70.
川村猛 株式会社GRIPHONE 取締役/CTO 2010年03月よりCyberAgent 2010年03月 ‒
2013年01月 株式会社CyberX 2013年02月 ‒ 株式会社GRIPHONE PHP使用歴10年 株式会社GRIPHONE 2013年02月設立 GREE、CyberAgentのジョイントベンチャー ソーシャルゲームの開発/運用
71.
GRIPHONEのサービス
72.
GREEプラットフォーム 2013年09月∼
73.
GREEプラットフォーム 2014年05月∼ dゲームプラットフォーム 2015年06月∼
74.
GREEプラットフォーム 2015年03月∼ mobageプラットフォーム 2015年09月∼
75.
DMMプラットフォーム 2015年07月∼
76.
全てwebアプリです
77.
全てPHPアプリです
78.
技術要素
79.
PHP関連技術 PHP(5.4 5.5) PHPUnit CodeIgniter(2.1.3) Smarty SWF editor PHP
Debug Bar PEAR xhprof HHVM その他 CentOS Apache nginx MySQL redis memcached sass compass Backborn.js Jenkins capistrano fluentd etc…
80.
PHPに命を救われた話
81.
設立後、いきなり大失敗
82.
最初にリリースしたアプリを わずか2ヶ月でクローズ
83.
システムに多くの問題
84.
どんな問題?
85.
アンコントローラブルな部分 ・ネイティブアプリの 横展 →言語はJava(Javaに罪はない) →元々社内で開発したものではないため、理解が浅い ・Google App
Engine(GAEに罪はない) →上手く使いこなせなかった
86.
実行速度 ・横展元のネイティブアプリも元々速度に課題を抱えていた ・GREEプラットフォームを経由、APIにアクセス →レスポンス速度悪化 →プラットフォームのタイムアウト頻発 →非同期処理を多用して改善は見られたが… ・GAEに適した設計になっていない →RDB的なデータ設計 →マシンパワーで無理やり解決…といった手段も取れない
87.
セキュリティ ・SQLインジェクション、XSS、CSRF対策が不十分 ・ブラウザバック、連打、URL直打ち、要素改竄等の対策が甘い →元々ネイティブアプリなので考慮されていない
88.
設立したばかりなのに 倒産の危機
89.
次は絶対に失敗出来ない
90.
PHPにシフトチェンジ
91.
何故PHP?
92.
CAグループの ブラウザゲーム資産を 最大限に活用
93.
成功の確率 失敗のリスク
94.
どんな資産?
95.
PHPでソーシャルアプリの開発/運用経験 ・過去3年間の開発/運用経験 → 正解 を持っている →インフラ環境、開発フローまで含めたノウハウ ・PHPでのソーシャルアプリ開発に慣れたエンジニアが社内に在籍
96.
運用実績 ・十分に実績のあるwebアプリ基盤 →DAU 数十万規模 →GREE、mobageでの運用実績 →不具合解消やパフォーマンス改善がある程度済んでいる
97.
開発スピード ・サーバー、マークアップ合わせてエンジニア8名 →2本目のアプリは開発期間4ヶ月でリリース
98.
その後どうなった?
99.
シフトチェンジ後 約2年半で 4プラットフォーム 6本のサービス
100.
得た教訓
101.
過去のノウハウと実績 開発スピードと安定性 の重要性
102.
何が言いたいのか
103.
GRIPHONEはPHPに 命を救われた会社です
104.
感謝の気持ちを伝えたい
105.
ありがとうPHP
106.
ご静聴ありがとうございました
Download now