SlideShare a Scribd company logo
Henry Been
How to build a multi-tenant SaaS application using 60.000
databases
Cloud brew cloudcamp
Server 1 Server 2 Server 3 Server 4 Server n
Database
loadbalancing
WHY?
•Single point of failure
•More expensive
•Cannot grow in small steps
•Scaling up is failing up [1]
[1] Scalability rules: 50 principles for Scaling Web Sites
WHY?
MANY, MANY
SMALLER
DATABASES
to the resue!
Server 1 Server 2 Server 3 Server 4 Server n
DB
loadbalancing
DB DB DB DB DB
•Unlimited scaleability
•Isolation of failure
•Roughly 2,5 times cheaper
Database per tenant provides…
100% tenant isolation
•Snapshot backup/restore
•Recover to point in time
•Compliance
•Limited authorization risks
100% tenant isoluation
Cloud brew cloudcamp
•Designed for single tenant, single db
•Move to the cloud, one by one
•Use case I will present
Cloud strategy for legacy applications
WONDERING WHO
IS THAT GUY?
HENRY BEEN
Independent Devops & Azure Architect
E: consultancy@henrybeen.nl
T: @henry_been
L: linkedin.com/in/henrybeen
W: henrybeen.nl
A (very) short history of multi-tenancy
Tenant C
Standalone App
Tenant B
Tenant
DB
App
Tenant A
A (very) short history of multi-tenancy
App
Sharded Multi-tenant Database
Catalog
Tenant
C
Tenant
B
App
Tenant
M
Catalog
Tenants
A,B,C,D
Tenant
A
Tenants
E,F,J,K
Share everything Database per Tenant
Tenant
DB
App
Tenant
L
"Incidental Expenses" (CC BY-NC 2.0) by tim ellis
"O’ the Mysteries of Colorado" (CC BY-NC 2.0) by WarzauWynn
Cloud brew cloudcamp
Cloud brew cloudcamp
SnelStart
A
SnelStart
AA
SnelStart
SnelStart
A
Web-
application A
SnelStart
SnelStart
Web-
application A
Cloud brew cloudcamp
Cloud brew cloudcamp
User
Directory
Catalog
Cust 1 Cust 2 Cust 3 Cust N
2. App uses key to get
connection from catalog
Tenant Databases
4. On subsequent requests, use a
cache!
Tenant Catalog
1. User connects to the app
Selfservice tenant creation and destruction
A. User signs up for a new
tenant
Cust 4
B. App provisions new
tenant db
C. …registers tenant key,
db location in catalog
3. …then connects to correct
tenant database
ARM / SQL Database
Tenant Onboarding Application Connection
Base
TenantDB
Tenant
bacpac
Apps
Catalog
Cust 1 Cust 2 Cust 3 Cust N
Tenant Databases
Tenant Catalog
More simple approach: no selfservice
Apps
Management scripts
AAD
So…. what do I need?
"tools" (CC BY-NC-ND 2.0) by ᴾᴴᴵᴸ
Individually unpredictable
share
resources
Collectively stable and predictable
Cost effective,
scale pool up/down based on trends
Expensive,
must provision each db for peaks
Pools are cost-effective for unpredictable workloads
Elastic pool usage example
385 dbs in 200 DTU pool, per-database max at 100 DTUs
Elastic
Database
Client Library
Elastic
Database
Jobs
Elastic
Transactions
Elastic
Query
More elastic capabilities for Azure SQL DB
Elastic Database Client Library
using (SqlConnection conn = customerShardMap.OpenConnectionForKey(
customerId,
Configuration.GetCredentialsConnectionString(),
ConnectionOptions.Validate))
{
// Execute a simple command.
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = @"UPDATE Sales.Customer ….";
// … and more boring stuff ..
}
Elastic Transactions
using (var scope = new TransactionScope())
{
using (var conn1 = new SqlConnection(connStrDb1))
{ // … boring stuff … }
using (var conn2 = new SqlConnection(connStrDb2))
{ // … boring stuff }
scope.Complete();
}
Cust 1 Cust 2 Cust 3 Cust N
Schema management at scale
Cust 4
Catalog
Manage 1000s of databases as one
Apps
T-SQLT-SQLT-SQL T-SQLT-SQL
Azure Portal
Job
Account
T-SQL
CREATE TABLE…
CREATE INDEX…
INSERT INTO…
SELECT * FROM…
T-SQL Job
SELECT * FROM…
Elastic Jobs
Tenant Databases
Tenant Catalog
Jobs, target groups,
schedules, credentials
Cust 1 Cust 2
Tenant Databases
Cust 3 Cust N
Distributed query across tenant databases
Tenant Catalog
Adhoc
Analytics
Cust 4
Catalog
Database locations are
retrieved from catalog
Distributed query plan
External tables
project data from
tenant dbs
PowerBI
Query from any client
Query all tenants as if they are in a single database
Apps
Elastic Query
demo
Wingtip Tickets SaaS app
Cloud brew cloudcamp
Standalone App Database per tenant Sharded Multi-tenant
Scale High
1-1000s
Very high
1-100,000s
Unlimited
1-1,000,000s
Database cost–per tenant High (sized for peaks) Low (using pools) Lowest (small tenants)
Tenant isolation Very High High Low (high for singletons)
Performance monitoring/mgt. Per-tenant Aggregate + per-tenant Aggregate, per-tenant for
singletons only
Restore single tenant Easy Easy Hard (easy for singletons)
Disaster recovery (all tenants) Moderate
Many components to
recover
Moderate
Patterns address complexity at
scale
Easy (for multi-tenant dbs)
Patterns address singleton
complexity at scale
Development complexity Low Low Medium (sharding)
Operational complexity Medium-High
Individually simple, complex
at scale
Low-Medium
Patterns address complexity at
scale
Low-High
Individual tenant management
is complex
Per-tenant customization Easy Easy Complex
Comparing the models, what we see…
Cloud brew cloudcamp
DO TRY THIS AT HOME!
HENRY BEEN
Independent Devops & Azure Architect
E: consultancy@henrybeen.nl
T: @henry_been
L: linkedin.com/in/henrybeen
W: henrybeen.nl

More Related Content

PDF
ecs-presentation
Marc Costello
 
PDF
MongoDB .local Bengaluru 2019: Distributed Transactions: With Great Power Com...
MongoDB
 
PDF
AWSome day 2018 - database in cloud
Corley S.r.l.
 
PDF
SoCal NodeJS Meetup 20170215_aws_lambda
Stefan Deusch
 
PPTX
[PL] Code Europe 2016 - Python and Microsoft Azure
Michał Smereczyński
 
KEY
Amazon Web Services (cloud: is it good for anything?)
Maciej Pasternacki
 
PPTX
Amazon Web Services lection 2
Binary Studio
 
PPTX
Amazon Web Services lection 6
Binary Studio
 
ecs-presentation
Marc Costello
 
MongoDB .local Bengaluru 2019: Distributed Transactions: With Great Power Com...
MongoDB
 
AWSome day 2018 - database in cloud
Corley S.r.l.
 
SoCal NodeJS Meetup 20170215_aws_lambda
Stefan Deusch
 
[PL] Code Europe 2016 - Python and Microsoft Azure
Michał Smereczyński
 
Amazon Web Services (cloud: is it good for anything?)
Maciej Pasternacki
 
Amazon Web Services lection 2
Binary Studio
 
Amazon Web Services lection 6
Binary Studio
 

What's hot (16)

PDF
From AWS to GCP, TABLEAPP Architecture Story
Yen-Wen Chen
 
PDF
Deliver Docker Containers Continuously On AWS - DevOpsCon Munich 2016
Philipp Garbe
 
PDF
[GS네오텍] Google Kubernetes Engine
GS Neotek
 
PDF
Autoscaling Kubernetes
craigbox
 
PDF
JOSA TechTalks - Downgrade your Costs
Jordan Open Source Association
 
PDF
Tableapp architecture migration story for GCPUG.TW
Yen-Wen Chen
 
PDF
Using Kubernetes to deploy Django in GCP
Walter Liu
 
PDF
Docker Container automatisiert nach AWS deployen - Continuous Lifecycle 2016
Philipp Garbe
 
PDF
Long running aws lambda - Joel Schuweiler, Minneapolis
AWS Chicago
 
PPTX
Node.js on Windows Azure
Neil Mackenzie
 
PDF
Introduction to Google Cloud Platform
Opsta
 
PPTX
Google Compute Engine
Csaba Toth
 
PPTX
Windows Azure HDInsight Service
Neil Mackenzie
 
PDF
12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES
Zalando adtech lab
 
PPTX
Leveraging Amzon EC2 Container Services for Container Orchestration
Neeraj Shah
 
PDF
Shakr - Container CI/CD with Google Cloud Platform
Minku Lee
 
From AWS to GCP, TABLEAPP Architecture Story
Yen-Wen Chen
 
Deliver Docker Containers Continuously On AWS - DevOpsCon Munich 2016
Philipp Garbe
 
[GS네오텍] Google Kubernetes Engine
GS Neotek
 
Autoscaling Kubernetes
craigbox
 
JOSA TechTalks - Downgrade your Costs
Jordan Open Source Association
 
Tableapp architecture migration story for GCPUG.TW
Yen-Wen Chen
 
Using Kubernetes to deploy Django in GCP
Walter Liu
 
Docker Container automatisiert nach AWS deployen - Continuous Lifecycle 2016
Philipp Garbe
 
Long running aws lambda - Joel Schuweiler, Minneapolis
AWS Chicago
 
Node.js on Windows Azure
Neil Mackenzie
 
Introduction to Google Cloud Platform
Opsta
 
Google Compute Engine
Csaba Toth
 
Windows Azure HDInsight Service
Neil Mackenzie
 
12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES
Zalando adtech lab
 
Leveraging Amzon EC2 Container Services for Container Orchestration
Neeraj Shah
 
Shakr - Container CI/CD with Google Cloud Platform
Minku Lee
 
Ad

Similar to Cloud brew cloudcamp (20)

PPTX
Bitbucket Pipelines - Powered by Kubernetes
Nathan Burrell
 
PPTX
갑작스러운 유저의 수요 증가에 현명하게 대처하는 방법
Amazon Web Services Korea
 
PDF
Scaling on AWS for the First 10 Million Users at Websummit Dublin
Ian Massingham
 
PDF
AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)
Amazon Web Services Korea
 
PDF
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day
Amazon Web Services Korea
 
PDF
Satrtup Bootcamp - Scale on AWS
Idan Tohami
 
PDF
Apache Druid Auto Scale-out/in for Streaming Data Ingestion on Kubernetes
DataWorks Summit
 
PPTX
Accelerate SQL Server Migration to the AWS Cloud
Datavail
 
PPTX
Building a Just-in-Time Application Stack for Analysts
Avere Systems
 
PDF
Square Peg Round Hole: Serverless Solutions For Non-Serverless Problems
Chase Douglas
 
PPTX
SQL Saturday San Diego
Kellyn Pot'Vin-Gorman
 
PPTX
Nuts and bolts of running a popular site in the aws cloud
David Veksler
 
PDF
DPC 2016 - 53 Minutes or Less - Architecting For Failure
benwaine
 
PDF
BATbern53 ETHZ Rethinking Cluster State Management for Lightweight Function a...
BATbern
 
PPTX
App fabric introduction
Dennis van der Stelt
 
PPTX
Autoscaled Distributed Automation Expedia Know How
aragavan
 
PDF
Run Cloud Native MySQL NDB Cluster in Kubernetes
Bernd Ocklin
 
PPTX
Denver SQL Saturday The Next Frontier
Kellyn Pot'Vin-Gorman
 
PPTX
Converged Infrastructures on Kubernetes with Kubevirt
kloia
 
PPTX
SQL Server in the AWS Cloud
DBInsight Pty Ltd
 
Bitbucket Pipelines - Powered by Kubernetes
Nathan Burrell
 
갑작스러운 유저의 수요 증가에 현명하게 대처하는 방법
Amazon Web Services Korea
 
Scaling on AWS for the First 10 Million Users at Websummit Dublin
Ian Massingham
 
AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)
Amazon Web Services Korea
 
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day
Amazon Web Services Korea
 
