SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
Migrating Multi-tenant App to Azure
Akshay Surve,
CTO DeltaX
Twitter: @ak47suve
Email: akshay@deltax.com
About Me
● 10+ years
Shipping Ideas, Making Mistakes, GTD
Marathons / Hackathons / *-athon :)
● Co-founded DeltaX in 2013
Ad-tech / Product Startup / 30+ team
300+ advertisers across India, APAC and US.
What to Expect?
● Our journey to the Cloud
Migrating our 1.2TB+ DB 100 odd tenants, Application & Services from bare
metal dedicated infrastructure to the cloud
● Key Considerations & Pointers
● Learnings & Opinions
Context (What we do?)
● SAAS platform for advertising analytics and tracking.
● We had 2 parallel stacks
○ Auto-scaled HA ad-serving + tracking system - AWS
Node.js / Route53 > ELB > EC2 (auto-scale) > AWS S3 > Cloudfront
○ Always ON Mini-datawarehouse per tenant - Bare-metal Servers
This is the stack we migrated to Azure
Previous Setup (Infrastructure stack)
DB Machine
Dual Intel® Xeon®
E5-2600 v3 @ 2.10GHz octa-core incl.
RAM 128+23GB DDR4 ECC RAM
2 x 480 GB 6 Gb/s SSD Datacenter Edition
6 x 960 GB 6 Gb/s SSD Datacenter Edition
1 x 32 GB DDR4 Reg. ECC RAM
Web Box
Single Intel® Xeon®
E5-2600 v3 @ 2.10GHz octa-core incl.
64 GB DDR4 ECC RAM
Services Box
Single Intel® Xeon®
E5-2600 v3 @ 2.10GHz octa-core incl.
64 GB DDR4 ECC RAM
Bottlenecks
● Tenant Isolation
Small vs Big tenants; Access to their own data;
● Dev Ops / Managing Infrastructure / DB growth
2 years - 0 GB -> 200 GB
1 years - 200 GB -> 600 GB
6 months - 600 GB -> 1.2TB
Around 80-100 clients when managing the bare-metal servers started
becoming a task; having already had our fair share of war stories - database
going down; disk failure with RAID; log disk getting full etc.
● Exploding Service > Workers (120)
Multi-threaded / Memory hungry / Isolation
Previous Setup (Software stack)
● Database - MS SQL 2014 (1 Big DB)
Typical star schema; mixed load (OLTP / OLAP)
● Asp.NET MVC / Knockout.JS / WCF / Web API
● Over 80-90 Always running background services - processing data from
Google Adwords, Yahoo Bing, Facebook and other external services
including our own ad-serving and tracking infrastructure.
Considerations
● Multiple providers
AWS vs. Microsoft Azure
● Cloud vendor Lock-in
Yes that is a term!
● Capacity planning / Cost Estimation / Benchmark
The cloud is a complex beast. Pay per use feels liberating but for consistently
high usage/loads is cloud even apt?
AWS vs Azure (Considerations contd.)
● You are bound to be confused
Amazon Web Services
Microsoft Azure
Google Cloud
Bakasur Thali
Azure
● Microsoft Azure initially was all over the
place; but in the last 2 years it has caught
up and is in a promising direction (same
can be said about Microsoft)
● Our software stack was a ‘first class’
citizen in Azure ecosystem
- Azure SQL Database Pool
- Azure App Service
AWS vs Azure (Considerations contd.)
AWS
● 3+ Experience running a horizontally
auto-scaled Ad-server and Event racking
system with close to 99.998% uptime
● Exposed to the full stack of AWS right
from Route53, ELB, EC2, DynamoDB, S3
and CDN
Azure SQL Database Elastic Pool
AWS vs Azure (Considerations contd.)
Azure SQL Database Elastic Pool
AWS vs Azure (Considerations contd.)
Azure SQL Database Elastic Pool
AWS vs Azure (Considerations contd.)
Azure SQL Database Elastic Pool
● Simple, cost-effective solution for managing and scaling multiple databases
that have varying and unpredictable usage demands
● Shared pricing plan
● Ideal for multi-tenant applications - large differences between peak utilization
and average utilization per database.
AWS vs Azure (Considerations contd.)
AWS vs Azure (Considerations contd.)
Azure App Service
● Multiple languages and frameworks - App Service has first-class support for
ASP.NET, Node.js, Java, PHP, and Python.
● DevOps optimization - Set up continuous integration and deployment with
Visual Studio Team Services, GitHub, or BitBucket. Promote updates through
test and staging environments
● Global scale with high availability - Scale up or out manually or automatically.
● If you are working on business critical applications - then it’s an important
consideration
● You ideally want the best of what is to be offered by cloud provider
but not get locked in. Unless it suits your need to the tee.
● Having a popular and widely adopted service as managed is a great
advantage - happy that slowly and steadily Azure offers such services - eg:
Redis, HD Insight, Azure SQL
Cloud vendor lock-in (Considerations contd.)
● Pay-per-use is great for on-demand or sporadic usage; for always on
infrastructure being able to benchmark loads and eventually estimate costs
is difficult to get right
● We had cases of Azure DBs capacity planning tool fail on us - not having the
right plan size. We split each tenant to multiple DBs of it’s own
● Migrated tenants in batches and so we were able to benchmark and plan
capacity likewise
Capacity / Cost / Benchmarking (Considerations contd.)
Service / Worker VMs
- From 1 big box VM to 25 VMs
Misc Services
- Redis
- CDN
- Cloud storage
Current Setup (Infrastructure)
Azure SQL
- 80 tenants on 1 SQL DB > 480 DBs (4x)
- Hovering around 1 TB; to 2.8TB
Azure App Service
- Web app
- API
- WCF
Timeline of Migration
Discussing and evaluation
various ideas
April 2016
Declaration of WAR
June 2016
First live tenant
Mid August
New tenants started using
the cloud stack
Sept 2016
All tenants migrated with
close to 12months data
Dec 2016
● Tooling / Logging / Performance monitoring
We had one problem earlier; now the problem is compounded and spread out
● Keeping all DB schemas in sync (migrations)
● Exception logging; actionable SMS alerts
● Our costs increased 3-5x; also the number of tenants in that time. But we
were able to scale
New Challenges
“The cloud is not a silver bullet”
silver bullet ~ noun
‘a simple and seemingly magical solution to a complicated problem’
Twitter: @ak47suve
Email: akshay@deltax.com

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Beyond Relational
Beyond RelationalBeyond Relational
Beyond Relational
 
