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

アーキテクトを目指す若手エンジニアのこれまで【DeNA TechCon 2021 Winter...

DeNA_Tech
December 27, 2021

アーキテクトを目指す若手エンジニアのこれまで【DeNA TechCon 2021 Winter】/techcon2021 winter7

エンジニアとしてどういうキャリアを積んでいきたいかが明確ではない状態でDeNAに新卒入社し、そこからアーキテクトになりたいという明確なキャリア像を持つに至った経緯や、そのキャリアの実現に向け、ゲーム基盤システム「LCX」の新規開発プロジェクトにおいて実際にどのような技術的経験を積んだのかについてお話しします。

LCX: ユーザー認証、課金、ゲーム内通貨管理など、ゲームにおける汎用的な機能を提供する基盤システム。中国を含む全世界への展開を見据えており、DeNAの中国支社であるDeNA Chinaと共同で開発を行なっている。

DeNA_Tech

December 27, 2021
Tweet

More Decks by DeNA_Tech

Other Decks in Technology

Transcript

  1. 自己紹介 - 池野直人 - サーバーサイドエンジニア - 2017年新卒入社 - 2017-2019: Anyca

    - 2019-2021: LCX - 2021-現在: 協業案件での新規開発プロジェ クト(開発チームリーダー)
  2. DNSゾーン管理 管理者用コンソール 非同期処理 LCXでの経験①: クラウドサービスを活用した開発と運用 LCXのシステム構成図 分析用データ記録 Dataflow Cloud Storage

    システム監視 Logging BigQuery APIサーバー App Engine ゲーム 管理者 Cloud Run ゲーム側 サーバー アプリ (LCX SDK) Pub/Sub DB Cloud Spanner 秘匿情報 Secret Manager Cloud IAM 権限管理 Monitoring Error Reporting 定期実行タスク Cloud Scheduler Cloud DNS Cloud Load Balancing
  3. Compute Engine LCXでの経験②: 大規模トラフィックを捌くための設計運用 DNSゾーン管理 管理者用コンソール 非同期処理 分析用データ記録 Dataflow Cloud

    Storage システム監視 Logging BigQuery APIサーバー App Engine Cloud Run Pub/Sub DB Cloud Spanner 秘匿情報 Secret Manager Cloud IAM 権限管理 Monitoring Error Reporting 定期実行タスク Cloud Scheduler Cloud DNS Cloud Load Balancing LCX 負荷試験 クライアント 負荷試験を行い ボトルネックを調 査 APIサーバーの起動 の高速化 ウォームアップ処理 効率のいいテーブル設 計・クエリ設計 時間がかかる処理の 非同期化 異変にすぐに気づける監視体 制の構築 (可視化、アラート設定)
  4. LCXでの経験③: ソフトウェアアーキテクチャ設計 - お互いの実装やクラウドサービスの 性質を気にせず並行して開発できる - 大部分のコアロジックは共通なの で、LCXとしての表向きの挙動に差 異が出づらい if(外部サーバーが応答しない場合){

    retryLater(request); } retryLater(request) retryLater(request){ // Pub/Subにqueueing } retryLater(request){ // MNSにqueueing } 共通interface GCP用実装 Alibaba用実装 共通のコアロジック Alibaba MNS Pub/Sub
  5. LCXでの経験④: 最適な設計や実装を考え抜く - 良かった事例 - 内部設計で課金管理モジュールとゲーム内通貨管理モジュールを分離 - 当初は一つの機能だと思っていたが、意外と連動しないことに気づく - ゲーム内通貨を消費したり、無償で配るような場合には、

    課金処理は関与しない - アイテムを直接課金により購入するような場合は、ゲーム内通貨の 処理は関与しない - 別機能であると考え分離 ⇨ コードの見通しが良くなり、機能改修がスムーズに
  6. 振り返ってみると - 新卒入社時に思っていたのとは真逆のことを(自ら進んで)やることに - 興味関心は仕事をするうちに明確になったり移り変わったりすることを実感 Before (新卒入社時の考え) After (LCXの特徴) ユーザーとの

    距離感 エンドユーザーに近い部分 の開発をしたい 基盤システムであり、エンド ユーザーからは遠い サービスの性 質 リアル寄りな(webで完結しな い)サービスの開発に興味が ある ゲームの裏方なので基本的に はwebで完結