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

サーバレスでモバイルアプリ開発! NTTコム「ビジネスdアプリ」のアーキテクチャ / The ...

サーバレスでモバイルアプリ開発! NTTコム「ビジネスdアプリ」のアーキテクチャ / The architecture of business d app

2024年8月2日にGoogle Cloud Next Tokyo '24で発表した『サーバレスでモバイルアプリ開発! NTTコム「ビジネスdアプリ」のアーキテクチャ』の講演資料です。講演詳細および講演動画についてはこちらをご覧ください。 https://cloudonair.withgoogle.com/events/next-tokyo-24?talk=d2-app-07

NTT Communications

September 09, 2024
Tweet

More Decks by NTT Communications

Other Decks in Technology

Transcript

  1. 02 Proprietary 01 ビジネスdアプリとは 02 内製開発の工夫 03 サーバレスのメリット 04 サーバレスの注意点

    05 アーキテクチャー概要 06 配信に関するアーキテクチャー 07 行動に関するアーキテクチャー 08 CI/CD 09 まとめ アジェンダ
  2. 04 Proprietary Google Cloud Next Tokyo ’24 現在の担当 ・内製開発推進 ・モバイルアプリ開発推進

    ・クラウド活用推進 趣味 ・パイプオルガン、数学 著作 ・P2P 教科書 (共著)
  3. 05 Proprietary Google Cloud Next Tokyo ’24 01 ビジネスdアプリとは  スマートフォンならではの

    さまざまなビジネスコンテンツや サービスが発見できる、 ドコモビジネスのポータルアプリ
  4. 06 Proprietary Google Cloud Next Tokyo ’24 01 ビジネスdアプリとは 利用は無料

    ・仕事に役に立つオリジナルコンテンツ ・ニュース、クーポン ・ドコモビジネスのサービスをお試し利用(無料) Android iPhone
  5. 07 Google Cloud Next Tokyo ’24 ビジネスdアプリを 3 か月で開発完了 モバイルアプリを

    3 か月で開発してほしい、 そのような依頼があったら どうやって開発しますか?
  6. 08 Proprietary Google Cloud Next Tokyo ’24 02 内製開発の工夫 開発言語の統一

    フロントエンドは React.js , Vue.js バックエンドは Node.js モバイルアプリは React Native 機能で担当割り フロントエンドから バックエンド、 モバイルアプリまで、 機能で担当割り当て。 適宜ローテーション サーバレスを採用 プログラム開発に担当者が 専念できるように Google Cloud のサーバレス、 フルマネジメントサービス のみ採用。
  7. 09 Proprietary Google Cloud Next Tokyo ’24 03 サーバレスのメリット 構築作業の抑制

    最小限の操作で、冗長化や オートスケールを実現 EOL 検討が不要 Google Cloud のサービスが継続する 前提で EOL 検討が不要 運用監視の簡易化 Google Cloud が運用監視、 障害が発生しても、自動復旧 セキュリティ対策の簡易化 セキュリティ対策は Google Cloud にお 任せ
  8. 010 Proprietary Google Cloud Next Tokyo ’24 04 サーバレスの注意点 デプロイ作業の自動化

    GitHub Actions 等を活用して デプロイ作業を自動化 リリースノートの定期的確認 特に破壊的アップデートの確認が 必要 End-End 監視の実施 お客様の動作に合わせた End-End 監視を実施 セキュリティ監視の実施 ログのチェック等 で 脅威と脆弱性を集中管理
  9. 011 Proprietary Google Cloud Next Tokyo ’24 04 サーバレスの注意点 ・書籍などの情報が少ないので、

    可能であれば Google Cloud 公認の 研修受講、資格取得がおすすめ。 ・チームメンバ全員が Professional Cloud Architect Professional Data Engineer 両方の取得を目標
  10. 013 Proprietary Google Cloud Next Tokyo ’24 現在の担当 ・ビジネス dアプリのスクラムマスター

    ・ビジネス dアプリの開発リーダー 趣味 ・マラソン 保有 Google 資格
  11. 014 Proprietary Google Cloud Next Tokyo ’24 05 アーキテクチャー概要 Spanner

    Firestore Cloud Storage App Engine Cloud Run BigQuery Dataflow Cloud CDN Push 通知 行動データ 画像データ テキスト
  12. 015 Proprietary Google Cloud Next Tokyo ’24 06 配信に関するアーキテクチャー Spanner

    Firestore Cloud Storage App Engine Cloud Run BigQuery Dataflow Cloud CDN Push 通知 行動データ 画像データ テキスト
  13. 016 Proprietary Google Cloud Next Tokyo ’24 Google App Engine

    PaaS サービス 開発言語のマイナーバージョン の自動アップデートなどプラット フォームのメンテナンスを抑制 でき、開発者はコーディングに 専念できる 手軽なオートスケール設 定 yaml ファイルで実行するインス タンス数を手軽に設定でき、ス ケールに合わせてアーキテク チャーを大規模に変更する必 要がない 安定したサービス 長年安定して提供されてきた 成熟したサービスであるため、 安心して利用できる
  14. 017 Proprietary Google Cloud Next Tokyo ’24 Cloud CDN アプリ

    Cloud Storage 画像データ取得リクエスト Cloud CDN Load balancing アプリ Cloud Storage 画像データ取得リクエスト Cloud CDN Load balancing キャッシュレスポンス 画像データレスポンス キャッシュデータ がない場合 キャッシュデータが ある場合 ユーザー数が増えるにつれ画像データのダウンロードコストが増加 Cloud CDN によりダウンロードコストを削減
  15. 018 Proprietary Google Cloud Next Tokyo ’24 Spanner / Firestore

    Spanner • 水平スケーリング可能な RDBMS • メンテナンス時間なしで運用 • 複雑なクエリを用いる場合 に利用 Firestore • 水平スケーリング可能な NoSQL • メンテナンス時間なしで運用 • スキーマ変更が頻繁に行わ れデータを利用する場合に 利用
  16. 019 Proprietary Google Cloud Next Tokyo ’24 07 行動に関するアーキテクチャー Spanner

    Firestore Cloud Storage App Engine Cloud Run BigQuery Dataflow Cloud CDN Push通知 行動データ 画像データ テキスト
  17. 020 Proprietary Google Cloud Next Tokyo ’24 Dataflow • Google

    Cloud が提供するフルマネージドの ETL サービス • Spanner に保存されている情報を BigQuery に同期させ BigQuery に保存されている行動データを組み合わせて分析が可 能になった GAE Spanner BigQuery モバイルアプリ Dataflow Spanner へのデータ 書き込みをトリガーに BigQuery へ書き込み 行動データ送信
  18. 021 Proprietary Google Cloud Next Tokyo ’24 Dataflow Spanner change

    streams to BigQuery テンプレート • Dataflow 適用後の Spanner に書き込まれた データを BigQuery へ書き 込み Cloud Spanner to Text Files on Cloud Storage テンプレート • Spanner のデータを csv ファイ ルで Cloud Storage に出力 • 出力した csv ファイルを bq load コマンドで Spanner へ 書き込み テンプレート利用することで容易に Spanner からデータを読み取り、 BigQuery に書き込むことができる ただし Spanner と BigQuery のデータを完全に同期させる場合は Dataflow 適用前のデータを手動で BigQuery に登録する必要がある
  19. 022 Proprietary Google Cloud Next Tokyo ’24 08 CI/CD Spanner

    Firestore Cloud Storage App Engine Cloud Run BigQuery Dataflow Cloud CDN Push 通知 行動データ 画像データ テキスト
  20. 023 Proprietary Google Cloud Next Tokyo ’24 CI / CD

    手作業で 30 分かけて行っていた Android/iOS アプリの ビルド・配布作業を自動化することで検証時間を大幅に削減 GAE 自動デプロイ GitHub ソースコードを Push GitHub Actions 開発者 サーバのソースコードを Push 場合 • Jest テスト実施 & ビルド • GitHub ホステッドランナー では 無料実行上限枠を超えるため Compute Engine 上のセルフホステッドランナーで実 行
  21. 024 Proprietary Google Cloud Next Tokyo ’24 CI / CD

    Android 自動配布 Xcode Cloud TestFlight 自動配布 iOS 端末 開発者 GitHub ソースコードを Push Android 端末 iOS GitHub Actions • Jest テスト実施 & ビルド • Compute Engine 上のセルフホステッドランナーで 実行 Jest テスト実施 & ビルド モバイルアプリのソースコードを Push した場合
  22. 025 Proprietary Google Cloud Next Tokyo ’24 09 まとめ • サーバレス/フルマネージドサービスを利用することで

    開発に専念することができる • CI/CD 環境を構築することでスムーズに開発・検証を繰り返すこと ができる • ビジネスdアプリをダウンロードいただきぜひご利用ください Android iOS
  23. 026 Proprietary Google Cloud Next Tokyo ’24 Ask the Speaker

    にぜひお越しください セッションに関する質問にスピーカーが直接お答えします! Ask the Speaker G213 G214 G216 G217 2F