Webinar: Building Blocks for the Future of Television
Webinar: Building Blocks for the Future of TelevisionWebinar: Building Blocks for the Future of Television
Webinar: Building Blocks for the Future of Television
 
AWS Athena vs. Google BigQuery for interactive SQL Queries
AWS Athena vs. Google BigQuery for interactive SQL QueriesAWS Athena vs. Google BigQuery for interactive SQL Queries
AWS Athena vs. Google BigQuery for interactive SQL Queries
 
Introducing the Hub for Data Orchestration
Introducing the Hub for Data OrchestrationIntroducing the Hub for Data Orchestration
Introducing the Hub for Data Orchestration
 
Introduction to AWS Outposts
Introduction to AWS OutpostsIntroduction to AWS Outposts
Introduction to AWS Outposts
 
SQL Server on Google Cloud Platform
SQL Server on Google Cloud PlatformSQL Server on Google Cloud Platform
SQL Server on Google Cloud Platform
 
New AWS Services for Bioinformatics
New AWS Services for BioinformaticsNew AWS Services for Bioinformatics
New AWS Services for Bioinformatics
 
Apache Cassandra in the Cloud
Apache Cassandra in the CloudApache Cassandra in the Cloud
Apache Cassandra in the Cloud
 
Scylla Summit 2018: Grab and Scylla: Driving Southeast Asia Forward
Scylla Summit 2018: Grab and Scylla: Driving Southeast Asia ForwardScylla Summit 2018: Grab and Scylla: Driving Southeast Asia Forward
Scylla Summit 2018: Grab and Scylla: Driving Southeast Asia Forward
 
Polyglot persistence @ netflix (CDE Meetup)
Polyglot persistence @ netflix (CDE Meetup) Polyglot persistence @ netflix (CDE Meetup)
Polyglot persistence @ netflix (CDE Meetup)
 
Scaling Traffic from 0 to 139 Million Unique Visitors
Scaling Traffic from 0 to 139 Million Unique VisitorsScaling Traffic from 0 to 139 Million Unique Visitors
Scaling Traffic from 0 to 139 Million Unique Visitors
 
Serverless Reality
Serverless RealityServerless Reality
Serverless Reality
 