Satrtup Bootcamp - Scale on AWS
Idan Tohami
 
Apache Druid Auto Scale-out/in for Streaming Data Ingestion on Kubernetes
DataWorks Summit
 
Accelerate SQL Server Migration to the AWS Cloud
Datavail
 
Building a Just-in-Time Application Stack for Analysts
Avere Systems
 
Square Peg Round Hole: Serverless Solutions For Non-Serverless Problems
Chase Douglas
 
SQL Saturday San Diego
Kellyn Pot'Vin-Gorman
 
Nuts and bolts of running a popular site in the aws cloud
David Veksler
 
DPC 2016 - 53 Minutes or Less - Architecting For Failure
benwaine
 
BATbern53 ETHZ Rethinking Cluster State Management for Lightweight Function a...
BATbern
 
App fabric introduction
Dennis van der Stelt
 
Autoscaled Distributed Automation Expedia Know How
aragavan
 
Run Cloud Native MySQL NDB Cluster in Kubernetes
Bernd Ocklin
 
Denver SQL Saturday The Next Frontier
Kellyn Pot'Vin-Gorman
 
Converged Infrastructures on Kubernetes with Kubevirt
kloia
 
SQL Server in the AWS Cloud
DBInsight Pty Ltd
 
Ad

More from Henry Been (14)

