Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

02 Proprietary 01 ビジネスdアプリとは 02 内製開発の工夫 03 サーバレスのメリット 04 サーバレスの注意点 05 アーキテクチャー概要 06 配信に関するアーキテクチャー 07 行動に関するアーキテクチャー 08 CI/CD 09 まとめ アジェンダ

Slide 3

Slide 3 text

03 Proprietary Google Cloud Next Tokyo ’24 西谷 智広 NTTコミュニケーションズ㈱ コミュニケーション& アプリケーションサービス部 担当課長 技術士(情報工学)

Slide 4

Slide 4 text

04 Proprietary Google Cloud Next Tokyo ’24 現在の担当 ・内製開発推進 ・モバイルアプリ開発推進 ・クラウド活用推進 趣味 ・パイプオルガン、数学 著作 ・P2P 教科書 (共著)

Slide 5

Slide 5 text

05 Proprietary Google Cloud Next Tokyo ’24 01 ビジネスdアプリとは  スマートフォンならではの さまざまなビジネスコンテンツや サービスが発見できる、 ドコモビジネスのポータルアプリ

Slide 6

Slide 6 text

06 Proprietary Google Cloud Next Tokyo ’24 01 ビジネスdアプリとは 利用は無料 ・仕事に役に立つオリジナルコンテンツ ・ニュース、クーポン ・ドコモビジネスのサービスをお試し利用(無料) Android iPhone

Slide 7

Slide 7 text

07 Google Cloud Next Tokyo ’24 ビジネスdアプリを 3 か月で開発完了 モバイルアプリを 3 か月で開発してほしい、 そのような依頼があったら どうやって開発しますか?

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

09 Proprietary Google Cloud Next Tokyo ’24 03 サーバレスのメリット 構築作業の抑制 最小限の操作で、冗長化や オートスケールを実現 EOL 検討が不要 Google Cloud のサービスが継続する 前提で EOL 検討が不要 運用監視の簡易化 Google Cloud が運用監視、 障害が発生しても、自動復旧 セキュリティ対策の簡易化 セキュリティ対策は Google Cloud にお 任せ

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

011 Proprietary Google Cloud Next Tokyo ’24 04 サーバレスの注意点 ・書籍などの情報が少ないので、 可能であれば Google Cloud 公認の 研修受講、資格取得がおすすめ。 ・チームメンバ全員が Professional Cloud Architect Professional Data Engineer 両方の取得を目標

Slide 12

Slide 12 text

012 Proprietary Google Cloud Next Tokyo ’24 富田 俊佑 NTTコミュニケーションズ㈱ コミュニケーション& アプリケーションサービス部

Slide 13

Slide 13 text

013 Proprietary Google Cloud Next Tokyo ’24 現在の担当 ・ビジネス dアプリのスクラムマスター ・ビジネス dアプリの開発リーダー 趣味 ・マラソン 保有 Google 資格

Slide 14

Slide 14 text

014 Proprietary Google Cloud Next Tokyo ’24 05 アーキテクチャー概要 Spanner Firestore Cloud Storage App Engine Cloud Run BigQuery Dataflow Cloud CDN Push 通知 行動データ 画像データ テキスト

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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 に登録する必要がある

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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 した場合

Slide 25

Slide 25 text

025 Proprietary Google Cloud Next Tokyo ’24 09 まとめ ● サーバレス/フルマネージドサービスを利用することで 開発に専念することができる ● CI/CD 環境を構築することでスムーズに開発・検証を繰り返すこと ができる ● ビジネスdアプリをダウンロードいただきぜひご利用ください Android iOS

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

Thank you 027 Proprietary