SlideShare a Scribd company logo
Soumettre la recherche
Mettre en ligne
S’identifier
S’inscrire
私たちがGCPを使い始めた本当の理由
Signaler
gree_tech
Suivre
gree_tech
19 Nov 2019
•
0 j'aime
•
2,190 vues
1
sur
28
私たちがGCPを使い始めた本当の理由
19 Nov 2019
•
0 j'aime
•
2,190 vues
Télécharger maintenant
Télécharger pour lire hors ligne
Signaler
Ingénierie
「第 9 回 Google Cloud INSIDE Games & Apps」で発表された資料です。
gree_tech
Suivre
gree_tech
Recommandé
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
Google Cloud Platform - Japan
13.6K vues
•
28 diapositives
Redisの特徴と活用方法について
Yuji Otani
100.6K vues
•
65 diapositives
本当は恐ろしい分散システムの話
Kumazaki Hiroki
678.2K vues
•
70 diapositives
インフラエンジニアってなんでしたっけ(仮)
Akihiro Kuwano
102.5K vues
•
68 diapositives
Dockerからcontainerdへの移行
Kohei Tokunaga
16.3K vues
•
36 diapositives
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
145.2K vues
•
34 diapositives
Contenu connexe
Tendances
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Google Cloud Platform - Japan
5.2K vues
•
62 diapositives
WebSocketのキホン
You_Kinjoh
24K vues
•
63 diapositives
FINAL FANTASY Record Keeperのマスターデータを支える技術
dena_study
85.5K vues
•
33 diapositives
スペシャリストになるには
外道 父
12.2K vues
•
45 diapositives
DeNAのインフラ戦略 〜クラウドジャーニーの舞台裏〜 [DeNA TechCon 2019]
DeNA
24.4K vues
•
32 diapositives
コンテナ時代にインフラエンジニアは何をするのか
gree_tech
2.1K vues
•
32 diapositives
Tendances
(20)
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Google Cloud Platform - Japan
•
5.2K vues
WebSocketのキホン
You_Kinjoh
•
24K vues
FINAL FANTASY Record Keeperのマスターデータを支える技術
dena_study
•
85.5K vues
スペシャリストになるには
外道 父
•
12.2K vues
DeNAのインフラ戦略 〜クラウドジャーニーの舞台裏〜 [DeNA TechCon 2019]
DeNA
•
24.4K vues
コンテナ時代にインフラエンジニアは何をするのか
gree_tech
•
2.1K vues
DeNAの最新のマスタデータ管理システム Oyakata の全容
sairoutine
•
3.5K vues
Parser combinatorってなんなのさ
cct-inc
•
4.2K vues
インフラ野郎 Azureチーム at クラウド boost
Toru Makabe
•
5.9K vues
DeNAの大規模ライブ配信基盤を支える技術
DeNA
•
38.6K vues
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
•
139.8K vues
AWSでDockerを扱うためのベストプラクティス
Amazon Web Services Japan
•
25.1K vues
TLS, HTTP/2演習
shigeki_ohtsu
•
13K vues
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!デベロッパーネットワーク
•
41.9K vues
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
Amazon Web Services Japan
•
53.6K vues
オンラインゲームの仕組みと工夫
Yuta Imai
•
867.8K vues
10分でわかる Cilium と XDP / BPF
Shuji Yamada
•
11.6K vues
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
•
172.2K vues
Kubernetesによる機械学習基盤への挑戦
Preferred Networks
•
14.5K vues
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
•
12.8K vues
Similaire à 私たちがGCPを使い始めた本当の理由
Microsoft MVP が語る Azure 移行の勘所
Tetsuya Odashima
2.7K vues
•
71 diapositives
CEDEC 2015: Google スケールで実現する!ゲーム&分析基盤
Google Cloud Platform - Japan
2.6K vues
•
62 diapositives
現場開発者視点で答えるWindows Azure
Keiichi Hashimoto
1.7K vues
•
38 diapositives
SoftLayer最新動向と賢い利用方法
Kimihiko Kitase
3.5K vues
•
55 diapositives
わんくま東京勉強会#46 Azureセッション資料
guest628c07
715 vues
•
40 diapositives
わんくま東京勉強会#46 Azureセッション資料
Shinichiro Isago
829 vues
•
40 diapositives
Similaire à 私たちがGCPを使い始めた本当の理由
(20)
Microsoft MVP が語る Azure 移行の勘所
Tetsuya Odashima
•
2.7K vues
CEDEC 2015: Google スケールで実現する!ゲーム&分析基盤
Google Cloud Platform - Japan
•
2.6K vues
現場開発者視点で答えるWindows Azure
Keiichi Hashimoto
•
1.7K vues
SoftLayer最新動向と賢い利用方法
Kimihiko Kitase
•
3.5K vues
わんくま東京勉強会#46 Azureセッション資料
guest628c07
•
715 vues
わんくま東京勉強会#46 Azureセッション資料
Shinichiro Isago
•
829 vues
Keynote
Hiroshi Ochi
•
598 vues
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
Issei Hiraoka
•
647 vues
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
normalian
•
838 vues
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
•
341 vues
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
Toshiyuki Konparu
•
1.8K vues
GAE + Spannerで目指せ No (Uncomfortable) Ops
Miniascape
•
1.3K vues
Intalio japan special cloud workshop
Daisuke Sugai
•
724 vues
楽天エンジニアライフ
Rakuten Group, Inc.
•
4.3K vues
とあるメーカーのRedmine活用事例
agileware_jp
•
2.8K vues
甘酸っぱいGCPレガシーApp Engine python2からCloud Runへの移行の勘所
Ryusuke Kimura
•
203 vues
リクルートにおけるPaaS活用事例
Recruit Technologies
•
3.4K vues
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando
•
948 vues
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
Developers Summit
•
1.4K vues
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
DeNA
•
30.3K vues
Plus de gree_tech
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
698 vues
•
36 diapositives
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
222 vues
•
13 diapositives
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
1K vues
•
18 diapositives
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
1.8K vues
•
84 diapositives
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
587 vues
•
31 diapositives
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
gree_tech
585 vues
•
28 diapositives
Plus de gree_tech
(20)
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
•
698 vues
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
•
222 vues
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
•
1K vues
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
•
1.8K vues
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
•
587 vues
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
gree_tech
•
585 vues
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
gree_tech
•
613 vues
海外展開と負荷試験
gree_tech
•
586 vues
翻訳QAでのテスト自動化の取り組み
gree_tech
•
295 vues
組み込み開発のテストとゲーム開発のテストの違い
gree_tech
•
547 vues
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
gree_tech
•
206 vues
データエンジニアとアナリストチーム兼務になった件について
gree_tech
•
298 vues
シェアドサービスとしてのデータテクノロジー
gree_tech
•
425 vues
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
gree_tech
•
958 vues
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
gree_tech
•
1K vues
比較サイトの検索改善(SPA から SSR に変換)
gree_tech
•
664 vues
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
•
2.6K vues
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
gree_tech
•
385 vues
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
gree_tech
•
743 vues
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-
gree_tech
•
423 vues
私たちがGCPを使い始めた本当の理由
1.
私たちがGCPを 使い始めた本当 理由 2019年11月18日 堀口 真司 グリー株式会社 開発本部
インフラストラクチャ部 ディベロップメントオペレーションズグループ リードエンジニア
2.
堀口 真司 グリー株式会社 開発本部
インフラストラクチャ部 • 家庭用 普通 ゲーム( 1年) → 国内MMORPG などオンラインゲーム 開発、支援、販売(5年) → 主にアーケードゲーム基盤開発(2年) → グ リー8年目 • クラウド系やゲーム系勉強会など多数講演 • 主にインフラ 運用効率改善(データベース、クラウド系全部) • 社内で AWS 2014~ GCP 2017~ • アプリ開発・設計 お手伝い
3.
もくじ •開発開始まで 社内事情 •GCP に期待されること •結果や課題など •これから
こと 30分だと思ってたら20分だった
4.
じめに •会社 方針や組織全体 認識 で
ない こと •AWS より優れているとか、イケ てないとか、そういう比較 で な い こと
5.
• 消滅都市スピンオフ • アニメもやってたよ! •
ストーリー重視 • ターン制バトル • そこそこ 規模 ゲームで 初めて GCP
6.
OnPre GCP 2014 2019 AWS AFTERLOST 消滅都市 消滅都市0. 開発や運営メンバー
同じ。 効率よく運用することが求められた
7.
開発開始まで 社内事情
8.
VM 中心 クラウド環境
理想的な運用に なりつつあった! •Chef Cookbook によって符号化されたサーバ環境 • インフラ担当、セキュリティ担当、モニタリング担当、ゲーム開発者それぞれ チームが独立してコミットできる •CloudFormation や多数 運用ツールを使って簡略化 •マネージドサービスを多用し自動復旧や Pager 削減 •大量 メトリクスを収集して最適化や問題解決 高 化 •ゲーム開発開始から、サービスクローズまで手順化 •ゲームで ありきたりな LAMP 環境
9.
Backend DB Replica Auto Scale … commit VM
Image … DB Master Launch Admin Serverless Asset ・Pager ・Chat ・Mail ・Logging ・Monitoring DB Replica … DB Master ・Redis ・Memcache App Operator Developer Deploy build CDN LoadBalancer Serverless
10.
VM を中心とした環境 課題 •僅かな修正で
VM イメージ 作り直しと入れ替えに手間がかかりデ プロイ手法 氾濫、学習コスト増加 • Packer, Capistrano, s3 sync, Code Deploy •管理コストを抑えるために VM イメージ 共通化 • 多様性 低下、開発者 裁量低下、基盤検証コスト 増加 •スケールアウトに時間がかかる で余裕を持ったキャパシティ設計 でコスト増加 •VM を支えるため クラウドサービスへ 依存
11.
GCP に期待されること
12.
•ゲームで ない別件で 柔軟性とス ピード感重視で
GAE と GKE を選択し た •雑ながらも結果的に上手くいき、ゲー ムで 活用も視野に いった •ビルドフローやモニタリング、データ分 析まで一通りできた • VM 時代 課題 ほとんどない • 2018/2月時点 人気手法とりいれた • App Engine (Go) 2000 req/sec ~ • Kubernetes Engine 1000 req/sec ~
13.
Kubernetes cluster GKE Dashboard Ingress HTTPS GKE Support GKE Channel GKE Redis GKE Web GKE Certificate Manager Cloud
DNS reality.wrightflyer.net Identity Aware Proxy GKE Jenkins GKE Web-stg GKE Collab GKE Comment GKE Video GKE Comment Monitor GKE Comment Summarizer GKE PHPMyAdmin User Cloud SQL Streaming Cloud Datastore CloudFront Lambda App Engine GKE ワークロード 40種類ぐらい。 200 Pods ~。 動画配信・コミュニティプラットフォームな で ゲームより だいぶ複雑なも を運用して慣れてきた。
14.
ゲームでもコンテナを使いたかった •VM イメージ構築 期待通りに動作していたし、既存
手法でも大き な不満 なかった •VM で Immutable を目指すとスピード感が落ちる。どちらか トレー ドオフになりがち •インフラ部が VM イメージを管理するより 、開発チームに任せて裁 量と責任を寄せたい。でもノウハウ 共有したい •AFTERLOST 消滅都市案件で 想定規模も控えめで、開発チーム も前向きに GKE を検討
15.
Kubernetes Engine で運用したかった •Kubernetes
を運用したいわけで ない • Kubernetes が問題を起こしたときに対処しにくい(できない) • よってマネージド Kubernetes 以外ありえない。独自 CRD も消極的 • Google Origin だし GKE 相性良さそうな気がした • svc 仕様変更で iptables が壊れたり、 ingress-gce バグ踏んだりしたけど。 •Compute Engine 利用 避けたかった • VM イメージ 管理が増える 暗い未来が待っている • VM に SSH して運用できるようにすると、考えなけれ いけないことが膨大 になる
16.
と いえ、劇的にアーキテクチャを変えたい というわけで なかった •ガチャとかあるし、(新規事業に比べて)売り上げ規模
割合 大き いし、保守コスト かけたくないし。 •AppEngine や Spanner 検討せず。 •他 マネージドサービスもありふれたも を利用 • RDS → CloudSQL (MySQL) • CloudWatch → Stackdriver • S3 → CloudStorage • Lambda → Functions • BQ 使わず、慣れた内製ツール(Kinesis EMR)を利用 • 開発チーム側がログやテーブルを設計し、クエリも打つため
17.
かなり大きい運用負担になる 構築、運用 手間 オーバーヘッド費用 地域ごと 負荷
波 ※実際 サービス地域と 異なります 2days、日本を除く
18.
課題や結果など ここから tips など
19.
docker コンテナ化 期待通り VM Apache PHP Ubuntu Monitoring Application VM Monitoring Application Middleware any
OS anything… VM で OS や ミドルウェア イ ンフラ部で 対応 コンテナで OS やミドルウェアを開 発チームで自由に 選べる。 新しい開発言語や OS など積極的に 取り入れることが でき、インフラ 負 担も減らせる。 VM Image
20.
API Container EngineApp afterlost.wfs.games Cloud DNS HTTPS-Ingress Cloud
Load Balancing Certificate Manager Container Something Logging Alert Monitoring Batch Container Engine Admin Container Engine Admin Cloud IAP Developer Customer Service User-1 Cloud SQL Notify Cloud Pub/Sub Stg-API Container Engine Stg-Admin Container Engine Stg-Admi n Cloud IAP To-slack Cloud Functions Asset Cloud Storage Kubernetes cluster production1 Kubernetes cluster monitoring HTTPS-Ingress Cloud Load Balancing Grafana Container Engine Grafana Cloud IAP Ops Stackdriver Prometheus Container PagerDuty Slack Kinesis User-N Cloud SQL Masterdata Container Registory
21.
東京リージョン み運用 手抜きで ない 遅い地域でも
300ms 程度
22.
DNS 問題 起こらなかった Pod API dnsmasq fluentd database.afterlost.wfs.games. 最後
ドットもちゃんとつけて リゾルバ search suffix を回避。 GKE 環境 ndots が 5 で高め。 念 ため sidecar IPv4 が っきりしているなら AAAA レコード 引かない。 (CloudSQL VPC IP 不変らしい)
23.
CloudSQL リリース初日に方針変更 Cloud SQL Cloud SQL Cloud SQL Cloud SQL master failover replica-1 replica-N Behind Replication スレッド
一つ innodb_flush_log_at_trx_commit = 1 更新系性能がスケールしにくい Cloud SQL Cloud SQLmaster failover Cloud SQL Cloud SQLmaster failover Cloud SQL Cloud SQLmaster failover replica による分散に頼らず 水平・垂直分割でし ぐ。 Behind も気にせずアプリも開発しやすい 運用 ちょっとめんどう。
24.
Production 環境 Kustomize
廃止 base production QA-1 Dev-1 Dev-N real テンプレ化できるほど 単純で なかった。 運用事故を防ぐためにも 専用に管理 helm 化や json 風 .js を nodejs に通すやり方などやってみ たけど、なるべく raw に近い Kustomize が使いやすかった。 GKE コンソールで編集もできるし。
25.
よかった • スケジュール通り • 開発チーム
Kubernetes 理解 度が高かった • 海外レイテンシが良かった • 過去 GCP 経験 活かせた • CI/CD 環境もバッチリできた 改善したい • 情報 共有が少なかった • DNS が弱かった • Stackdriver ログ代が高かった • CloudSQL 負荷が予想以上だった • サービスアカウントが乱立してた • 固定 IP 必須と相性が悪かった • Request/Limit 精査してなかった • 特定 タイミングに Pod 増やしたかった • ノードが減りにくかった • チャットボットが居なかった リリース直後 反省会など 意見
26.
これから こと
27.
多様な選択肢 • 分析 BQ、
CDN に CF(+Lambda)と Akamai 、 GKE から DynamoDB などハイブリッド化 進んでます •開発チームやみんな スキル、趣向などを取り入れて自由様々にえ らんでます • 今 Spanner へ 感度が大変高くなっており、社内勉強会なども積極的に 開催されてます
28.
• インフラ部で 自社ゲームだけで なくグループ・関連企業全体
運 用を行っています。たくさんプロ ジェクト・案件あります • 規模も様々で、 Cloud Run で済 むも から数千vCPUクラスま で! • GCP を採用した裏 理由も聞けます ご清聴ありがとうございました