Not only SQL - Database Choices
Not only SQL - Database ChoicesNot only SQL - Database Choices
Not only SQL - Database Choices
 
Análisis del roadmap del Elastic Stack
Análisis del roadmap del Elastic StackAnálisis del roadmap del Elastic Stack
Análisis del roadmap del Elastic Stack
 
Aws Kinesis
Aws KinesisAws Kinesis
Aws Kinesis
 
Streaming 4 billion Messages per day. Lessons Learned.
Streaming 4 billion Messages per day. Lessons Learned.Streaming 4 billion Messages per day. Lessons Learned.
Streaming 4 billion Messages per day. Lessons Learned.
 
Athena & Glue
Athena & GlueAthena & Glue
Athena & Glue
 
Redshift VS BigQuery
Redshift VS BigQueryRedshift VS BigQuery
Redshift VS BigQuery
 
Microsoft Machine Learning Smackdown
Microsoft Machine Learning SmackdownMicrosoft Machine Learning Smackdown
Microsoft Machine Learning Smackdown
 
Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017
 

Ähnlich wie Migrating a multi tenant app to Azure (war biopic)

AWS Cloud Kata | Manila - Getting to Scale on AWS
AWS Cloud Kata | Manila - Getting to Scale on AWSAWS Cloud Kata | Manila - Getting to Scale on AWS
AWS Cloud Kata | Manila - Getting to Scale on AWS
Amazon Web Services
 
Migrating Enterprise Applications to AWS
Migrating Enterprise Applications to AWSMigrating Enterprise Applications to AWS
Migrating Enterprise Applications to AWS
Tom Laszewski
 

Ähnlich wie Migrating a multi tenant app to Azure (war biopic) (20)

Cloud comparison - AWS vs Azure vs Google
Cloud comparison - AWS vs Azure vs GoogleCloud comparison - AWS vs Azure vs Google
Cloud comparison - AWS vs Azure vs Google
 
Migrating on premises workload to azure sql database
Migrating on premises workload to azure sql databaseMigrating on premises workload to azure sql database
Migrating on premises workload to azure sql database
 
AWS Summit 2013 | India - Scaling Seamlessly and Going Global with the Cloud,...
AWS Summit 2013 | India - Scaling Seamlessly and Going Global with the Cloud,...AWS Summit 2013 | India - Scaling Seamlessly and Going Global with the Cloud,...
AWS Summit 2013 | India - Scaling Seamlessly and Going Global with the Cloud,...
 
AWS Summit Stockholm 2014 – B2 – Migrating enterprise applications to AWS
AWS Summit Stockholm 2014 – B2 – Migrating enterprise applications to AWSAWS Summit Stockholm 2014 – B2 – Migrating enterprise applications to AWS
AWS Summit Stockholm 2014 – B2 – Migrating enterprise applications to AWS
 
Clash of Technologies Google Cloud vs Microsoft Azure
Clash of Technologies Google Cloud vs Microsoft AzureClash of Technologies Google Cloud vs Microsoft Azure
Clash of Technologies Google Cloud vs Microsoft Azure
 
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
 
OSS DB on Azure
OSS DB on AzureOSS DB on Azure
OSS DB on Azure
 
AWS Cloud Kata | Manila - Getting to Scale on AWS
AWS Cloud Kata | Manila - Getting to Scale on AWSAWS Cloud Kata | Manila - Getting to Scale on AWS
AWS Cloud Kata | Manila - Getting to Scale on AWS
 
Azure SQL DB Managed Instances Built to easily modernize application data layer
Azure SQL DB Managed Instances Built to easily modernize application data layerAzure SQL DB Managed Instances Built to easily modernize application data layer
Azure SQL DB Managed Instances Built to easily modernize application data layer
 
Windows on AWS
Windows on AWSWindows on AWS
Windows on AWS
 
AZURE Data Related Services
AZURE Data Related ServicesAZURE Data Related Services
AZURE Data Related Services
 
Migrating Enterprise Applications to AWS
Migrating Enterprise Applications to AWSMigrating Enterprise Applications to AWS
Migrating Enterprise Applications to AWS
 
Introducing Azure SQL Data Warehouse
Introducing Azure SQL Data WarehouseIntroducing Azure SQL Data Warehouse
Introducing Azure SQL Data Warehouse
 
