Soumettre la recherche
Mettre en ligne
新規事業「Bill One」による Google Cloud 活用術
•
0 j'aime
•
621 vues
Mao Ohnishi
Suivre
Google cloud day ’21
Lire moins
Lire la suite
Ingénierie
Affichage du diaporama
Signaler
Partager
Affichage du diaporama
Signaler
Partager
1 sur 34
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
新規事業を支える文化と加速させる技術~ devops / GCP / DDD ~
新規事業を支える文化と加速させる技術~ devops / GCP / DDD ~
Mao Ohnishi
アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18
Yusuke Suzuki
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
Akinori SAKATA
LayerXのQAチームで目指したい動き方 (社内資料)
LayerXのQAチームで目指したい動き方 (社内資料)
mosa siru
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
Hiroyuki Ohnaka
Recommandé
新規事業を支える文化と加速させる技術~ devops / GCP / DDD ~
新規事業を支える文化と加速させる技術~ devops / GCP / DDD ~
Mao Ohnishi
アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18
Yusuke Suzuki
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
JaSST Tokyo 2022 アジャイルソフトウェア開発への統計的品質管理の応用
Akinori SAKATA
LayerXのQAチームで目指したい動き方 (社内資料)
LayerXのQAチームで目指したい動き方 (社内資料)
mosa siru
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
Hiroyuki Ohnaka
クラウドでも非機能要求グレードは必要だよね
クラウドでも非機能要求グレードは必要だよね
YoshioSawada
マイクロサービス化に向けて
マイクロサービス化に向けて
HIRA
AWSの課金体系
AWSの課金体系
Amazon Web Services Japan
アジャイル開発とメトリクス
アジャイル開発とメトリクス
Rakuten Group, Inc.
私がなぜZscalerに?
私がなぜZscalerに?
Takayoshi Takaoka
なんちゃってアジャイルをアジャイルにした話 ~ライトニングトーク版~ #xpjug
なんちゃってアジャイルをアジャイルにした話 ~ライトニングトーク版~ #xpjug
満徳 関
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
事業成長にコミットするエンジニア組織への道のり
事業成長にコミットするエンジニア組織への道のり
Recruit Lifestyle Co., Ltd.
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
takezoe
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについて
cyberagent
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
Recruit Technologies
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
Hironori Washizaki
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
kazuki kumagai
JAZUG12周年 俺の Azure Cosmos DB
JAZUG12周年 俺の Azure Cosmos DB
Daiyu Hatakeyama
はじめての datadog
はじめての datadog
Naoya Nakazawa
ここが良かったDatadog
ここが良かったDatadog
tyamane
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
Kouji YAMADA
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
Best Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWS
Amazon Web Services Japan
Google Cloud でアプリケーションを動かす.pdf
Google Cloud でアプリケーションを動かす.pdf
Google Cloud Platform - Japan
サーバーレスで作るスマホアプリバックエンド
サーバーレスで作るスマホアプリバックエンド
Tsukasa Kato
Contenu connexe
Tendances
クラウドでも非機能要求グレードは必要だよね
クラウドでも非機能要求グレードは必要だよね
YoshioSawada
マイクロサービス化に向けて
マイクロサービス化に向けて
HIRA
AWSの課金体系
AWSの課金体系
Amazon Web Services Japan
アジャイル開発とメトリクス
アジャイル開発とメトリクス
Rakuten Group, Inc.
私がなぜZscalerに?
私がなぜZscalerに?
Takayoshi Takaoka
なんちゃってアジャイルをアジャイルにした話 ~ライトニングトーク版~ #xpjug
なんちゃってアジャイルをアジャイルにした話 ~ライトニングトーク版~ #xpjug
満徳 関
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
事業成長にコミットするエンジニア組織への道のり
事業成長にコミットするエンジニア組織への道のり
Recruit Lifestyle Co., Ltd.
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
takezoe
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについて
cyberagent
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
Recruit Technologies
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
Hironori Washizaki
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
kazuki kumagai
JAZUG12周年 俺の Azure Cosmos DB
JAZUG12周年 俺の Azure Cosmos DB
Daiyu Hatakeyama
はじめての datadog
はじめての datadog
Naoya Nakazawa
ここが良かったDatadog
ここが良かったDatadog
tyamane
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
Kouji YAMADA
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
Best Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWS
Amazon Web Services Japan
Tendances
(20)
クラウドでも非機能要求グレードは必要だよね
クラウドでも非機能要求グレードは必要だよね
マイクロサービス化に向けて
マイクロサービス化に向けて
AWSの課金体系
AWSの課金体系
アジャイル開発とメトリクス
アジャイル開発とメトリクス
私がなぜZscalerに?
私がなぜZscalerに?
なんちゃってアジャイルをアジャイルにした話 ~ライトニングトーク版~ #xpjug
なんちゃってアジャイルをアジャイルにした話 ~ライトニングトーク版~ #xpjug
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
事業成長にコミットするエンジニア組織への道のり
事業成長にコミットするエンジニア組織への道のり
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについて
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
JAZUG12周年 俺の Azure Cosmos DB
JAZUG12周年 俺の Azure Cosmos DB
はじめての datadog
はじめての datadog
ここが良かったDatadog
ここが良かったDatadog
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Best Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWS
Similaire à 新規事業「Bill One」による Google Cloud 活用術
Google Cloud でアプリケーションを動かす.pdf
Google Cloud でアプリケーションを動かす.pdf
Google Cloud Platform - Japan
サーバーレスで作るスマホアプリバックエンド
サーバーレスで作るスマホアプリバックエンド
Tsukasa Kato
What's new of XPages in 2015 and beyond
What's new of XPages in 2015 and beyond
Atsushi Sato
次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説
kumo2010
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
Hideaki Tokida
甘酸っぱいGCPレガシーApp Engine python2からCloud Runへの移行の勘所
甘酸っぱいGCPレガシーApp Engine python2からCloud Runへの移行の勘所
Ryusuke Kimura
弊社IoT事例とAlexaSkil開発レシピ
弊社IoT事例とAlexaSkil開発レシピ
Takashi Kozu
Microsoft open tech night 2020 feb18
Microsoft open tech night 2020 feb18
Masatomo Ito
クラウド+コンテナで作る簡単Webアプリケーション
クラウド+コンテナで作る簡単Webアプリケーション
Tsukasa Kato
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
Google Cloud Platform - Japan
Introduction to NetOpsCoding
Introduction to NetOpsCoding
Taiji Tsuchiya
XDev2010 WindowsAzure
XDev2010 WindowsAzure
Shinichiro Isago
What’s new in cloud run 2021 後期
What’s new in cloud run 2021 後期
Google Cloud Platform - Japan
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
真吾 吉田
今更ながらの「マイクロサービス」
今更ながらの「マイクロサービス」
Hideaki Tokida
SpringベースのCloud Native Application
SpringベースのCloud Native Application
土岐 孝平
ビットバンクにおける少人数で支えるインフラチームの戦略
ビットバンクにおける少人数で支えるインフラチームの戦略
bitbank, Inc. Tokyo, Japan
Circle of Code with Cloud Foundry
Circle of Code with Cloud Foundry
Tomohiro Ichimura
[Cloud OnAir] Google Cloud Next '18 in Tokyo サーバレス特集 2018年9月27日 放送
[Cloud OnAir] Google Cloud Next '18 in Tokyo サーバレス特集 2018年9月27日 放送
Google Cloud Platform - Japan
Bluemixの概要とアプリの作り方
Bluemixの概要とアプリの作り方
BMXUG
Similaire à 新規事業「Bill One」による Google Cloud 活用術
(20)
Google Cloud でアプリケーションを動かす.pdf
Google Cloud でアプリケーションを動かす.pdf
サーバーレスで作るスマホアプリバックエンド
サーバーレスで作るスマホアプリバックエンド
What's new of XPages in 2015 and beyond
What's new of XPages in 2015 and beyond
次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
甘酸っぱいGCPレガシーApp Engine python2からCloud Runへの移行の勘所
甘酸っぱいGCPレガシーApp Engine python2からCloud Runへの移行の勘所
弊社IoT事例とAlexaSkil開発レシピ
弊社IoT事例とAlexaSkil開発レシピ
Microsoft open tech night 2020 feb18
Microsoft open tech night 2020 feb18
クラウド+コンテナで作る簡単Webアプリケーション
クラウド+コンテナで作る簡単Webアプリケーション
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
Introduction to NetOpsCoding
Introduction to NetOpsCoding
XDev2010 WindowsAzure
XDev2010 WindowsAzure
What’s new in cloud run 2021 後期
What’s new in cloud run 2021 後期
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
今更ながらの「マイクロサービス」
今更ながらの「マイクロサービス」
SpringベースのCloud Native Application
SpringベースのCloud Native Application
ビットバンクにおける少人数で支えるインフラチームの戦略
ビットバンクにおける少人数で支えるインフラチームの戦略
Circle of Code with Cloud Foundry
Circle of Code with Cloud Foundry
[Cloud OnAir] Google Cloud Next '18 in Tokyo サーバレス特集 2018年9月27日 放送
[Cloud OnAir] Google Cloud Next '18 in Tokyo サーバレス特集 2018年9月27日 放送
Bluemixの概要とアプリの作り方
Bluemixの概要とアプリの作り方
Plus de Mao Ohnishi
リモート拠点を立ち上げる楽しさと苦労
リモート拠点を立ち上げる楽しさと苦労
Mao Ohnishi
新規事業を加速させる技術
新規事業を加速させる技術
Mao Ohnishi
東京本社よりも地方開発拠点を活性化させるコツ!!!!
東京本社よりも地方開発拠点を活性化させるコツ!!!!
Mao Ohnishi
新メンバーが多いチームにおけるプロジェクトマネジメントのコツ(苦労話)
新メンバーが多いチームにおけるプロジェクトマネジメントのコツ(苦労話)
Mao Ohnishi
結果を出すチームビルディング術
結果を出すチームビルディング術
Mao Ohnishi
20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発
Mao Ohnishi
オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版
Mao Ohnishi
ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718
Mao Ohnishi
20150616 dev love発表資料
20150616 dev love発表資料
Mao Ohnishi
Plus de Mao Ohnishi
(9)
リモート拠点を立ち上げる楽しさと苦労
リモート拠点を立ち上げる楽しさと苦労
新規事業を加速させる技術
新規事業を加速させる技術
東京本社よりも地方開発拠点を活性化させるコツ!!!!
東京本社よりも地方開発拠点を活性化させるコツ!!!!
新メンバーが多いチームにおけるプロジェクトマネジメントのコツ(苦労話)
新メンバーが多いチームにおけるプロジェクトマネジメントのコツ(苦労話)
結果を出すチームビルディング術
結果を出すチームビルディング術
20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発
オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版
ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718
20150616 dev love発表資料
20150616 dev love発表資料
新規事業「Bill One」による Google Cloud 活用術
1.
新規事業「Bill One」による Google Cloud
活用術 大西 真央 Sansan株式会社 Bill One 事業部 プロダクト開発責任者
2.
自己紹介 ● 大西 真央(@mmmmao0530) ●
Bill One 事業部 プロダクト開発責任者 ● Sansan でのキャリア ○ Sansan 事業部 ■ Web アプリケーションエンジニア ■ 関西支店立ち上げ ■ エンジニアリングマネージャー ○ 新規事業開発室 ■ 新規事業のエンジニア組織立ち上げ ■ Bill One 事業立ち上げ
3.
1. Bill One
とは 2. アーキテクチャ 3. 活用術 アジェンダ
4.
Bill One とは 01
5.
6.
あらゆる請求書をオンラインで受け取る
7.
アーキテクチャ 02
8.
使用言語 ● フロントエンド:TypeScript、React ● バックエンド:Kotlin、Ktor ●
データベース:PostgresSQL
9.
利用している Google Cloud
サービス群 コンピューティング - Cloud Run - App Engine - Cloud Functions ストレージ・データベース - Cloud Storage - Cloud SQL その他 - Cloud Tasks - Cloud Build - Cloud Scheduler - Cloud Logging - Error Reporting - Secret Manager
10.
利用している Google Cloud
サービス群 コンピューティング - Cloud Run - App Engine - Cloud Functions ストレージ・データベース - Cloud Storage - Cloud SQL その他 - Cloud Tasks - Cloud Build - Cloud Scheduler - Cloud Logging - Error Reporting - Secret Manager
11.
利用している Google Cloud
サービス群 コンピューティング - Cloud Run vs App Engine - App Engine - Cloud Functions ストレージ・データベース - Cloud Storage - Cloud SQL その他 - Cloud Tasks vs Pub/Sub - Cloud Build - Cloud Scheduler - Cloud Logging - Error Reporting - Secret Manager
12.
利用している Google Cloud
サービス群 コンピューティング - Cloud Run vs App Engine - App Engine - Cloud Functions ストレージ・データベース - Cloud Storage - Cloud SQL その他 - Cloud Tasks - Cloud Build - Cloud Scheduler - Cloud Logging - Cloud Error Reporting - Secret Manager App Engine ではなく、Cloud Run を採用している理由 - 料金が安い。 - 全体的にモダンな設計になっている。 - Google Cloud 内(Cloud Run ⇔ Cloud Funtions など)での認証が標準で提供されている。 - ランタイムが自由に選べる(任意の Docker イメージを選択可能) 。
13.
利用している Google Cloud
サービス群 コンピューティング - Cloud Run - App Engine - Cloud Functions ストレージ・データベース - Cloud Storage - Cloud SQL その他 - Cloud Tasks vs Pub/Sub - Cloud Build - Cloud Scheduler - Cloud Logging - Cloud Error Reporting - Secret Manager Pub/Sub ではなく、Cloud Tasks を採用している理由 - 実運用を考えた時に、Google Cloud の画面からエラーになった Task の情報(メッセージの中身やリトライ回数)を確認できる。
14.
アーキテクチャ
15.
アーキテクチャのポイント ● サーバーレスサービスを活用することで、インフラに関わる人的コストの削減できる。 ○ デプロイ周りのコア部分は
Google Cloud で用意済。 ○ サーバー構築不要。スケールアップは容易、スケールアウトは自動。 ○ 各種ログはロギングやエラーレポートに自動連携。 ○ ビジネス拡大フェーズでも、インフラ周りに時間を取られずアプリ開発に注力可能。
16.
アーキテクチャのポイント ビジネスの本質に注力できる環境で開発する。
17.
Proprietary + Confidential 活用術 03
18.
1. 非同期処理 2. CI
/ CD 3. B2B マルチテナントにおけるストレージのバケット設計 4. ログの閲覧をシンプルに 5. ログの検索を容易に
19.
1. 非同期処理 ● 関連サービス ○
Cloud Tasks ○ Cloud Run ● やりたいこと ○ システムの密結合を排除したい。 ● 実現時のポイント ○ ドメインイベントによる非同期メッセージングを導入。 ○ ドメインイベントと関連処理を分離するために、ブローカーを導入。 ○ ドメインイベントを確実に送信するために、トランザクショナルメッセージングを導入。
20.
1. 非同期処理 ドメインイベントによる非同期メッセージングを導入 ● メイン処理と関連処理を同一のリクエストで処理せず、別々の リクエストで処理。 ●
メイン処理が終わると、メイン処理が終わったというドメインイ ベントを発行して、リクエストを終了。 ● ドメインイベントが発行されると、関連処理のリクエストを処 理。 <ドメインイベント> 請求書を受領した <関連処理> 受領メールを送る <メイン処理> 請求書を受領する
21.
1. 非同期処理 ドメインイベントと関連処理を分離するために、ブローカーの 考え方を導入 ● ドメインイベントは、どの関連処理が処理されるか把 握しない。 ●
ドメインイベントと関連処理のマッピングはブローカー という役割が担う。 <ドメインイベント> 請求書を受領した <関連処理> 受領メールを送る ブローカー 関連処理を知る必要がない ブローカーのコード例(独自実装)
22.
1. 非同期処理 ドメインイベントを確実に送信するために、トランザクショナルメッセージ ングの考え方を導入 ● Cloud
Tasks への Task 登録と DB トランザクションの相性が悪 い。 ● Task 登録は成功、DB トランザクションは失敗など、 どちらかだけ成功した場合を考慮すると複雑になる。 ● Task に登録する内容を DB に保存して、保存された内容 から Task 登録を行うという考え方 アプリケーション 請求書受領 サービス データベース 請求書 テーブル insert insert ドメインイ ベント テーブル Cloud Tasks キュー
23.
アプリケーション 1. 非同期処理 請求書受領 サービス データベース 請求書 テーブル ドメインイ ベント テーブル insert insert Cloud
Tasks キュー ブローカー Cloud Tasks キュー 請求書受領 メール送付サー ビス https https 1. 請求書受領サービスが請求書テーブルとドメインイベ ントテーブルにデータを保存。 2. 保存されたドメインイベントをアプリケーションが取得 して Task を作成。 3. ブローカーがドメインイベントに紐づく Task を作成。 1 2 3 https
24.
2. CI /
CD ● 関連サービス ○ Cloud Build ○ Secret Manager ○ Cloud Run etc ● やりたいこと ○ 機密データを簡易に管理しつつ、CI / CD を実施を自動化したい。 ● 実現時のポイント ○ master マージ後、本番環境に自動デプロイ。B2B サービスのため、トラフィック以降は任意の タイミングで実施。 ○ DB パスワードや API キーなどの機密データを管理するために、Google Cloud の Secret Manager を導入。
25.
本番環境 開発環境 Cloud Build Cloud Run Cloud
SQL Secret Maneger Cloud Build 1. push をトリガーに ビルド開始 2.ビルド・テスト(テ スト DB にアクセス) 3.master のみ デプロイ実施 5.コンテナレジストリの イメージをデプロイ(ト ラフィック移行なし) 6.トラフィック移行用コ マンドを通知 起動時に 機密データを 取得 Cloud Build 4.イメージを push 7.エンジニアがリリー ス(トラフィック移行) 2. CI / CD コンテナ レジストリ
26.
3. B2B マルチテナントにおけるストレージのバケット設計 ●
関連サービス ○ Cloud Storage ● やりたいこと ○ 他テナントに間違ってアクセスしてしまうミスを可能な限り 0 にしたい。 ○ 契約の解約時に委託データを全て削除したい。 ● 実現時のポイント ○ テナント毎にバケットを作成。 ○ バケットのユニーク性を担保するために、バケット名にドメイン名を保持。 ■ バケット名の例 : [tenant-id].bill-one.com
27.
B テナント 請求書登録 B テナント 契約開始 Cloud
Storage A テナント バケット B テナント バケット A テナント 契約開始 create create アプリケーション 請求書登録 サービス Cloud Storage Util クラス B テナントのバケットにア クセス可能とする B テナント 解約 delete 3. B2B マルチテナントにおけるストレージのバケット設計
28.
4. ログの閲覧をシンプルに ● 関連サービス ○
Cloud Logging ○ Cloud Run ● やりたいこと ○ ログをわかりやすく表示したい ● 実現時のポイント ○ Json フォーマットでログを出力する 1 つのログ出力が複数ログエントリで表示される 1 つのログ出力が 1 つのログエントリで表示する
29.
5. ログの検索を容易に ● 関連サービス ○
Cloud Logging ○ Cloud Run ● やりたいこと ○ https リクエストや非同期処理などで異なるログエントリを横断で閲覧したい。 ● 実現時のポイント ○ X-Cloud-Trace-Context ヘッダーから trace_id を取得して、 ログ出力時に trace フィールドに trace_id を出力す る(厳密には projects/[project_id]/traces/[trace_id] のフォーマットで出力)。 ○ 最初の https リクエスト処理時は、自動付与された X-Cloud-Trace-Context を利用。非同期処理する場合は、最 初の trace_id から X-Cloud-Trace-Context ヘッダー値を作成して Cloud Tasks の Task を作成する。
30.
5. ログの検索を容易に フロントエンド A
サービス B サービス Cloud Tasks X-Cloud-Trace-Context = xxxxxx/0;o=1 X-Cloud-Trace-Context = xxxxxx/xyz;o=1 X-Cloud-Trace-Context = xxxxxx/xyz;o=1 xxxxxx が trace_id になり、Cloud Logging で xxxxxx を検索すると、 リク エスト横断でログを閲覧出来る。
31.
本日のまとめ ● アーキテクチャ ○ ビジネスの本質に注力できる環境で開発する ●
実運用を通して改善してきた活用術 ○ 非同期処理 ○ CI / CD ○ B2B マルチテナントにおけるストレージのバケット設計 ○ ログの検索を容易に ○ ログの閲覧をシンプルに
32.
33.
セッション アンケートへのご回答を ぜひお願いいたします。 デスクトップでご覧の場合 セッション配信ページ右側に表示されているフォー ムよりご回答ください。 スマートフォンでご覧の場合 セッション配信ページのセッション概要の下にある フォームよりご回答ください。
34.
Thank you.
Télécharger maintenant