Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Blog: k-miyake.github.io/blog/
Twitter: @kazuyukimiyake
Microsoft事例サイトにも掲載中
共 有
デジタルデータを安全に する環境をアウトソーシング
する
不正なアクセス
第三者なりすまし・傍受不可
抜群の使いやすさ
直感的に使える「見える」サービス
IMAGE WORKS
管 理
送受信
配 布
収 集
インターネット環境のみで利...
PoC要求整理 製品化 機能拡大
モバイル版
リリース
PC版
リリース決断 開発着手
API Apps
Search
Cosmos
DB
Blob
Storage
利用者
旧 IMAGE WORKSシステム(Java/Struts/PostgreSQL)
アーキテクチャ全体像
認証
App Service
Microsoft A...
• 高弾力性設計が可能である
• NoOps基盤である
(おさらい)
VIP
Primary
Node
Secondary Secondary
Realtime GEO Replication
Japan East
US East
Allocate
Allocate
Master
Region
US East
“...
(おさらい)
そのサーバーレスネイティブな内部実装
ILB
Instances
Kudu
LoadBalancer
Deployer Telemetry
Prod/Stage
Blob
Allocate
Deploy
Allocate
API Apps
Blob
Storage
認証
Storage
Queue
Blob
Storage
SQL Database
Cosm
DB
Cognitive
Services
Machine
Learning
Functions
API...
Microsoft Cloud Design Patterns
https://docs.microsoft.com/en-us/azure/architecture/patterns/queue-based-load-leveling
Message
WebJobs
ILB
Queue
Storage Queue
/Service Bus
キューの待ち行列が指定した長さ
を超えたらスケールアウトmonitor
AppService による Queue Length の監視
A...
API Apps
Blob
Storage
認証
Microsoft Azure
Storage
Queue
Blob
Storage
Functions
Storage
Queue
SQL Database
Cosmos
DB
Cogniti...
IMAGE WORKS:一覧画面
一覧表示
全文検索
サムネイル
IMAGE WORKS:詳細画面
画像属性情報
Web Apps
SearchCosmos DB
(Document)
一覧/全文検索
インデクシング
一般的なRDBベースのフロント処理
Azure の WDSパターンでのフロント処理
処理方式 性能(レスポンスタイム)
一覧 RDBへのクエ...
Microsoft
Azure
Search
Cosmos DB
Blob
Storage
Cosmos DB
SQL Database
Search
ローカルでの
インデクシング
Cosmos DB
Search
ローカルでの
インデクシング...
Microsoft
Azure
App
Service
App
Service
Traffic
Manager
日本ユーザ 米国ユーザ
西日本 米国東部
Cosmos DB Cosmos DBCosmos DB
リアルタイムGeoレプリケーション
西日本(Primary) 米国東部 西ヨーロッパ
= サーバーレス ネイティブ ソリューションの設計原則
https://docs.microsoft.com/en-us/azure/architecture/guide/design-principles/
 Design for self healing 自己回復を設計せよ
 Make al...
ご清聴ありがとうございました。
Azure Cosmos DB + App Serviceの良い関係
Azure Cosmos DB + App Serviceの良い関係
Azure Cosmos DB + App Serviceの良い関係
Azure Cosmos DB + App Serviceの良い関係
Upcoming SlideShare
Loading in …5
×

Azure Cosmos DB + App Serviceの良い関係

2,718 views

Published on

Serverless Meetup Tokyo #4で発表させていただいた資料です。

Published in: Software
  • Be the first to comment