Migrating Oracle Databases to AWS
Migrating Oracle Databases to AWSMigrating Oracle Databases to AWS
Migrating Oracle Databases to AWS
 
Public Cloud Workshop
Public Cloud WorkshopPublic Cloud Workshop
Public Cloud Workshop
 
Ready for take-off - How to get your databases into the cloud
Ready for take-off - How to get your databases into the cloudReady for take-off - How to get your databases into the cloud
Ready for take-off - How to get your databases into the cloud
 
Why Scale Matters and How the Cloud Really is Different
Why Scale Matters and How the Cloud Really is Different Why Scale Matters and How the Cloud Really is Different
Why Scale Matters and How the Cloud Really is Different
 
Serverless at Lifestage
Serverless at LifestageServerless at Lifestage
Serverless at Lifestage
 
Satrtup Bootcamp - Scale on AWS
Satrtup Bootcamp - Scale on AWSSatrtup Bootcamp - Scale on AWS
Satrtup Bootcamp - Scale on AWS
 
Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...
Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...
Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...
 

Mehr von ★ Akshay Surve (6)

How I stopped watching p0rn and other *kinkiness*
How I stopped watching p0rn and other *kinkiness*How I stopped watching p0rn and other *kinkiness*
How I stopped watching p0rn and other *kinkiness*
 
Blogging4Good @ BlogCamp Mumbai 2010 - Ads4Good.org
Blogging4Good @ BlogCamp Mumbai 2010 - Ads4Good.orgBlogging4Good @ BlogCamp Mumbai 2010 - Ads4Good.org
Blogging4Good @ BlogCamp Mumbai 2010 - Ads4Good.org
 
Web Applicaitons - a roller coaster ride
Web Applicaitons - a roller coaster rideWeb Applicaitons - a roller coaster ride
Web Applicaitons - a roller coaster ride
 
Khelvigyan Project - Children Toy Foundation
Khelvigyan Project - Children Toy FoundationKhelvigyan Project - Children Toy Foundation
Khelvigyan Project - Children Toy Foundation
 
SocialSync - Why it exists?
SocialSync - Why it exists?SocialSync - Why it exists?
SocialSync - Why it exists?
 
