SlideShare a Scribd company logo
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
PHP Version Up と
AWS に移行した話
グリー株式会社
吉本 将宣
Copyright © GREE, Inc. All Rights Reserved.
自己紹介
● 吉本 将宣
● 2014年 グリー Join
● インフラ/リードエンジニア
○ 本職は NoSQL のはずだが、、、
○ 何でもやるスタイル
■ PM、フロント開発・コードレビュー...
■ 一時は Manager も ...
● 10月からメディア事業へ
○ iOS/Android アプリの開発メイン
Copyright © GREE, Inc. All Rights Reserved.
今日お話しすること
● PHP Version Up した話
● AWS に移行した話
Copyright © GREE, Inc. All Rights Reserved.
今日お話しすること
● PHP Version Up した話
● レガシーと戦って僕たちが手に入れた武器
● AWS に移行した話
● 僕たちが手に入れた武器で次にやったこと
Copyright © GREE, Inc. All Rights Reserved.
グリーのサービス
SNS
&
ゲームプラットフォーム
ブラウザゲーム
&
ネイティブゲーム
広告
メディア事業など
Copyright © GREE, Inc. All Rights Reserved.
Memcached
/ Redis / Flare
MySQL
Apache + PHP
基本システム構成
アプライアンス
ロードバランサ
+
Apache Proxy
ロードバランサ層 アプリケーション層 データベース層
Copyright © GREE, Inc. All Rights Reserved.
2年前の僕たちの環境
SNS
&
ゲームプラットフォーム
ブラウザゲーム
&
ネイティブゲーム
広告
メディア事業など
オンプレ
AWS
Copyright © GREE, Inc. All Rights Reserved.
2年前の僕たちの環境
SNS
&
ゲームプラットフォーム
ブラウザゲーム
&
ネイティブゲーム
広告
メディア事業など
オンプレ
AWS
OS : Ubuntu Trusty
PHP : 5.5 以上
MySQL : 5.6 以上
Copyright © GREE, Inc. All Rights Reserved.
2年前の僕たちの環境
SNS
&
ゲームプラットフォーム
ブラウザゲーム
&
ネイティブゲーム
広告
メディア事業など
オンプレ
AWS
OS : Debian Lenny
PHP : 5.2
MySQL : 5.5
Copyright © GREE, Inc. All Rights Reserved.
なぜオンプレがレガシー化したのか
● 新規 OS への対応遅れ
○ 数千台規模のサーバの入替はそれだけで長期に渡る
● 息の長いサービスは密結合化
○ 古くからあるサービス
■ GREE SNS やガラケー時代からの内製ブラウザゲーム
○ プラットフォームやゲーム間で require
■ プラットフォームが出来る前のコード
■ API 化されていない部分
■ 同じサーバで動いていた
● API 呼び出しより MySQL 直アクセスの方が速かった
● メンテナンスが入れづらい
○ ゲームプラットフォームの修正はパートナー様にも影響する
● 肥大化したコード
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
抜け出せないレガシーの沼
Copyright © GREE, Inc. All Rights Reserved.
しかし限界はある
● レスポンス速度の改善も限界
○ 2年前の時点でも周回遅れの PHP 5.2
● OS が古いことによるミドルウェアのメンテナンスコスト増大
○ セキュリティパッチは独自で対応
○ AWS は ubuntu trusty なので、同じミドルウェアで複数バージョンを
メンテナンスしないといけない
意を決して内製のブラウザゲームからバージョンアップを始めた
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
効率よく&スピード重視で
進めないといけない
Copyright © GREE, Inc. All Rights Reserved.
どうしたのか
● 少人数によるプロトタイピング
● ノウハウの共有
● 修正方針と QA のスケジューリング
Copyright © GREE, Inc. All Rights Reserved.
少人数によるプロトタイピング
● インフラチームを中心に各ゲーム・プラットフォームから数名で対応
● ゲームや SNS 機能が最低限動くところまで一気にやった
○ 各サービス共通のコードを完成させる
○ よくある syntax error の修正方法を決める
■ 引数の変更など (regex_replace, etc…
● ミドルウェア・インフラ面の問題も先取り
○ 画像ライブラリ・Apache などの設定や問題の確認
● 開発環境を統一
○ chef を使って本番と共通の cookbook を作成
○
Copyright © GREE, Inc. All Rights Reserved.
ノウハウ共有
● 全サービスで共通のエラーレポートフローを定義
○ ゲーム内で閉じない不具合は全員に共有
○ どのように対応したかも一覧で分かるように
● チームや領域によらずに修正
○ インフラ・ゲーム・プラットフォームのチームに関係なく pull request
○ レビューやテストは各サービスのエンジニアが対応することで品質を担保
● インフラチームが舵を取って積極的にノウハウを共有
○ 全社で共通となっているインフラチームが中心になることで情報を集約
Copyright © GREE, Inc. All Rights Reserved.
修正方針と QA のスケジューリング
● 修正方針
○ PHP5.2 と PHP5.5 両方で必ず動くように修正する
● QA とリリースまでのスケジュール調整
○ 先行して一つのゲームで QA を実施
■ 密結合なので、プラットフォームなどの不具合も見つることができた
■ 画像合成といったセンシティブで時間が掛かる問題も早めに検知できた
○ 共通の不具合を修正後は並行して QA を実施
■ 定常的に実施しているイベント等の QA と同時に実施
● PHP5.2 と PHP5.5 の両方の環境で QA すると時間が掛かりすぎる
■ 事前に発生しやすい問題は把握・対応できているので不具合は少なめ
○ プラットフォームは定常 QA で確認しつつ徐々にリリース
○ リリースは一台に投入して2週間以上様子を見てから
■ 負荷に問題がないか
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
決してスマートとは
言えないやり方だが...
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
どうにか難題を乗り越えて
僕たちが勝ち得たものとは
Copyright © GREE, Inc. All Rights Reserved.
負荷の改善
● 50%ほど load avergae が改善された
○ Web サーバを 40% 削減
PHP 5.2
PHP 5.5
Copyright © GREE, Inc. All Rights Reserved.
レガシーからの脱却
● バージョンアップ前 (2015年時点)
○ Trusty & PHP5.5:全体の 20%
● バージョンアップ後 (2016年時点)
○ Trusty & PHP5.5:全体の 90%
■ Lenny & PHP5.2 で残ったもの
● サーバ管理システム等
● オンプレのネイティブゲーム
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
そんな数字よりも。。。
Copyright © GREE, Inc. All Rights Reserved.
僕たちが真に勝ち得たもの
● 互いのシステムへの相互理解
○ サーバサイドエンジニアのインフラへの理解
○ インフラエンジニアのアプリケーションへの理解
● 組織を超えた強力なチームワーク
○ 一つの目標に向かって一丸となって進む力
○ 自分の領域に囚われずに協力し合う信頼関係
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
AWS に行こう
Copyright © GREE, Inc. All Rights Reserved.
AWS 移行したモチベーション
システム観点では。。。
● オンプレサーバの老朽化
○ 2017年には EOSL を迎えてしまう
○ HDDおよびメモリの故障率の増加
○ パフォーマンスの限界
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
でも、それだけじゃない
Copyright © GREE, Inc. All Rights Reserved.
AWS 移行したモチベーション
● 一丸となってやれば何でもできる自信
○ 10年来の超大規模レガシーから抜け出した自信
● 次のチャレンジへの意欲向上
○ PHP7
○ 疎結合化
○ etc...
Copyright © GREE, Inc. All Rights Reserved.
AWS 移行したモチベーション
● やりたいことは非常に多い
● でも、さすがに一気に全部やるのは怖いので
● AWS 移行しつつ、並行して PHP7 の準備をしました
Copyright © GREE, Inc. All Rights Reserved.
1年でゲームを全部 AWS に移行した
● 2016年
SNS
&
ゲームプラットフォーム
ブラウザゲーム
&
ネイティブゲーム
広告
メディア事業など
オンプレ
AWS
Copyright © GREE, Inc. All Rights Reserved.
1年でゲームを全部 AWS に移行した
SNS
&
ゲームプラットフォーム
ブラウザゲーム
&
スマホゲーム
広告
メディア事業など
オンプレ
AWS
● 2017年
Copyright © GREE, Inc. All Rights Reserved.
移行したサービス
● ブラウザゲーム
○ 密結合なものも含めて全て
● スマホ向けネイティブゲーム
○ ブラウザゲームで得たノウハウを活かして PHP Version Up も同時に
○ ネイティブ向けのゲームプラットフォームも
● ゲーム以外も
○ コーポレート、広告・メディア事業系のサイト
20を超えるサービス、数千台規模のサーバを AWS に移行
Copyright © GREE, Inc. All Rights Reserved.
どうやって移行したか?
● Direct Connect 使った
○ 事前に MySQL のレプリカを AWS 上に作る
■ AWS 側のレプリカを一台、オンプレのサービスに入れて
クエリ検証やレスポンス速度等を確認
● 密結合な内製ブラウザゲームの場合、プラットフォームがオンプレに残るので
AWS からオンプレへのレスポンス速度も重要
○ テスト用の別ドメインを AWS 側につけてテスト実施
■ AWS からオンプレの本番 DB にアクセスして確認
● 移行日の深夜メンテで切替
○ MySQL マスタ切替 & DNS 切替
○ 最終的な動作チェック
Copyright © GREE, Inc. All Rights Reserved.
移行して良かったこと
● サーバ費用の削減
○ 40% 近い削減を達成
■ ハードウェア性能向上による負荷低減
● サーバリソースの在庫調整が不要に
○ オンプレではサーバ増加における調達のために在庫が必要だった
● PHP5.5 に出来ていなかったサービスも完全移行
○ オンプレに残っていたネイティブゲーム等
Copyright © GREE, Inc. All Rights Reserved.
AWS 移行で起きた問題
● 深夜メンテを入れて移行できなかったのは最初の一回だけ
○ 原因は疎結合化を同時にやろうとしたことによるテスト不足
● メンテ当日の準備不足
○ テスト用端末がログインできないプロダクトがあり
当日慌てて対応した
大きなトラブルはほとんどなかった
Copyright © GREE, Inc. All Rights Reserved.
なぜ一年で数千台規模を移行できたのか
● 普通に PDCA 回した
○ 最初の移行ミスでプロジェクト並行する問題が把握できた
○ 事前にやる作業や修正を次の移行プロダクトに共有した
○ 負荷予測の精度も移行を経るごとに高くなった
● 円滑なコミュニケーション
○ PHPバージョンアップした時からの信頼関係
○ 相互に仕組みを理解しているため話が早く
問題を早く検知しやすい
■ 認識齟齬などに問題も少なかった
Copyright © GREE, Inc. All Rights Reserved.
今後のチャレンジ
● PHP7 on Xenial
○ 一部サービスでは導入を開始
■ memcached への connection 数が改善
■ cpu 負荷も半分程度に
● HTTP2 を使った通信の高速化
● オンプレに残ったサービスのハイブリッドクラウド
Copyright © GREE, Inc. All Rights Reserved.
まとめ
● 強靭な意志でレガシーから抜け出せる
● 勝ち得たチームワークは次のチャレンジの大きな財産!
● パフォーマンスの改善はその副産物
Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved.
技術負債は
人的資源に変える
大きなチャンス!

More Related Content

What's hot

そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?takezoe
 
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Appsグリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
Google Cloud Platform - Japan
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
 
分散システムの限界について知ろう
分散システムの限界について知ろう分散システムの限界について知ろう
分散システムの限界について知ろう
Shingo Omura
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解
Masahito Zembutsu
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
 
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
Kouji YAMADA
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
Masahito Zembutsu
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
 
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
NTT DATA Technology & Innovation
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモ
Etsuji Nakai
 
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係についてOSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
Takuto Wada
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
 
Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話
Katsunori Kanda
 

What's hot (20)

そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
 
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Appsグリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
分散システムの限界について知ろう
分散システムの限界について知ろう分散システムの限界について知ろう
分散システムの限界について知ろう
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモ
 
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係についてOSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話
 

Viewers also liked

著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
Hiroshi Tokumaru
 
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略片手間MySQLチューニング戦略
片手間MySQLチューニング戦略
yoku0825
 
LancersのCakePHPバージョンアップ施策について
LancersのCakePHPバージョンアップ施策についてLancersのCakePHPバージョンアップ施策について
LancersのCakePHPバージョンアップ施策について
Shigemasa Akiyama
 
OPcache の最適化器の今
OPcache の最適化器の今OPcache の最適化器の今
OPcache の最適化器の今
y-uti
 
phpcon2017 LT01 MDD
phpcon2017 LT01 MDDphpcon2017 LT01 MDD
phpcon2017 LT01 MDD
Masahiko Jinno
 
PHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったことPHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったこと
Yoshio Hanawa
 
PHPとシグナル、その裏側
PHPとシグナル、その裏側PHPとシグナル、その裏側
PHPとシグナル、その裏側
do_aki
 
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
Katsuhiro Miura
 
Apache sparkとapache cassandraで行うテキスト解析
Apache sparkとapache cassandraで行うテキスト解析Apache sparkとapache cassandraで行うテキスト解析
Apache sparkとapache cassandraで行うテキスト解析
Kazutaka Tomita
 
モバイルするハニーポット無線LANアクセスポイント
モバイルするハニーポット無線LANアクセスポイントモバイルするハニーポット無線LANアクセスポイント
モバイルするハニーポット無線LANアクセスポイント
Naoya Kaneko
 
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)
Kosuke Kida
 
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴
Masahito Zembutsu
 
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
akira6592
 
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
真乙 九龍
 
PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版
Kouhei Sutou
 
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システムPostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
Kouhei Sutou
 
AWS Black Belt - AWS Glue
AWS Black Belt - AWS GlueAWS Black Belt - AWS Glue
AWS Black Belt - AWS Glue
Amazon Web Services Japan
 

Viewers also liked (17)

著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
 
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略片手間MySQLチューニング戦略
片手間MySQLチューニング戦略
 
LancersのCakePHPバージョンアップ施策について
LancersのCakePHPバージョンアップ施策についてLancersのCakePHPバージョンアップ施策について
LancersのCakePHPバージョンアップ施策について
 
OPcache の最適化器の今
OPcache の最適化器の今OPcache の最適化器の今
OPcache の最適化器の今
 
phpcon2017 LT01 MDD
phpcon2017 LT01 MDDphpcon2017 LT01 MDD
phpcon2017 LT01 MDD
 
PHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったことPHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったこと
 
PHPとシグナル、その裏側
PHPとシグナル、その裏側PHPとシグナル、その裏側
PHPとシグナル、その裏側
 
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
 
Apache sparkとapache cassandraで行うテキスト解析
Apache sparkとapache cassandraで行うテキスト解析Apache sparkとapache cassandraで行うテキスト解析
Apache sparkとapache cassandraで行うテキスト解析
 
