SlideShare une entreprise Scribd logo
1  sur  33
Audrius Žiemelis
www.devbridge.com/people
ServiceBridge: Azure to AWS
January, 2016
What is ServiceBridge?
ServiceBridge field service management software is designed to assist
franchise businesses with work order scheduling and distribution, eliminate
paperwork and engage customers to increase sales. We’ve had great success
with landscape maintenance, carpet cleaning, pool cleaning, pest control, and
disaster clean up service franchises.
Facts
• Company count: 556 (646)
• User count: 1751 (2129)
• Customer count: 1 467 283 (2 051 145)
• Job count: 5 995 674 (8 557 062)
• Database size:
Shard1 - 34Gb (43Gb)
Shard2 - 31Gb (37Gb)
SB - 12Gb (18Gb)
• ElasticSearch size: 32Gb (10Gb)
ServiceBridge components (Azure)
• SQL Profiler (only locally)
• Logging improvements to ElasticSearch
• NewRelic
Monitoring tools
Attempts to keep wheels running...
Infrastructure:
• Distributed Cache implementation
• Database 2nd shard implementation (by CompanyId)
• ElasticSearch – 3 smaller nodes with more RAM instead of 2 big
• MSSQL Index maintenance
Software:
• Bulk inserts / updates (NHibernate.IStatelessSession)
• DynamicUpdate anotation
• new TransactionScope() – by default Serializable!
• NHibernate IsDirty check
The last drops of patience
• DTU – what is 250 or 500?
• Azure SQL: P1 → P2 → P4 → P6 → P11…
• Azure SQL Price: $465 → $930 → $1860 → $3720 → $7001
• Performance is still bottleneck
• Cost cost cost!
Text
Text
Text
Text
IAM
VPC
EC2
Directory Service
CloudTrail
CloudWatch
SNS
ElastiCache
S3
Lambda
CodeDeploy
Trusted Advisor
CloudFormation
Infrastructure
● 2 x Web Servers (SB360) (c4.xlarge, 4 vCPU, 7.5 GB Memory)
● 2 x API Servers (c4.xlarge, 4 vCPU, 7.5 GB Memory)
● 2 x Web Servers (c4.large, 2 vCPU, 3.75 GB Memory)
● 2 x SQL Servers (r3.2xlarge, 8 vCPU, 61 GB Memory)
● 1 x SQL Servers (r3.xlarge, 4 vCPU, 30.5 GB Memory)
● 3 x ElasticSearch servers (for search), (r3.large, 2 vCPU, 15.25 GB Memory)
● 2 x ElasticSearch servers (for logs), (r3.large, 2 vCPU, 15.25 GB Memory)
● 2 x NAT Servers (m3.medium, 1 vCPU, 3.75 GB Memory)
● 1 x Redis Cache cluster with 2 nodes (m3.medium, 1 vCPU, 2.78 GB Memory)
● 3 x Public load balancers (Web and API Servers)
● 2 x Internal load balancers (SB360 and API Servers)
● 2 x Internal load balancers (ElasticSearch Servers)
Load
SB360:
● Web: ~1200 rpm
● Non-Web: ~1200 rpm
● DB: ~3000 rpm
● Redis: ~1100 rpm
API:
● API: ~1300 rpm
● Non-Web: ~8000 rpm
● DB: ~17000 rpm
What has changed?
• Communication with „Cloud“:
- Active Directory
- VPN
• NAT Server:
- Outbound traffic goes through NAT server
- Only two public IPs
• Web servers
- 3 couples of web servers (2 x Web, 2 x API, 2 x Everything else)
- DFS (IIS configuration is synchronized between servers)
What has changed?
• SQL Server:
- EC2 instead of SQL as a Service (RDS)
- Web edition
- Backups to S3 (Bucket lifecycle rules)
- Accessible only from VPC
• Redis Cache
- No built-in security
- Accessible only from VPC
- Security controlled via Security Groups
What has changed?
• ElasticSearch:
- 5 Linux servers (2 x logs, 3 x search)
- Isolated Staging and Production environments
- Accessible only from VPC
- Backup strategy: snapshots
- Heap memory size configuration
• Reverse engineering VPC:
- CloudFormation
- Separate Linux EC2 instance to “script” VPC (shutdown)
Deployments
• CCNET to Team City
• Single build for all solutions: ~23 mins vs > 60 mins
• Deployment packages are stored on S3
• Lambda service triggers CodeDeploy service
• CodeDeploy deploys packages to EC2 instances one at a time
• Configuration may vary:
- One at a time
- Half at a time
- All at once
Migration day
• Source code and configuration:
In advance
• Web sites stopped using app_offline.htm
• Database migration:
From Azure SQL using .bacpac
From Azure VM using .bak
• ElasticSearch:
Using snapshot / restore functionality
Migration day issues
• App_Offline.htm design (Arnold Schwarzenegger vs. Pretty lady)
• What pizzas to order for lunch?
• Minor issues (outdated configuration, third party components security)
• Main functionality restored in 2 hours 30 mins
• Regarding to boss – it was the most complicated and smoothest migration in
his career!
5 months since migration…
• 0 night calls
• 100% uptime
• Average response time is stable on peak time
• $11k/month → $6k/month
Questions?