PPTX
Henry been azure resource manager - inside out
Henry Been
 
PDF
Dot netsaterday henry been - logging instrumentation dashboards alerts
Henry Been
 
PDF
Cloud brew henry been - logging instrumentation dashboards alerts
Henry Been
 
PDF
Henry Been - Secure development: keeping your application secrets private
Henry Been
 
PDF
Serverless computing henry been - logging instrumentation dashboards alerts
Henry Been
 
PDF
Serverless computing henry been - continuous deployment of azure functions
Henry Been
 
PPTX
Logging, Instrumentation, Dashboards and Alerts - for developers
Henry Been
 
PPTX
Secure deployments keeping your application secrets private -duug fest
Henry Been
 
PPTX
Secure deployments keeping your application secrets private - condensed
Henry Been
 
PPTX
Writing, build and releasing your own vsts extension
Henry Been
 
PPTX
Continuous delivery for the it pro
Henry Been
 
PPTX
Focus on business value by going Serverless
Henry Been
 
PDF
Henry been database-per-tenant with 50k databases
Henry Been
 
PPTX
Henry been - Multi-tenant applications using 30k databases
Henry Been
 
Henry been azure resource manager - inside out
Henry Been
 
Dot netsaterday henry been - logging instrumentation dashboards alerts
Henry Been
 