モバイルするハニーポット無線LANアクセスポイント
モバイルするハニーポット無線LANアクセスポイントモバイルするハニーポット無線LANアクセスポイント
モバイルするハニーポット無線LANアクセスポイント
 
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)
 
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴
 
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
 
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
Zabbixによるオートスケーリングクラスタ監視とオペレーション自動化
 
PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版
 
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システムPostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
 
AWS Black Belt - AWS Glue
AWS Black Belt - AWS GlueAWS Black Belt - AWS Glue
AWS Black Belt - AWS Glue
 

Similar to PHP Version Up と AWS への移行

インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動
gree_tech
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
Koichiro Sumi
 
ニュースアプリで起きた不具合から学んだ 最適への一歩
ニュースアプリで起きた不具合から学んだ 最適への一歩ニュースアプリで起きた不具合から学んだ 最適への一歩
ニュースアプリで起きた不具合から学んだ 最適への一歩
Yahoo!デベロッパーネットワーク
 
ネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったことネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったこと
gree_tech
 
第一回☆GREE AI Programming ContestでTensorFlow
第一回☆GREE AI Programming ContestでTensorFlow第一回☆GREE AI Programming ContestでTensorFlow
第一回☆GREE AI Programming ContestでTensorFlow
gree_tech
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
sairoutine
 
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
Developers Summit
 
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Developmentアジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
Go2GroupJapan
 