Contenu connexe

Plus de Kaunas Java User Group

Intro to Java 8 Closures (Dainius Mezanskas)
Intro to Java 8 Closures (Dainius Mezanskas)Intro to Java 8 Closures (Dainius Mezanskas)
Intro to Java 8 Closures (Dainius Mezanskas)Kaunas Java User Group
 
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)Kaunas Java User Group
 
Kaunas JUG#2: Devoxx 2013 (Saulius Tvarijonas)
Kaunas JUG#2: Devoxx 2013 (Saulius Tvarijonas)Kaunas JUG#2: Devoxx 2013 (Saulius Tvarijonas)
Kaunas JUG#2: Devoxx 2013 (Saulius Tvarijonas)Kaunas Java User Group
 

Plus de Kaunas Java User Group (6)

Apache Lucene Informacijos paieška
Apache Lucene Informacijos paieška Apache Lucene Informacijos paieška
Apache Lucene Informacijos paieška
 
Java 8 Stream API (Valdas Zigas)
Java 8 Stream API (Valdas Zigas)Java 8 Stream API (Valdas Zigas)
Java 8 Stream API (Valdas Zigas)
 
Intro to Java 8 Closures (Dainius Mezanskas)
Intro to Java 8 Closures (Dainius Mezanskas)Intro to Java 8 Closures (Dainius Mezanskas)
Intro to Java 8 Closures (Dainius Mezanskas)
 
Kaunas JUG#1: Intro (Valdas Zigas)
Kaunas JUG#1: Intro (Valdas Zigas)Kaunas JUG#1: Intro (Valdas Zigas)
Kaunas JUG#1: Intro (Valdas Zigas)
 
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
 
Kaunas JUG#2: Devoxx 2013 (Saulius Tvarijonas)
Kaunas JUG#2: Devoxx 2013 (Saulius Tvarijonas)Kaunas JUG#2: Devoxx 2013 (Saulius Tvarijonas)
Kaunas JUG#2: Devoxx 2013 (Saulius Tvarijonas)
 

Dernier

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...DianaGray10
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
"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 ...Zilliz
 
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 SavingEdi Saputra
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
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 REVIEWERMadyBayot
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
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 2024Victor Rentea
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
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, ...Angeliki Cooney
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
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 FMESafe Software
 

Dernier (20)

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...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
"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 ...
 
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
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
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
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
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
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
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, ...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
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
 

