Upgrade to Pro — share decks privately, control downloads, hide ads and more …

基盤チームとしての挑戦と社内コミュニティで得た学び【DeNA TechCon 2021 Winter】/techcon2021 winter_6

DeNA_Tech
December 27, 2021

基盤チームとしての挑戦と社内コミュニティで得た学び【DeNA TechCon 2021 Winter】/techcon2021 winter_6

ゲームサーバー基盤チームとして、大規模トラフィックを捌く技術的なチャレンジだけでなく、外部の開発会社との連携など様々なことを経験してきました。
そんな環境でこれまでチャレンジしてきたこと、そして成果を出すために工夫してきたことをお話します。

また、同期との輪読会の運営や社内コミュニティ、勉強会への参加など横断的な活動についても紹介します。

DeNA_Tech

December 27, 2021
Tweet

More Decks by DeNA_Tech

Other Decks in Technology

Transcript

  1. 自己紹介 海老沼 健一 - 2020年新卒 - ゲーム事業本部ディベロップメント統括部技術部第6グループ - 趣味はテニスと映画 -

    学生時代 - 創業期のスタートアップ数社で幅広く経験を積む - 現在 - サーバーサイドエンジニア - 社内ゲームサーバー基盤 Takasho の開発/運用 @ebkn
 @ebkn12

  2. ゲームサーバー基盤 Takasho とは - DeNA 内製のゲームサーバー基盤 - Web サーバーフレームワーク -

    複数タイトル共通で必要な機能セット - コード自動生成ツール - インフラ構築ツール - などを提供 - 内製 MBaaS (Mobile Backend as a Service) と連携 - アカウント管理、課金、Push通知など
  3. Takasho を支える技術 - Go - Protocol Buffers + gRPC -

    Kubernetes (GKE) - Cloud Spanner - Terraform - CircleCI, ArgoCD ※This slide is not affiliated with or otherwise sponsored by CNCF
  4. Takasho を支える技術 - 詳しく知りたい方は是非こちらも御覧ください - Google INSIDE Games & Apps

    - https://cloudonair.withgoogle.com/events/inside-games-and-a pps?talk=20211005-1 - DeNA Engineer’s Blog - https://engineer.dena.com/posts/2021.10/takasho-overview/
  5. Takasho ができた経緯 - 前の基盤が抱えていた課題 - 全タイトルで共通のコード → 仕様変更が難しい - 全タイトルで1つのサーバー群

    → 障害の影響が全タイトルに - 安定稼働しており、一定成功は収めている - Takasho でのアプローチ - web サーバーフレームワークを提供し、     共通機能を利用しつつ独自機能追加も容易に - マネージドサービスを駆使してコストを最適化
  6. Takasho ができた経緯 - 前の基盤が抱えていた課題 - 全タイトルで共通のコード → 仕様変更が難しい - 全タイトルで1つのサーバー群

    → 障害の影響が全タイトルに - 安定稼働しており、一定成功は収めている - Takasho でのアプローチ - web サーバーフレームワークを提供し、     共通機能を利用しつつ独自機能追加も容易に - マネージドサービスを駆使してコストを最適化
  7. Takasho チームがやっていること - フレームワークや各種ツールの開発 - 運用に入っている各タイトルの知見を反映 - 開発の効率化や品質向上 - 複数タイトルのゲームサーバー開発/運用

    - 各タイトルに数人ずつ担当者をつける - 外部のクライアントエンジニアさんやQAなどとやり取り - 機能開発、バグ修正、障害対応 - フレームワークを利用しているタイトルのサポート
  8. Takasho チームがやっていること - フレームワークや各種ツールの開発 - 運用に入っている各タイトルの知見を反映 - 開発の効率化や品質向上 - 複数タイトルのゲームサーバー開発/運用

    - 各タイトルに数人ずつ担当がつく - 外部のクライアントエンジニアさんやQAなどとやり取り - 機能開発、バグ修正、障害対応 - フレームワークを利用しているタイトルのサポート - 開発/運用の知見を共有 - フレームワークの導入/更新
  9. Takasho チームに求められること - タイトルチームがゲームの面白さを作る部分に集中できるようにする - どのタイトルでも必要な機能を集約して開発 - クライアント側の開発をできるだけサーバー側に依存させない - より多くの人に継続的にゲームを遊んでもらえるようにする

    - 大規模リクエストを難なく捌けるように - 高い可用性と安定した運用 - 開発/運用のコストを下げる - サーバー,インフラのアーキテクチャを最適化 - クライアントチームの工数削減 - Takasho チームの工数削減
  10. タイトル大臣の仕事 - API設計 + すり合わせ - 機能提供スケジュールの相談 - 実装、テスト -

    サーバー、SDK提供 - 実装のサポート - 適切なクライアント実装になっているか確認 - 不具合対応
  11. その他の社内技術コミュニティ - 各言語の勉強会 - Android Tuesday, Swift Wednesday, Ruby Thursday,

    Go Friday, Web Frontend 勉強会 - 社内テックトーク - Tech Talk - GE TechTalk (ゲーム事業本部、ソリューション事業本部) - 社内XR事業情報共有会 - その他チームや事業部ごとなど、 多くの勉強会/コミュニティが運営されている
  12. 引用 各種アイコン、ロゴ、イメージ画像 - https://cncf-branding.netlify.app/projects/grpc/ - https://cncf-branding.netlify.app/projects/argo/ - https://go.dev/blog/go-brand - https://cloud.google.com/icons

    - https://www.hashicorp.com/brand#terraform - https://www.irasutoya.com/p/faq.html 書籍 - https://www.oreilly.co.jp/books/9784873118703/ - https://www.oreilly.co.jp/books/9784873118642/ - https://www.oreilly.com/library/view/ fundamentals-of-software/9781492043447/