AndApp開発における全て #denatechcon
AndApp開発における全て #denatechconAndApp開発における全て #denatechcon
AndApp開発における全て #denatechcon
DeNA
 
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Yahoo!デベロッパーネットワーク
 
私たちがGCPを使い始めた本当の理由
私たちがGCPを使い始めた本当の理由私たちがGCPを使い始めた本当の理由
私たちがGCPを使い始めた本当の理由
gree_tech
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
MinGeun Park
 
DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2
gree_tech
 
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれからYahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo!デベロッパーネットワーク
 
Unification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.jsUnification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.js
HajimeSasanuma
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
Shunsuke Maeda
 
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
Developers Summit
 

Similar to PHP Version Up と AWS への移行 (20)

インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
 
ニュースアプリで起きた不具合から学んだ 最適への一歩
ニュースアプリで起きた不具合から学んだ 最適への一歩ニュースアプリで起きた不具合から学んだ 最適への一歩
ニュースアプリで起きた不具合から学んだ 最適への一歩
 
GREE-Fsite
GREE-FsiteGREE-Fsite
GREE-Fsite
 
ネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったことネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったこと
 
第一回☆GREE AI Programming ContestでTensorFlow
第一回☆GREE AI Programming ContestでTensorFlow第一回☆GREE AI Programming ContestでTensorFlow
第一回☆GREE AI Programming ContestでTensorFlow
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
 
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
【14-B-2】グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)
 
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Developmentアジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
 
