arquitectura para windows azure: pienso, luego existo by fernando machado

28

Upload: net-conf-uy

Post on 07-Jul-2015

161 views

Category:

Technology


2 download

DESCRIPTION

Arquitectura para Windows Azure: Pienso, luego existo Fernando Machado .NET Conf UY 2014 http://netconf.uy

TRANSCRIPT

Page 1: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado
Page 2: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado
Page 3: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado
Page 4: 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

Page 5: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

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

Page 6: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

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

Page 7: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

Cheaper

Elasticity

Pay as you go

Cloud attributes

Metered

New scenarios

Pooled and shared resources

Page 8: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

Traditional World New, Innovative World

Cheaper Cheaper

Elasticity

Pay as you go

Pooled and shared resources

Metered

Pooled and shared resources

Metered

New scenarios

Page 9: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

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

Page 10: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

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

Page 11: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

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

Page 12: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

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

Page 13: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

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

Page 14: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

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

Page 15: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

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

Page 16: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

Reliability over features

Up and running at appropriate costs

Retry

Resiliency

Application Hosted service

1

2

3

500

500

200

Page 17: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

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

Page 18: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

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

Page 19: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

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

Page 20: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

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

Page 21: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

private async Task MyTaskAsync(SomeType param){

var result = await object.ProcessMessagesAsync(param);}

Reliability over features

Up and running at appropriate costs

Default to async

Page 22: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

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

Page 23: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

Asynchronous Messaging Primer

Reliability over features

Up and running at appropriate costs

Default to async

Senders Receivers

Shared message queue

Page 24: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

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

Page 25: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

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

Page 26: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado
Page 27: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado
Page 28: Arquitectura para Windows Azure: Pienso, luego existo by Fernando Machado

Questions?Thanks!

Fernando Machado PírizEnterprise Architect, Microsoft

@netconfuy@fmachadopiriz