ServiceBridge: Azure to AWS by Audrius Ziemelis

  • 2. What is ServiceBridge? ServiceBridge field service management software is designed to assist franchise businesses with work order scheduling and distribution, eliminate paperwork and engage customers to increase sales. We’ve had great success with landscape maintenance, carpet cleaning, pool cleaning, pest control, and disaster clean up service franchises.
  • 3. Facts • Company count: 556 (646) • User count: 1751 (2129) • Customer count: 1 467 283 (2 051 145) • Job count: 5 995 674 (8 557 062) • Database size: Shard1 - 34Gb (43Gb) Shard2 - 31Gb (37Gb) SB - 12Gb (18Gb) • ElasticSearch size: 32Gb (10Gb)
  • 5. • SQL Profiler (only locally) • Logging improvements to ElasticSearch • NewRelic Monitoring tools
  • 6. Attempts to keep wheels running... Infrastructure: • Distributed Cache implementation • Database 2nd shard implementation (by CompanyId) • ElasticSearch – 3 smaller nodes with more RAM instead of 2 big • MSSQL Index maintenance Software: • Bulk inserts / updates (NHibernate.IStatelessSession) • DynamicUpdate anotation • new TransactionScope() – by default Serializable! • NHibernate IsDirty check
  • 7. The last drops of patience • DTU – what is 250 or 500? • Azure SQL: P1 → P2 → P4 → P6 → P11… • Azure SQL Price: $465 → $930 → $1860 → $3720 → $7001 • Performance is still bottleneck • Cost cost cost!
  • 10. IAM
  • 11. VPC
  • 12. EC2
  • 16. SNS
  • 18. S3
  • 23.
  • 24. Infrastructure ● 2 x Web Servers (SB360) (c4.xlarge, 4 vCPU, 7.5 GB Memory) ● 2 x API Servers (c4.xlarge, 4 vCPU, 7.5 GB Memory) ● 2 x Web Servers (c4.large, 2 vCPU, 3.75 GB Memory) ● 2 x SQL Servers (r3.2xlarge, 8 vCPU, 61 GB Memory) ● 1 x SQL Servers (r3.xlarge, 4 vCPU, 30.5 GB Memory) ● 3 x ElasticSearch servers (for search), (r3.large, 2 vCPU, 15.25 GB Memory) ● 2 x ElasticSearch servers (for logs), (r3.large, 2 vCPU, 15.25 GB Memory) ● 2 x NAT Servers (m3.medium, 1 vCPU, 3.75 GB Memory) ● 1 x Redis Cache cluster with 2 nodes (m3.medium, 1 vCPU, 2.78 GB Memory) ● 3 x Public load balancers (Web and API Servers) ● 2 x Internal load balancers (SB360 and API Servers) ● 2 x Internal load balancers (ElasticSearch Servers)
  • 25. Load SB360: ● Web: ~1200 rpm ● Non-Web: ~1200 rpm ● DB: ~3000 rpm ● Redis: ~1100 rpm API: ● API: ~1300 rpm ● Non-Web: ~8000 rpm ● DB: ~17000 rpm
  • 26. What has changed? • Communication with „Cloud“: - Active Directory - VPN • NAT Server: - Outbound traffic goes through NAT server - Only two public IPs • Web servers - 3 couples of web servers (2 x Web, 2 x API, 2 x Everything else) - DFS (IIS configuration is synchronized between servers)
  • 27. What has changed? • SQL Server: - EC2 instead of SQL as a Service (RDS) - Web edition - Backups to S3 (Bucket lifecycle rules) - Accessible only from VPC • Redis Cache - No built-in security - Accessible only from VPC - Security controlled via Security Groups
  • 28. What has changed? • ElasticSearch: - 5 Linux servers (2 x logs, 3 x search) - Isolated Staging and Production environments - Accessible only from VPC - Backup strategy: snapshots - Heap memory size configuration • Reverse engineering VPC: - CloudFormation - Separate Linux EC2 instance to “script” VPC (shutdown)
  • 29. Deployments • CCNET to Team City • Single build for all solutions: ~23 mins vs > 60 mins • Deployment packages are stored on S3 • Lambda service triggers CodeDeploy service • CodeDeploy deploys packages to EC2 instances one at a time • Configuration may vary: - One at a time - Half at a time - All at once
  • 30. Migration day • Source code and configuration: In advance • Web sites stopped using app_offline.htm • Database migration: From Azure SQL using .bacpac From Azure VM using .bak • ElasticSearch: Using snapshot / restore functionality
  • 31. Migration day issues • App_Offline.htm design (Arnold Schwarzenegger vs. Pretty lady) • What pizzas to order for lunch? • Minor issues (outdated configuration, third party components security) • Main functionality restored in 2 hours 30 mins • Regarding to boss – it was the most complicated and smoothest migration in his career!
  • 32. 5 months since migration… • 0 night calls • 100% uptime • Average response time is stable on peak time • $11k/month → $6k/month