AndApp開発における全て #denatechcon
AndApp開発における全て #denatechconAndApp開発における全て #denatechcon
AndApp開発における全て #denatechcon
 
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
 
私たちがGCPを使い始めた本当の理由
私たちがGCPを使い始めた本当の理由私たちがGCPを使い始めた本当の理由
私たちがGCPを使い始めた本当の理由
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
 
DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2
 
Presto in Yahoo! JAPAN #yjdsnight
Presto in Yahoo! JAPAN #yjdsnightPresto in Yahoo! JAPAN #yjdsnight
Presto in Yahoo! JAPAN #yjdsnight
 
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれからYahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
 
Unification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.jsUnification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.js
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
 
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
 

More from gree_tech

アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
 
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
 
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
 
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
 
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
 
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
 
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
gree_tech
 
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現についてSINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
gree_tech
 
海外展開と負荷試験
海外展開と負荷試験海外展開と負荷試験
海外展開と負荷試験
gree_tech
 
翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み
gree_tech
 
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
gree_tech
 
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
gree_tech
 
データエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件についてデータエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件について
gree_tech
 
シェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジーシェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジー
gree_tech
 
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
gree_tech
 
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
gree_tech
 
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
gree_tech
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
 
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
gree_tech
 
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
gree_tech
 

More from gree_tech (20)

アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
 
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
 
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
 
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
 
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
 
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
 
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
 
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現についてSINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
 
海外展開と負荷試験
海外展開と負荷試験海外展開と負荷試験
海外展開と負荷試験
 
翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み
 
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
 
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
 
データエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件についてデータエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件について
 
シェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジーシェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジー
 
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
 
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
 
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
 
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
 
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
 

