Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado
-
Upload
net-conf-uy -
Category
Technology
-
view
161 -
download
2
description
Transcript of Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado
Windows Azure ArchitectureI think, therefore I am
Fernando Machado PírizEnterprise Architect, Microsoft
@netconfuy@fmachadopiriz
Fortune 500 using Azure
>57% >250kActive websites
Greater than
1,000,000SQL Databases in Azure
>20TRILLIONstorageobjects >300 MILLION
AD users
>13 BILLIONauthentication/wk>2
MILLIONrequests/sec >1
MILLIONDevelopers
registered with
Visual Studio
Online
t
Co
mp
ute
t
Co
mp
ute
t
Co
mp
ute Inactivity period
t
Co
mp
ute
t
Co
mp
ute
t
Co
mp
ute
Cheaper
Elasticity
Pay as you go
Cloud attributes
Metered
New scenarios
Pooled and shared resources
Traditional World New, Innovative World
Cheaper Cheaper
Elasticity
Pay as you go
Pooled and shared resources
Metered
Pooled and shared resources
Metered
New scenarios
Traditional World New, Innovative World
Many features
Development lifecycle
Mean time to failure
Unknown consumption habits
On time, on budget
Slow update pace
Reliability and agility over features
Continuous development
Mean time to resolution
Detailed usage patterns
Up and running at appropriate costs
Continuous updates
Agility over features
Continuous development
Mean time to resolution
Up and running at appropriate costs
Continuous updates
Run
DeployTestBuild
Continuous integration
Continuous deployment
Automation
Source control
PowerShellAPI
Visual Studio Git support
Team FoundationServer
Visual Studio Online
Reliability over features
Mean time to resolution
Detailed usage patterns
Up and running at appropriate costs
Run
DeployTestBuild
Telemetry
Instrumentation
AppDynamics
New Relic MetricsHub
DynatraceMicrosoft System Center
Microsoft Application Insights for Visual Studio Online
Reliability over features
Up and running at appropriate costs
Health check
Health Endpoint Monitoring
Storage
Database
StorageDatabaseService AService B…
Application
CDN|
CDNApplication…
Agent
On-premises, cloud-hosted, or
third_party service
Response time: 50msStorage: 5msDatabase: 20ms…
200 (Ok)
Port 80 (http) or 443 (https)
endpoint
Stateless web servers
No session state; or distributed caching
Reliability over features
Mean time to resolution
Up and running at appropriate costs
Continuous updates
Content distribution networks
Default to async
Web development
CDNWebsites Virtual Machines
Reliability over features
Up and running at appropriate costs
Continuous updates
Caching
MemcachedCloud
Managed Cache Service
RedisCache
In−Role Cache
24 GB Distributed Cache
12 GB 12 GB
Web roles, worker roles, virtual machines
Reliability over features
Up and running at appropriate costs
Relational Key/Value Colum Family Document Graph
Azure SQL Database
SQL ServerOracleMySQL
SQL Compact
SQLitePostgres
Azure Blob Storage
Azure TableStorage
Azure CacheRedisMemcachedRiak
CassandraHBase
DocumentDBMongoDBRavenDBCouchDB
Neo4J
IaaS (virtual machines)
Storage
ACID vs BASE
AzureCache
AzureTable
Azure SQL Database
Azure Blob Storage
HDInsight(Hadoop)
PaaS (managed services)
DocumentDB
Reliability over features
Up and running at appropriate costs
Retry
Resiliency
Application Hosted service
1
2
3
500
500
200
Reliability over features
Up and running at appropriate costs
Resiliency
Circuit breaker
Closedentry / reset failuredo / if operation succeeds
return resultelse
increment failure countreturn failure
Half-openentry / reset success counterdo / if operation succeeds
increment success counterreturn result
elsereturn failure
Openentry / start timeout timerdo / return failure
Failure thresholdreached
Success countthreshold reached
Timeouttimer expired
Operationfailed
Reliability over features
Up and running at appropriate costs
Throttling
Resiliency
Feature C
Feature B
Feature A
Re
sou
rce
uti
liza
tio
n
Soft limit ofresource utilization
Time
Maximum capacity
Feature B is suspended to allow sufficient resources for applications to
use Feature A and C
T1 T2
Re
sou
rce
uti
liza
tio
n
All applications
Autoscaling starts at this point
Throttling is relaxed when autoscaling
completes
Maximum capacity after autoscaling
Maximum capacity before autoscaling
Soft limit ofresource utilization
System is throttled while autoscaling
occurs
TimeT1 T2
Reliability over features
Up and running at appropriate costs
Resiliency
Throttling
Compensating transactions
Book seat on flight 1
Book seat on flight 2
Book seat on flight 3
Reserve room at hotel 1
Reserve room at hotel 2
Compensating logic
Compensating logic
Compensating logic
Compensating logic
Compensating logic
Cancel seat on flight 1
Cancel seat on flight 1
Cancel seat on flight 1
Cancel room on hotel 1
Reliability over features
Up and running at appropriate costs
Resiliency
private async Task MyTaskAsync(SomeType param){
var result = await object.ProcessMessagesAsync(param);}
Reliability over features
Up and running at appropriate costs
Default to async
Asynchronous Messaging Primer
Reliability over features
Up and running at appropriate costs
Default to async
Sender Receiver
Message queue
Storage Queue
Service Bus Relay
Service Bus Queue
Service Bus Topic
BizTalk Services
Service Bus
Asynchronous Messaging Primer
Reliability over features
Up and running at appropriate costs
Default to async
Senders Receivers
Shared message queue
Queue-Based Load Leveling
Reliability over features
Up and running at appropriate costs
Default to async
Tasks
Service
Message queue
Messages processed at
a more constant rate
Requests received at a variable rate
Event sourcing
Reliability over features
Up and running at appropriate costs
Default to async
Presentation
Cart created
Item 1 added
Item 2 added
Item 1 added
Shipping infoadded
Event store ~~Replayed events
External systems and applications
Cart IDDate
CustomerAddress
…
Cart
Cart Item
Cart IDItem Key
Item NameQuantity
…
Materialized View
Published events
Query for current state of
entities
Questions?Thanks!
Fernando Machado PírizEnterprise Architect, Microsoft
@netconfuy@fmachadopiriz