Cloud brew henry been - logging instrumentation dashboards alerts
Henry Been
 
Henry Been - Secure development: keeping your application secrets private
Henry Been
 
Serverless computing henry been - logging instrumentation dashboards alerts
Henry Been
 
Serverless computing henry been - continuous deployment of azure functions
Henry Been
 
Logging, Instrumentation, Dashboards and Alerts - for developers
Henry Been
 
Secure deployments keeping your application secrets private -duug fest
Henry Been
 
Secure deployments keeping your application secrets private - condensed
Henry Been
 
Writing, build and releasing your own vsts extension
Henry Been
 
Continuous delivery for the it pro
Henry Been
 
Focus on business value by going Serverless
Henry Been
 
Henry been database-per-tenant with 50k databases
Henry Been
 
Henry been - Multi-tenant applications using 30k databases
Henry Been
 

Recently uploaded (20)

PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
The Future of Artificial Intelligence (AI)
Mukul
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 

Cloud brew cloudcamp

  • 1. Henry Been How to build a multi-tenant SaaS application using 60.000 databases
  • 3. Server 1 Server 2 Server 3 Server 4 Server n Database loadbalancing
  • 5. •Single point of failure •More expensive •Cannot grow in small steps •Scaling up is failing up [1] [1] Scalability rules: 50 principles for Scaling Web Sites WHY?
  • 7. Server 1 Server 2 Server 3 Server 4 Server n DB loadbalancing DB DB DB DB DB
  • 8. •Unlimited scaleability •Isolation of failure •Roughly 2,5 times cheaper Database per tenant provides…
  • 9. 100% tenant isolation •Snapshot backup/restore •Recover to point in time •Compliance •Limited authorization risks 100% tenant isoluation
  • 11. •Designed for single tenant, single db •Move to the cloud, one by one •Use case I will present Cloud strategy for legacy applications
  • 12. WONDERING WHO IS THAT GUY? HENRY BEEN Independent Devops & Azure Architect E: [email protected] T: @henry_been L: linkedin.com/in/henrybeen W: henrybeen.nl
  • 13. A (very) short history of multi-tenancy Tenant C Standalone App Tenant B Tenant DB App Tenant A
  • 14. A (very) short history of multi-tenancy App Sharded Multi-tenant Database Catalog Tenant C Tenant B App Tenant M Catalog Tenants A,B,C,D Tenant A Tenants E,F,J,K Share everything Database per Tenant Tenant DB App Tenant L
  • 15. "Incidental Expenses" (CC BY-NC 2.0) by tim ellis "O’ the Mysteries of Colorado" (CC BY-NC 2.0) by WarzauWynn
  • 25. Catalog Cust 1 Cust 2 Cust 3 Cust N 2. App uses key to get connection from catalog Tenant Databases 4. On subsequent requests, use a cache! Tenant Catalog 1. User connects to the app Selfservice tenant creation and destruction A. User signs up for a new tenant Cust 4 B. App provisions new tenant db C. …registers tenant key, db location in catalog 3. …then connects to correct tenant database ARM / SQL Database Tenant Onboarding Application Connection Base TenantDB Tenant bacpac Apps
  • 26. Catalog Cust 1 Cust 2 Cust 3 Cust N Tenant Databases Tenant Catalog More simple approach: no selfservice Apps Management scripts AAD
  • 27. So…. what do I need? "tools" (CC BY-NC-ND 2.0) by ᴾᴴᴵᴸ
  • 28. Individually unpredictable share resources Collectively stable and predictable Cost effective, scale pool up/down based on trends Expensive, must provision each db for peaks Pools are cost-effective for unpredictable workloads
  • 29. Elastic pool usage example 385 dbs in 200 DTU pool, per-database max at 100 DTUs
  • 31. Elastic Database Client Library using (SqlConnection conn = customerShardMap.OpenConnectionForKey( customerId, Configuration.GetCredentialsConnectionString(), ConnectionOptions.Validate)) { // Execute a simple command. SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = @"UPDATE Sales.Customer …."; // … and more boring stuff .. }
  • 32. Elastic Transactions using (var scope = new TransactionScope()) { using (var conn1 = new SqlConnection(connStrDb1)) { // … boring stuff … } using (var conn2 = new SqlConnection(connStrDb2)) { // … boring stuff } scope.Complete(); }
  • 33. Cust 1 Cust 2 Cust 3 Cust N Schema management at scale Cust 4 Catalog Manage 1000s of databases as one Apps T-SQLT-SQLT-SQL T-SQLT-SQL Azure Portal Job Account T-SQL CREATE TABLE… CREATE INDEX… INSERT INTO… SELECT * FROM… T-SQL Job SELECT * FROM… Elastic Jobs Tenant Databases Tenant Catalog Jobs, target groups, schedules, credentials
  • 34. Cust 1 Cust 2 Tenant Databases Cust 3 Cust N Distributed query across tenant databases Tenant Catalog Adhoc Analytics Cust 4 Catalog Database locations are retrieved from catalog Distributed query plan External tables project data from tenant dbs PowerBI Query from any client Query all tenants as if they are in a single database Apps Elastic Query
  • 37. Standalone App Database per tenant Sharded Multi-tenant Scale High 1-1000s Very high 1-100,000s Unlimited 1-1,000,000s Database cost–per tenant High (sized for peaks) Low (using pools) Lowest (small tenants) Tenant isolation Very High High Low (high for singletons) Performance monitoring/mgt. Per-tenant Aggregate + per-tenant Aggregate, per-tenant for singletons only Restore single tenant Easy Easy Hard (easy for singletons) Disaster recovery (all tenants) Moderate Many components to recover Moderate Patterns address complexity at scale Easy (for multi-tenant dbs) Patterns address singleton complexity at scale Development complexity Low Low Medium (sharding) Operational complexity Medium-High Individually simple, complex at scale Low-Medium Patterns address complexity at scale Low-High Individual tenant management is complex Per-tenant customization Easy Easy Complex Comparing the models, what we see…
  • 39. DO TRY THIS AT HOME! HENRY BEEN Independent Devops & Azure Architect E: [email protected] T: @henry_been L: linkedin.com/in/henrybeen W: henrybeen.nl

Editor's Notes

  • #2: Licence notice for those parts I copied in from the WingTips presentations MIT License Copyright (c) Microsoft Corporation. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
  • #11: https://www.tubefilter.com/2018/08/20/twitch-private-messages-bug/ https://help.twitter.com/en/account-activity-api
  • #16: "O’ the Mysteries of Colorado" (CC BY-NC 2.0) by WarzauWynn
  • #21: The Masterplan
  • #22: The Masterplan
  • #24: Image from Wikipedia, https://upload.wikimedia.org/wikipedia/commons/c/ca/DART_UML_DART_2011_2013_RAW.svg
  • #28: "tools" (CC BY-NC-ND 2.0) by ᴾᴴᴵᴸ
  • #30: Real telemetry from an accounting customer’s set of pools (when this data was recorded they had over 300 pools, and each pool had nearly 400 databases sharing 200 DTUs). As you can see, their aggregate tenant workload is easily supported by 200 DTU pool. [The pool at 200 DTUs is twice the per-database max of 100 DTUs so would allow 2 databases to be active]
  • #36: https://github.com/Microsoft/WingtipTicketsSaaS-DbPerTenant