PHP Version Up と AWS への移行

  • 1. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. PHP Version Up と AWS に移行した話 グリー株式会社 吉本 将宣
  • 2. Copyright © GREE, Inc. All Rights Reserved. 自己紹介 ● 吉本 将宣 ● 2014年 グリー Join ● インフラ/リードエンジニア ○ 本職は NoSQL のはずだが、、、 ○ 何でもやるスタイル ■ PM、フロント開発・コードレビュー... ■ 一時は Manager も ... ● 10月からメディア事業へ ○ iOS/Android アプリの開発メイン
  • 3. Copyright © GREE, Inc. All Rights Reserved. 今日お話しすること ● PHP Version Up した話 ● AWS に移行した話
  • 4. Copyright © GREE, Inc. All Rights Reserved. 今日お話しすること ● PHP Version Up した話 ● レガシーと戦って僕たちが手に入れた武器 ● AWS に移行した話 ● 僕たちが手に入れた武器で次にやったこと
  • 5. Copyright © GREE, Inc. All Rights Reserved. グリーのサービス SNS & ゲームプラットフォーム ブラウザゲーム & ネイティブゲーム 広告 メディア事業など
  • 6. Copyright © GREE, Inc. All Rights Reserved. Memcached / Redis / Flare MySQL Apache + PHP 基本システム構成 アプライアンス ロードバランサ + Apache Proxy ロードバランサ層 アプリケーション層 データベース層
  • 7. Copyright © GREE, Inc. All Rights Reserved. 2年前の僕たちの環境 SNS & ゲームプラットフォーム ブラウザゲーム & ネイティブゲーム 広告 メディア事業など オンプレ AWS
  • 8. Copyright © GREE, Inc. All Rights Reserved. 2年前の僕たちの環境 SNS & ゲームプラットフォーム ブラウザゲーム & ネイティブゲーム 広告 メディア事業など オンプレ AWS OS : Ubuntu Trusty PHP : 5.5 以上 MySQL : 5.6 以上
  • 9. Copyright © GREE, Inc. All Rights Reserved. 2年前の僕たちの環境 SNS & ゲームプラットフォーム ブラウザゲーム & ネイティブゲーム 広告 メディア事業など オンプレ AWS OS : Debian Lenny PHP : 5.2 MySQL : 5.5
  • 10. Copyright © GREE, Inc. All Rights Reserved. なぜオンプレがレガシー化したのか ● 新規 OS への対応遅れ ○ 数千台規模のサーバの入替はそれだけで長期に渡る ● 息の長いサービスは密結合化 ○ 古くからあるサービス ■ GREE SNS やガラケー時代からの内製ブラウザゲーム ○ プラットフォームやゲーム間で require ■ プラットフォームが出来る前のコード ■ API 化されていない部分 ■ 同じサーバで動いていた ● API 呼び出しより MySQL 直アクセスの方が速かった ● メンテナンスが入れづらい ○ ゲームプラットフォームの修正はパートナー様にも影響する ● 肥大化したコード
  • 11. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. 抜け出せないレガシーの沼
  • 12. Copyright © GREE, Inc. All Rights Reserved. しかし限界はある ● レスポンス速度の改善も限界 ○ 2年前の時点でも周回遅れの PHP 5.2 ● OS が古いことによるミドルウェアのメンテナンスコスト増大 ○ セキュリティパッチは独自で対応 ○ AWS は ubuntu trusty なので、同じミドルウェアで複数バージョンを メンテナンスしないといけない 意を決して内製のブラウザゲームからバージョンアップを始めた
  • 13. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. 効率よく&スピード重視で 進めないといけない
  • 14. Copyright © GREE, Inc. All Rights Reserved. どうしたのか ● 少人数によるプロトタイピング ● ノウハウの共有 ● 修正方針と QA のスケジューリング
  • 15. Copyright © GREE, Inc. All Rights Reserved. 少人数によるプロトタイピング ● インフラチームを中心に各ゲーム・プラットフォームから数名で対応 ● ゲームや SNS 機能が最低限動くところまで一気にやった ○ 各サービス共通のコードを完成させる ○ よくある syntax error の修正方法を決める ■ 引数の変更など (regex_replace, etc… ● ミドルウェア・インフラ面の問題も先取り ○ 画像ライブラリ・Apache などの設定や問題の確認 ● 開発環境を統一 ○ chef を使って本番と共通の cookbook を作成 ○
  • 16. Copyright © GREE, Inc. All Rights Reserved. ノウハウ共有 ● 全サービスで共通のエラーレポートフローを定義 ○ ゲーム内で閉じない不具合は全員に共有 ○ どのように対応したかも一覧で分かるように ● チームや領域によらずに修正 ○ インフラ・ゲーム・プラットフォームのチームに関係なく pull request ○ レビューやテストは各サービスのエンジニアが対応することで品質を担保 ● インフラチームが舵を取って積極的にノウハウを共有 ○ 全社で共通となっているインフラチームが中心になることで情報を集約
  • 17. Copyright © GREE, Inc. All Rights Reserved. 修正方針と QA のスケジューリング ● 修正方針 ○ PHP5.2 と PHP5.5 両方で必ず動くように修正する ● QA とリリースまでのスケジュール調整 ○ 先行して一つのゲームで QA を実施 ■ 密結合なので、プラットフォームなどの不具合も見つることができた ■ 画像合成といったセンシティブで時間が掛かる問題も早めに検知できた ○ 共通の不具合を修正後は並行して QA を実施 ■ 定常的に実施しているイベント等の QA と同時に実施 ● PHP5.2 と PHP5.5 の両方の環境で QA すると時間が掛かりすぎる ■ 事前に発生しやすい問題は把握・対応できているので不具合は少なめ ○ プラットフォームは定常 QA で確認しつつ徐々にリリース ○ リリースは一台に投入して2週間以上様子を見てから ■ 負荷に問題がないか
  • 18. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. 決してスマートとは 言えないやり方だが...
  • 19. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. どうにか難題を乗り越えて 僕たちが勝ち得たものとは
  • 20. Copyright © GREE, Inc. All Rights Reserved. 負荷の改善 ● 50%ほど load avergae が改善された ○ Web サーバを 40% 削減 PHP 5.2 PHP 5.5
  • 21. Copyright © GREE, Inc. All Rights Reserved. レガシーからの脱却 ● バージョンアップ前 (2015年時点) ○ Trusty & PHP5.5:全体の 20% ● バージョンアップ後 (2016年時点) ○ Trusty & PHP5.5:全体の 90% ■ Lenny & PHP5.2 で残ったもの ● サーバ管理システム等 ● オンプレのネイティブゲーム
  • 22. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. そんな数字よりも。。。
  • 23. Copyright © GREE, Inc. All Rights Reserved. 僕たちが真に勝ち得たもの ● 互いのシステムへの相互理解 ○ サーバサイドエンジニアのインフラへの理解 ○ インフラエンジニアのアプリケーションへの理解 ● 組織を超えた強力なチームワーク ○ 一つの目標に向かって一丸となって進む力 ○ 自分の領域に囚われずに協力し合う信頼関係
  • 24. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. AWS に行こう
  • 25. Copyright © GREE, Inc. All Rights Reserved. AWS 移行したモチベーション システム観点では。。。 ● オンプレサーバの老朽化 ○ 2017年には EOSL を迎えてしまう ○ HDDおよびメモリの故障率の増加 ○ パフォーマンスの限界
  • 26. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. でも、それだけじゃない
  • 27. Copyright © GREE, Inc. All Rights Reserved. AWS 移行したモチベーション ● 一丸となってやれば何でもできる自信 ○ 10年来の超大規模レガシーから抜け出した自信 ● 次のチャレンジへの意欲向上 ○ PHP7 ○ 疎結合化 ○ etc...
  • 28. Copyright © GREE, Inc. All Rights Reserved. AWS 移行したモチベーション ● やりたいことは非常に多い ● でも、さすがに一気に全部やるのは怖いので ● AWS 移行しつつ、並行して PHP7 の準備をしました
  • 29. Copyright © GREE, Inc. All Rights Reserved. 1年でゲームを全部 AWS に移行した ● 2016年 SNS & ゲームプラットフォーム ブラウザゲーム & ネイティブゲーム 広告 メディア事業など オンプレ AWS
  • 30. Copyright © GREE, Inc. All Rights Reserved. 1年でゲームを全部 AWS に移行した SNS & ゲームプラットフォーム ブラウザゲーム & スマホゲーム 広告 メディア事業など オンプレ AWS ● 2017年
  • 31. Copyright © GREE, Inc. All Rights Reserved. 移行したサービス ● ブラウザゲーム ○ 密結合なものも含めて全て ● スマホ向けネイティブゲーム ○ ブラウザゲームで得たノウハウを活かして PHP Version Up も同時に ○ ネイティブ向けのゲームプラットフォームも ● ゲーム以外も ○ コーポレート、広告・メディア事業系のサイト 20を超えるサービス、数千台規模のサーバを AWS に移行
  • 32. Copyright © GREE, Inc. All Rights Reserved. どうやって移行したか? ● Direct Connect 使った ○ 事前に MySQL のレプリカを AWS 上に作る ■ AWS 側のレプリカを一台、オンプレのサービスに入れて クエリ検証やレスポンス速度等を確認 ● 密結合な内製ブラウザゲームの場合、プラットフォームがオンプレに残るので AWS からオンプレへのレスポンス速度も重要 ○ テスト用の別ドメインを AWS 側につけてテスト実施 ■ AWS からオンプレの本番 DB にアクセスして確認 ● 移行日の深夜メンテで切替 ○ MySQL マスタ切替 & DNS 切替 ○ 最終的な動作チェック
  • 33. Copyright © GREE, Inc. All Rights Reserved. 移行して良かったこと ● サーバ費用の削減 ○ 40% 近い削減を達成 ■ ハードウェア性能向上による負荷低減 ● サーバリソースの在庫調整が不要に ○ オンプレではサーバ増加における調達のために在庫が必要だった ● PHP5.5 に出来ていなかったサービスも完全移行 ○ オンプレに残っていたネイティブゲーム等
  • 34. Copyright © GREE, Inc. All Rights Reserved. AWS 移行で起きた問題 ● 深夜メンテを入れて移行できなかったのは最初の一回だけ ○ 原因は疎結合化を同時にやろうとしたことによるテスト不足 ● メンテ当日の準備不足 ○ テスト用端末がログインできないプロダクトがあり 当日慌てて対応した 大きなトラブルはほとんどなかった
  • 35. Copyright © GREE, Inc. All Rights Reserved. なぜ一年で数千台規模を移行できたのか ● 普通に PDCA 回した ○ 最初の移行ミスでプロジェクト並行する問題が把握できた ○ 事前にやる作業や修正を次の移行プロダクトに共有した ○ 負荷予測の精度も移行を経るごとに高くなった ● 円滑なコミュニケーション ○ PHPバージョンアップした時からの信頼関係 ○ 相互に仕組みを理解しているため話が早く 問題を早く検知しやすい ■ 認識齟齬などに問題も少なかった
  • 36. Copyright © GREE, Inc. All Rights Reserved. 今後のチャレンジ ● PHP7 on Xenial ○ 一部サービスでは導入を開始 ■ memcached への connection 数が改善 ■ cpu 負荷も半分程度に ● HTTP2 を使った通信の高速化 ● オンプレに残ったサービスのハイブリッドクラウド
  • 37. Copyright © GREE, Inc. All Rights Reserved. まとめ ● 強靭な意志でレガシーから抜け出せる ● 勝ち得たチームワークは次のチャレンジの大きな財産! ● パフォーマンスの改善はその副産物
  • 38. Copyright © GREE, Inc. All Rights Reserved.Copyright © GREE, Inc. All Rights Reserved. 技術負債は 人的資源に変える 大きなチャンス!