SocialSync
SocialSyncSocialSync
SocialSync
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Kürzlich hochgeladen (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

Migrating a multi tenant app to Azure (war biopic)

  • 1. Migrating Multi-tenant App to Azure Akshay Surve, CTO DeltaX Twitter: @ak47suve Email: akshay@deltax.com
  • 2. About Me ● 10+ years Shipping Ideas, Making Mistakes, GTD Marathons / Hackathons / *-athon :) ● Co-founded DeltaX in 2013 Ad-tech / Product Startup / 30+ team 300+ advertisers across India, APAC and US.
  • 3. What to Expect? ● Our journey to the Cloud Migrating our 1.2TB+ DB 100 odd tenants, Application & Services from bare metal dedicated infrastructure to the cloud ● Key Considerations & Pointers ● Learnings & Opinions
  • 4. Context (What we do?) ● SAAS platform for advertising analytics and tracking. ● We had 2 parallel stacks ○ Auto-scaled HA ad-serving + tracking system - AWS Node.js / Route53 > ELB > EC2 (auto-scale) > AWS S3 > Cloudfront ○ Always ON Mini-datawarehouse per tenant - Bare-metal Servers This is the stack we migrated to Azure
  • 5. Previous Setup (Infrastructure stack) DB Machine Dual Intel® Xeon® E5-2600 v3 @ 2.10GHz octa-core incl. RAM 128+23GB DDR4 ECC RAM 2 x 480 GB 6 Gb/s SSD Datacenter Edition 6 x 960 GB 6 Gb/s SSD Datacenter Edition 1 x 32 GB DDR4 Reg. ECC RAM Web Box Single Intel® Xeon® E5-2600 v3 @ 2.10GHz octa-core incl. 64 GB DDR4 ECC RAM Services Box Single Intel® Xeon® E5-2600 v3 @ 2.10GHz octa-core incl. 64 GB DDR4 ECC RAM
  • 6. Bottlenecks ● Tenant Isolation Small vs Big tenants; Access to their own data; ● Dev Ops / Managing Infrastructure / DB growth 2 years - 0 GB -> 200 GB 1 years - 200 GB -> 600 GB 6 months - 600 GB -> 1.2TB Around 80-100 clients when managing the bare-metal servers started becoming a task; having already had our fair share of war stories - database going down; disk failure with RAID; log disk getting full etc. ● Exploding Service > Workers (120) Multi-threaded / Memory hungry / Isolation
  • 7. Previous Setup (Software stack) ● Database - MS SQL 2014 (1 Big DB) Typical star schema; mixed load (OLTP / OLAP) ● Asp.NET MVC / Knockout.JS / WCF / Web API ● Over 80-90 Always running background services - processing data from Google Adwords, Yahoo Bing, Facebook and other external services including our own ad-serving and tracking infrastructure.
  • 8. Considerations ● Multiple providers AWS vs. Microsoft Azure ● Cloud vendor Lock-in Yes that is a term! ● Capacity planning / Cost Estimation / Benchmark The cloud is a complex beast. Pay per use feels liberating but for consistently high usage/loads is cloud even apt?
  • 9. AWS vs Azure (Considerations contd.) ● You are bound to be confused
  • 14. Azure ● Microsoft Azure initially was all over the place; but in the last 2 years it has caught up and is in a promising direction (same can be said about Microsoft) ● Our software stack was a ‘first class’ citizen in Azure ecosystem - Azure SQL Database Pool - Azure App Service AWS vs Azure (Considerations contd.) AWS ● 3+ Experience running a horizontally auto-scaled Ad-server and Event racking system with close to 99.998% uptime ● Exposed to the full stack of AWS right from Route53, ELB, EC2, DynamoDB, S3 and CDN
  • 15. Azure SQL Database Elastic Pool AWS vs Azure (Considerations contd.)
  • 16. Azure SQL Database Elastic Pool AWS vs Azure (Considerations contd.)
  • 17. Azure SQL Database Elastic Pool AWS vs Azure (Considerations contd.)
  • 18. Azure SQL Database Elastic Pool ● Simple, cost-effective solution for managing and scaling multiple databases that have varying and unpredictable usage demands ● Shared pricing plan ● Ideal for multi-tenant applications - large differences between peak utilization and average utilization per database. AWS vs Azure (Considerations contd.)
  • 19. AWS vs Azure (Considerations contd.) Azure App Service ● Multiple languages and frameworks - App Service has first-class support for ASP.NET, Node.js, Java, PHP, and Python. ● DevOps optimization - Set up continuous integration and deployment with Visual Studio Team Services, GitHub, or BitBucket. Promote updates through test and staging environments ● Global scale with high availability - Scale up or out manually or automatically.
  • 20. ● If you are working on business critical applications - then it’s an important consideration ● You ideally want the best of what is to be offered by cloud provider but not get locked in. Unless it suits your need to the tee. ● Having a popular and widely adopted service as managed is a great advantage - happy that slowly and steadily Azure offers such services - eg: Redis, HD Insight, Azure SQL Cloud vendor lock-in (Considerations contd.)
  • 21. ● Pay-per-use is great for on-demand or sporadic usage; for always on infrastructure being able to benchmark loads and eventually estimate costs is difficult to get right ● We had cases of Azure DBs capacity planning tool fail on us - not having the right plan size. We split each tenant to multiple DBs of it’s own ● Migrated tenants in batches and so we were able to benchmark and plan capacity likewise Capacity / Cost / Benchmarking (Considerations contd.)
  • 22. Service / Worker VMs - From 1 big box VM to 25 VMs Misc Services - Redis - CDN - Cloud storage Current Setup (Infrastructure) Azure SQL - 80 tenants on 1 SQL DB > 480 DBs (4x) - Hovering around 1 TB; to 2.8TB Azure App Service - Web app - API - WCF
  • 23. Timeline of Migration Discussing and evaluation various ideas April 2016 Declaration of WAR June 2016 First live tenant Mid August New tenants started using the cloud stack Sept 2016 All tenants migrated with close to 12months data Dec 2016
  • 24. ● Tooling / Logging / Performance monitoring We had one problem earlier; now the problem is compounded and spread out ● Keeping all DB schemas in sync (migrations) ● Exception logging; actionable SMS alerts ● Our costs increased 3-5x; also the number of tenants in that time. But we were able to scale New Challenges
  • 25. “The cloud is not a silver bullet” silver bullet ~ noun ‘a simple and seemingly magical solution to a complicated problem’ Twitter: @ak47suve Email: akshay@deltax.com