Azure Cosmos DB + App Serviceの良い関係

  1. 1. Blog: k-miyake.github.io/blog/ Twitter: @kazuyukimiyake
  2. 2. Microsoft事例サイトにも掲載中
  3. 3. 共 有 デジタルデータを安全に する環境をアウトソーシング する 不正なアクセス 第三者なりすまし・傍受不可 抜群の使いやすさ 直感的に使える「見える」サービス IMAGE WORKS 管 理 送受信 配 布 収 集 インターネット環境のみで利用可能なASP/SaaSサービ ス ハード機器/ソフトウェア購入・設置料金など一切不 要 インターネット回線インターネット 専用線不要/高速で低コスト 1 4万 500万 800
  4. 4. PoC要求整理 製品化 機能拡大 モバイル版 リリース PC版 リリース決断 開発着手
  5. 5. API Apps Search Cosmos DB Blob Storage 利用者 旧 IMAGE WORKSシステム(Java/Struts/PostgreSQL) アーキテクチャ全体像 認証 App Service Microsoft Azure Storage Queue Blob Storage Functions Storage Queue SQL Database Cosmos DB Cognitive Services Machine Learning Functions PC Clients(Windows/Mac)Mobile Clients(iOS/Android) API Gateway 外部システム Application Insights Azure Monitor 国内データセンター Web Apps Token .NET • マスターファイル保管 • アカウント管理 • 権限管理 Identity Framework Functions REST/OAuth2 SPA (Browser App)SPA (Browser App) 負荷モニター/オートスケール
  6. 6. • 高弾力性設計が可能である • NoOps基盤である
  7. 7. (おさらい)
  8. 8. VIP Primary Node Secondary Secondary Realtime GEO Replication Japan East US East Allocate Allocate Master Region US East “Hot Pool” Japan East “Hot Pool” そのサーバーレスネイティブな内部実装 The architecture of BW-Tree atomic record store. https://www.microsoft.com/en-us/research/publication/the-bw-tree-a-b-tree-for-new-hardware/
  9. 9. (おさらい)
  10. 10. そのサーバーレスネイティブな内部実装 ILB Instances Kudu LoadBalancer Deployer Telemetry Prod/Stage Blob Allocate Deploy Allocate
  11. 11. API Apps Blob Storage 認証 Storage Queue Blob Storage SQL Database Cosm DB Cognitive Services Machine Learning Functions API G Application Insights Azure Monitor 国内データセンター Token .NET • マスターファイル保管 • アカウント管理 • 権限管理 Identity Framework Functions 負荷モニター/オートスケール Search App Service Web Apps 旧 IMAGE WORKSシステム(Java/Struts/PostgreSQL) Functions Storage Queue Cosmos DB (Document) ワークロードの変動が大きい オンプレミスとの 同期処理は QLL※ + Scale-out で実装 ※Queue-based Load Leveling
  12. 12. Microsoft Cloud Design Patterns https://docs.microsoft.com/en-us/azure/architecture/patterns/queue-based-load-leveling
  13. 13. Message WebJobs ILB Queue Storage Queue /Service Bus キューの待ち行列が指定した長さ を超えたらスケールアウトmonitor AppService による Queue Length の監視 AppService Current solution for backend processing for NoOps(May.2017) Cosmos DB VIP ジョブ・スパイク Application Insights telemetry 設定している RU/sec の値を超えたら 予約しているRU/min の予備ノードを利用 QLL + Scale-out
  14. 14. API Apps Blob Storage 認証 Microsoft Azure Storage Queue Blob Storage Functions Storage Queue SQL Database Cosmos DB Cognitive Services Machine Learning Functions API Gateway Application Insights Azure Monitor Token .NET Identity Framework Functions REST/OAuth2 SPA (Browser App)SPA (Browser App) 負荷モニター/オートスケール SearchCosmos DB (Document) 利用者 App Service PC Clients(Windows/Mac)Mobile Clients(iOS/Android) Web Apps 「一覧」「詳細」 「絞り込み」「全文検索」 などのフロント機能は 高弾力構成が ほぼNoOpsで実装可能 Web-Document-Search (WDS) アーキテクチャパターン
  15. 15. IMAGE WORKS:一覧画面 一覧表示 全文検索 サムネイル
  16. 16. IMAGE WORKS:詳細画面 画像属性情報
  17. 17. Web Apps SearchCosmos DB (Document) 一覧/全文検索 インデクシング 一般的なRDBベースのフロント処理 Azure の WDSパターンでのフロント処理 処理方式 性能(レスポンスタイム) 一覧 RDBへのクエリー (範囲やKey) INDEXやデータ量に依存 非常に遅くなる場合もある 詳細 RDBへのクエリー (ユニークKey) 基本的に速いが、他処理での高負 荷時は引きずられる 全文検索 RDBへのLike検索 重い。機能が限定的。他の検索エ ンジンを併用する場合が多い 詳細 RDB 処理方式 性能 一覧 Searchへのクエリー (属性やファセット) 作成済みINDEXのみ対象のため、 元データに依存せず常に高速 詳細 Cosmos DBへのクエ リー(ユニークKey) 検索処理と分離されているため、 常に高速 全文検索 Searchへのクエリー (複数の属性横断) ワードINDEXが生成されているた め、ゆらぎ対応も含めて常に高速 アプリ サーバ 一覧/詳細/全文検索
  18. 18. Microsoft Azure Search Cosmos DB Blob Storage Cosmos DB SQL Database Search ローカルでの インデクシング Cosmos DB Search ローカルでの インデクシング リアルタイムGeoレプリケーション App Service App Service App Service Traffic Manager 西日本(Primary) 米国東部 西ヨーロッパ 日本ユーザ 米国ユーザ ヨーロッパユーザ オンプレミス IMAGE WORKS ローカルでの インデクシング Azure CDN Azure CDN Azure CDN SQL Database リアルタイムGeoレプリケーション SQL Database Blob Storage Blob Storage
  19. 19. Microsoft Azure App Service App Service Traffic Manager 日本ユーザ 米国ユーザ 西日本 米国東部
  20. 20. Cosmos DB Cosmos DBCosmos DB リアルタイムGeoレプリケーション 西日本(Primary) 米国東部 西ヨーロッパ
  21. 21. = サーバーレス ネイティブ ソリューションの設計原則
  22. 22. https://docs.microsoft.com/en-us/azure/architecture/guide/design-principles/  Design for self healing 自己回復を設計せよ  Make all things redundant 全てを冗長化せよ  Minimize coordination ブロッキングを最小化せよ  Design to scale out スケールアウトで設計せよ  Partition around limits パーティショニングで限界を超えよ  Design for operations 運用に向けて設計せよ  Use managed services マネージドサービスを活用せよ  Use the best data store for the job 最適なデータストアを選択せよ  Design for evolution 進化を前提に設計せよ  Build for the needs of business ビジネスニーズを実現せよ
  23. 23. ご清聴ありがとうございました。

×