Download presentation
Presentation is loading. Please wait.
1
What I Learned Making a Global Web App
Igor Fesenko Application Architect, SoftServe Inc. @ky7m
2
Who Am I? Engineer<T> where T : C# | Azure | JavaScript
Microsoft® Most Valuable Professional (MVP) Passionate about continuous improvements Working on the integration of two big ecosystems More… go to ifesenko.com
3
Global Web App What does it mean to you?
What are the business requirements? Different requirements mean a different architecture
4
Architecture
5
Resiliency Resiliency Backup Disaster recovery High availability
Cost / Complexity RPO/RTO Backup Disaster recovery High availability RTO >> 0 RTO > 0 RTO = 0 Best For: Data deletion Data corruption Legal, governance & compliance Protection for unplanned failures Don’t want to re-architect for HA Don’t want the cost of HA Large scale failures Mission critical apps New apps Localized failures
6
What can go wrong? Compute Networking Storage All of them
7
Common single-region deployment- RDBMS
Storage (LRS) App Availability Set Front End … Database Queue Distributed Cache Blobs
8
Multi-region deployment
Active/Passive Only one region online with DR failover Active/Active Round robin (all regions accept traffic) Active performance Many regions, user is routed to nearest
9
Multi-region deployment (active/passive)
Storage (RA-GRS) App Availability Set Front End … Database Queue Distributed Cache Blobs Storage (RA-GRS) App Availability Set Front End … Database Queue Blobs Distributed Cache Async West Europe (Primary) North Europe (Secondary)
10
Multi-region deployment (active/active)
Storage (RA-GRS) App Availability Set Front End … Database Queue Distributed Cache Blobs Storage (RA-GRS) App Availability Set Front End … Database Queue Distributed Cache Blobs Session Consistency West Europe (Primary) Central US (Secondary)
11
Using a CDN for availability
Protection from DDoS Greater availability and scale for your origin Other benefits: Lower latency content delivery Faster data delivery Lower data usage
12
Fault Injection Chaos Monkey Tests for single point of failure
Simulates failure
13
Our “marketecture” diagram
14
Compute
15
Azure App Service Deployed with configuration management techniques
Can be auto-scaled Portal / ARM template Configuration management A/B testing
16
When to use Azure App Service?
11/13/ :01 PM When to use Azure App Service? Server-side applications in .NET Framework Use just .NET Framework on pure PaaS Azure App Service Cloud-Optimized for web apps NO dependencies A ASP.NET MVC app Web Forms app App has server/custom dependencies? Web API service Use .NET Framework on Windows Containers Windows Containers Azure or On-Premises B Cloud DevOps-Ready for web apps YES, dependencies SignalR service Web Pages app WCF service Server/custom dependencies: i.e. MSI to install on server, COM/COM+ components, ISAPI, etc. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
17
Network
18
What do you do if a region fails?
a) Use a Load Balancer to shift to additional resources b) Use Azure DNS to point to a paired region c) Use Traffic Manager to change regions d) Initiate your failover runbook in Azure Site Recovery e) Complain on Twitter
19
How Traffic Manager handles endpoint loss
Update DNS Zzzzzzz You there? Yup, all good. GET X No Response 200 OK 10s 20s 10s 20s 10s 20s 10s 20s 10s 20s 10s Time
20
Traffic Manager DNS-based load balancing and failover
Health probe of endpoints to determine availability Impact of Time To Live (TTL) Multiple performance policies Performance Priority Weighted Geographic
21
Traffic View
22
Storage
23
Storage Types of storage
Locally redundant (LRS) - 3 local copies strongly consistent Zone redundant (ZRS) – 3 copies across 2 or 3 facilities Geo-redundant (GRS) – 3 local copies strongly consistent, 3 remote copies eventually consistent Read access geo-redundant (RA-GRS) – Same as GRS but with read-only access of eventually consistent data
24
Monitor and Learn
25
Alerts
26
Monitor and Learn - 1/6
27
Monitor and Learn - 2/6
28
Monitor and Learn - 3/6
29
Monitor and Learn - 4/6
30
Monitor and Learn - 5/6
31
Monitor and Learn - 6/6
32
Questions @ky7m | ifesenko.com |
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.