Viaggio attraverso il cloud come costruire architetture web scalabili e robuste con aws

101
Come costruire architetture web scalabili e robuste Danilo Poccia – Solution Architect

description

In questa presentazione spiegheremo come disegnare architetture elastiche e affidabili su AWS, usando le architetture web come punto di riferimento. Verranno anche coperti aspetti di scalabilità, sicurezza, gestione delle applicazioni e copertura globale.

Transcript of Viaggio attraverso il cloud come costruire architetture web scalabili e robuste con aws

Page 1: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Come costruire architetture web scalabili e robuste

Danilo Poccia – Solution Architect

Page 2: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Nicola Previati – [email protected]

Mario Vetrano – [email protected]

Page 3: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

I tuoi feedback sono importanti

Raccontaci:

Cosa ti piace , cosa non ti piace

Cosa vorresti ascoltare

durante questi webinar

Quali servizi vorresti vedere offerti da AWS

Page 4: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Mission di AWS

Permettere ad Aziende e Sviluppatori di creare applicazioni complesse e

scalabili attraverso l’utilizzo di servizi web*.

*Quello che oggi viene comunemente chiamato “cloud”

Page 5: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Utility computing

Page 6: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Utility Computing

On demand Paghi per quanto utilizzi

Uniforme Disponibile

Page 7: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

On demand

Uniforme Disponibile

Utility Computing

Paghi per quanto utilizzi

Page 8: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Compute

Storage

Security Scaling

Database

Networking Monitoring

Messaging

Workflow

DNS

Load Balancing

Backup CDN

On demand

Uniforme Disponibile

Utility Computing

Paghi per quanto utilizzi

Page 9: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Una Copertura Globale

Region

US-WEST (N. California) EU-WEST (Ireland)

ASIA PAC (Tokyo)

ASIA PAC (Singapore)

US-WEST (Oregon)

SOUTH AMERICA (Sao Paulo)

US-EAST (Virginia)

GOV CLOUD

ASIA PAC (Sydney)

Page 10: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Availability Zone

Una Copertura Globale

Page 11: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Edge Location

Dallas(2)

St.Louis

Miami

Jacksonville Los Angeles (2)

Palo Alto

Seattle

Ashburn(2)

Newark

New York (3)

Dublin

London(2)

Amsterdam(2)

Stockholm

Frankfurt(2)

Paris(2)

Singapore(2)

Hong Kong(2)

Tokyo(2)

Sao Paulo

South Bend

San Jose

Osaka Milan

Sydney

Una Copertura Globale

Seoul

Mumbai Chennai

Page 12: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Una ricca console di management

Page 13: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Capacità IT

necessaria con

sistemi tradizionali

Capacità Elastica

Capacità

Tempo Le tue esigenze IT

Page 14: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Accendi e Spegni Crescita Rapida

Picchi Variabili Picchi non Prevedibili

Capacità Elastica

Page 15: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Accendi e Spegni Crescita Rapida

Picchi non Prevedibili Picchi Variabili

Spreco di risorse

Cliente non soddisfatto

Capacità Elastica

Page 16: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Capacità Elastica

Capacità IT necessaria con

sistemi tradizionali

Le tue esigenze IT

Tempo

Capacità

Capacità Elastica

Page 17: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Crescita Rapida Accendi e Spegni

Picchi non Prevedibili Picchi Variabili

Capacità Elastica

Page 18: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

503 Service Temporarily Unavailable

The server is temporarily unable to service

your request due to maintenance downtime or

capacity problems. Please try again later.

Page 19: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

503 Service Temporarily Unavailable

The server is temporarily unable to service

your request due to maintenance downtime or

capacity problems. Please try again later.

Page 20: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Da una istanza…

Page 21: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

…a migliaia di istanze

Page 22: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Tempo: +00h

<10 core

Capacità Elastica

Numero di Core

Page 23: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Tempo: +24h

>1500 core

Capacità Elastica

Numero di Core

Page 24: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Tempo: +72h

<10 cores

Capacità Elastica

Numero di Core

Page 25: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Tempo: +120h

>600 cores

Capacità Elastica

Numero di Core

Page 26: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Cosa vogliono gli utenti…

Page 27: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Cosa vogliono gli utenti…

Una navigazione rapida e veloce

Page 28: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Cosa vogliono gli utenti…

Una navigazione rapida e veloce

Un sito sempre disponibile ed

accessibile

Page 29: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Cosa vogliono gli utenti…

Una navigazione rapida e veloce

Un sito sempre disponibile ed

accessibile

Una applicazione personalizzata e

ricca di contenuti

Page 30: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Cosa vogliono gli utenti…

Una navigazione rapida e veloce

Un sito sempre disponibile ed

accessibile

Una applicazione personalizzata e

ricca di contenuti

Nuove funzionalità introdotte spesso e

rapidamente

Page 31: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Architetture web scalabili e robuste

Una navigazione rapida e veloce

Un sito sempre disponibile ed

accessibile

Una applicazione personalizzata e

ricca di contenuti

Nuove funzionalità introdotte spesso e

rapidamente

Page 32: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Come?

Page 33: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Architetture web scalabili e robuste

Page 34: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Regola 2: Servire le richieste velocemente

Regola 1: Servire tutte le richieste web

Regola 3: Gestire richieste a qualsiasi scala

Regola 4: Semplificare l’architettura con i servizi

Regola 5: Automatizzare la gestione operativa

Regola 6: Sfruttare le unicità del Cloud

Page 35: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

DNS Applicazione Dati

Regola 1: Servire tutte le richieste web

a) Fate in modo che le richieste raggiungano la vostra applicazione

Page 36: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

DNS Applicazione Dati Richieste

Regola 1: Servire tutte le richieste web

a) Fate in modo che le richieste raggiungano la vostra applicazione

Page 37: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

DNS Applicazione Dati Richieste

Regola 1: Servire tutte le richieste web

a) Fate in modo che le richieste raggiungano la vostra applicazione

Page 38: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

DNS Applicazione Dati Richieste

…tutto quello che sta dietro diventa

irrilevante

Se i Client non riescono a risolvere il vostro indirizzo …

Regola 1: Servire tutte le richieste web

a) Fate in modo che le richieste raggiungano la vostra applicazione

Page 39: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

DNS Applicazione Dati Richieste

“SLA per Disponibilità

al 100%”

Route53

Funzionalità Dettegli

Globale Grazie alla distribuzione delle edge location AWS sul globo garantisce una risoluzione dei nomi veloce ed affidabile

Scalabile Scalabilità automatica in base al volume di query

Routing basato sulla latenza

Supporta la risoluzione degli endpoint in base alla latenza, rendendo possibile la distribuzione delle applicazioni su più Region

Integrato L’integrazione nativa con gli altri servizi AWS permette a Route 53 di operare come punto d’ingresso verso ELB, EC3 ed S3

Sicuro L’integrazione nativa con IAM consente un controllo granulare sull’accesso ai record DNS

http://aws.amazon.com/route53/sla

Regola 1: Servire tutte le richieste web

a) Fate in modo che le richieste raggiungano la vostra applicazione

Page 40: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

DNS Applicazione Dati Richieste

a) Fate in modo che le richieste raggiungano la vostra applicazione b) Fate in modo che le richieste vengano processate all’arrivo

Route53

Regola 1: Servire tutte le richieste web

Page 41: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Region

Elastic Load

Balancer Region

Availability Zone

Availability Zone

Availability Zone

Availability Zone

Route53

Elastic load balancing Multi-availability zone Multi-region

DNS Applicazione Dati Richieste

a) Fate in modo che le richieste raggiungano la vostra applicazione b) Fate in modo che le richieste vengano processate all’arrivo

Regola 1: Servire tutte le richieste web

Page 42: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Region

DNS Applicazione Dati Richieste

Region

a) Fate in modo che le richieste raggiungano la vostra applicazione b) Fate in modo che le richieste vengano processate all’arrivo c) Fate in modo di fornire i dati in risposta alle richieste

Elastic Load

Balancer Region

Availability Zone

Availability Zone

Availability Zone

Availability Zone

Route53

Regola 1: Servire tutte le richieste web

Page 43: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Region

Region

Elastic Load

Balancer

Route53

Region

Availability Zone

Availability Zone

Availability Zone

Availability Zone

Multi-AZ RDS

(Master-slave)

Inter-region replication

Read-replica

DNS Applicazione Dati Richieste

a) Fate in modo che le richieste raggiungano la vostra applicazione b) Fate in modo che le richieste vengano processate all’arrivo c) Fate in modo di fornire i dati in risposta alle richieste

Regola 1: Servire tutte le richieste web

Page 44: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Regola 2: Servire le richieste velocemente

Regola 1: Servire tutte le richieste web

Regola 3: Gestire richieste a qualsiasi scala

Regola 4: Semplificare l’architettura con i servizi

Regola 5: Automatizzare la gestione operativa

Regola 6: Sfruttare le unicità del Cloud

Page 45: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Regola 2: Servire le richieste velocemente

Page 46: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Regola 2: Servire le richieste velocemente

a) Scegliete il percorso più veloce

Region A

Route53

Region B

Richiesta

Page 47: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Regola 2: Servire le richieste velocemente

a) Scegliete il percorso più veloce

Region A

Route53

Region B

16ms 92ms

Richiesta

Page 48: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Region A

Route53

Region B

16ms 92ms

Richiesta

a) Scegliete il percorso più veloce

Regola 2: Servire le richieste velocemente

Page 49: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Region A

Route53

Region B

16ms

Richiesta

Il DNS seleziona la Region A

a) Scegliete il percorso più veloce

Regola 2: Servire le richieste velocemente

Page 50: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

a) Scegliete il percorso più veloce b) Alleggerite gli application server

London

Milan

NY

Contenuti serviti da S3

/images/*

3

Contenuti serviti da EC2

*.php

2

CNAME singolo

www.miosito.com

1

CloudFront Content Delivery Network (CDN) globale

che permette una facile distribuzione dei

contenuti agli utenti finali garantendo

bassa latenza, alta velocità di

trasferimento dati e nessun commitment

di utilizzo.

Regola 2: Servire le richieste velocemente

Page 51: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Senza CloudFront

I web/application server su EC2 assorbono il carico di

traffico generato dalle richieste degli utenti

a) Scegliete il percorso più veloce b) Alleggerite gli application server

Regola 2: Servire le richieste velocemente

Page 52: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Con CloudFront

Il carico dovuto alle richieste degli

utenti viene assorbito da CloudFront,

mentre i cluster EC2 possono fare

down scale Offload

Scale Down

a) Scegliete il percorso più veloce b) Alleggerite gli application server

Regola 2: Servire le richieste velocemente

Page 53: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Res

po

nse

Tim

e

Serv

er L

oad

Res

po

nse

Tim

e

Serv

er

Load

Res

po

nse

Tim

e

Serv

er

Load

Senza CDN Con CDN

per

contenuti

statici

Con CDN

per

contenuti

statici e

dinamici Offload Scale Down

a) Scegliete il percorso più veloce b) Alleggerite gli application server

Regola 2: Servire le richieste velocemente

Page 54: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

a) Scegliete il percorso più veloce b) Alleggerite gli application server c) Usate la cache dove potete

ElastiCache

Mette a disposizione un livello di

caching compatibile con Memcached

Permette di servire sia i contenuti con

accesso frequente che quelli con

richieste sporadiche tramite un cluster

di cache scalabile

Permette di ridurre il carico di lavoro

dei database e di altri server

nell’infrastruttura

Regola 2: Servire le richieste velocemente

Page 55: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

a) Scegliete il percorso più veloce b) Alleggerite gli application server c) Usate la cache dove potete d) Ottenete latenze dell’ordine dei millisecondi nei casi in cui conta

Scala Perf

orm

ance

Qu

ery

su

l Dat

abas

e

Consistenza desiderata, predicibilità

Regola 2: Servire le richieste velocemente

Page 56: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Aumentando la scala dell’applicazione le

performance decrescono

a) Scegliete il percorso più veloce b) Alleggerite gli application server c) Usate la cache dove potete d) Ottenete latenze dell’ordine dei millisecondi nei casi in cui conta

Scala Perf

orm

ance

Qu

ery

su

l Dat

abas

e

Consistenza desiderata, predicibilità

Regola 2: Servire le richieste velocemente

Page 57: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Problemi di gestione

Data sharding Data caching Provisioning

Cluster management Fault management

Aumentando la scala dell’applicazione le

performance decrescono

a) Scegliete il percorso più veloce b) Alleggerite gli application server c) Usate la cache dove potete d) Ottenete latenze dell’ordine dei millisecondi nei casi in cui conta

Scala Perf

orm

ance

Qu

ery

su

l Dat

abas

e

Consistenza desiderata, predicibilità

Regola 2: Servire le richieste velocemente

Page 58: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Performance delle Query con Dynamo DB

Performance delle Query con DB

relazionali

DynamoDB

Bassa latenza Larga scala

Nessun onere amministrativo Performance predicibili

a) Scegliete il percorso più veloce b) Alleggerite gli application server c) Usate la cache dove potete d) Ottenete latenze dell’ordine dei millisecondi nei casi in cui conta

Scala Perf

orm

ance

Qu

ery

su

l Dat

abas

e

Regola 2: Servire le richieste velocemente

Page 59: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Latenza media dell’ordine dei millisecondi lato server

Utilizza dischi allo stato solido ed è costruito per mantenere latenze consistenti e veloci su

ogni scala d’utilizzo

Performance delle Query con Dynamo DB DynamoDB

Bassa latenza Larga scala

Nessun onere amministrativo Performance predicibili

a) Scegliete il percorso più veloce b) Alleggerite gli application server c) Usate la cache dove potete d) Ottenete latenze dell’ordine dei millisecondi nei casi in cui conta

Scala Perf

orm

ance

Qu

ery

su

l Dat

abas

e

Regola 2: Servire le richieste velocemente

Page 60: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Regola 2: Servire le richieste velocemente

Regola 1: Servire tutte le richieste web

Regola 3: Gestire richieste a qualsiasi scala

Regola 4: Semplificare l’architettura con i servizi

Regola 5: Automatizzare la gestione operativa

Regola 6: Sfruttare le unicità del Cloud

Page 61: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Regola 3: Gestire richieste a qualsiasi scala

a) Effettuate Scale up

Scalare in verticale

da $0.02/ora

Unità di base per la capacità di calcolo

Diverse opzioni per CPU, memoria e dischi locali

17 tipologie di istanze già disponibili, dalla micro fino alle

cluster compute o istanze con supporto SSD

Effettuate Scale up con Elastic Compute Cloud (EC2)

Page 62: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

a) Effettuate Scale up b) Effettuate Scale out

Trigger

auto-scaling

policy

as-create-auto-scaling-group MyGroup

--launch-configuration MyConfig

--availability-zones eu-west-1a

--min-size 4

--max-size 200

Auto-scaling Permette il ridimensionamento automatico di cluster di

calcolo in base a trigger definibili

Regola 3: Gestire richieste a qualsiasi scala

Page 63: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Manuale

Tramite chiamata alle API o CLI per lanciare/terminare istanze; bisogna solo

specificare la varizione in +/- nella capacità di calcolo

Schedulato

Effettuate Scale up/down schedulati su base di data e ora

In base a trigger

Scalate la capacità di calcolo in risposta ad allarmi pre configurati su attività di

monitoraggio in tempo reale

Ribilaciamento automatico

Le istanze vengono automaticamente avviate/terminate per assicurare criteri di

bilanciamento definiti fra diverse AZ

a) Effettuate Scale up b) Effettuate Scale out

Regola 3: Gestire richieste a qualsiasi scala

Page 64: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Manuale

Tramite chiamata alle API o CLI per lanciare/terminare istanze; bisonga solo

specificare la varizione in +/- nella capacità di calcolo

Schedulato

Effettuate Scale up/down schedulati su base di data e ora

In base a trigger

Scalate la capacità di calcolo in risposta ad allarmi pre configurati su attività di

monitoraggio in tempo reale

Ribilaciamento automatico

Le istanze vengono automaticamente avviate/terminate per assicurare criteri di

bilanciamento definiti fra diverse AZ

Scalate la capacità manualmente in modo preventivo

Es: prima di un evento marketing aggiungiere 10 istanze aggiuntive per

supportare il traffico addizionale

Scalate la capacità in modo regolare e programmato

Es: scalare da 0 a 2 istanze ogni notte per processare i messaggi nella coda SQS e

nuovamente da 2 a 0 istanze a fine lavoro

Sclate in modo dinamico in base a metriche personalizzate

ES: in base alla lunghezza di una coda SQS, carico medio della CPU, latenza ELB

Scalate per mantenere la capacità di calcolo fra AZ

ES: Mantenere invariata la disponibilità di istanze nel caso una AZ diventi

indisponibile

a) Effettuate Scale up b) Effettuate Scale out

Regola 3: Gestire richieste a qualsiasi scala

Page 65: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

a) Effettuate Scale up b) Effettuate Scale out c) Componete la scalabilità

Elastic Block Store Fino a 4000 Provisioned IOPS

per ogni volume EBS

Performance predicibili per workload

intensivi come i database

DynamoDB Performance predicibili in lettura/scrittura

definibili a livello di singola tabella

Scalabilità e predicibilità gestibili via API e

Console web

Regola 3: Gestire richieste a qualsiasi scala

Page 66: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws
Page 67: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

“AWS ci ha dato la flessibilità di portare online un massiccio quantitativo di risorse in un breve

arco temporale, consentendoci anche di farlo con agevolezza dal punto di vista operativo.

AWS è senza dubbio il Cloud Provide di riferimento per Shazam”

Jason Titus,

CTO

DynamoDB: Più di 500,000 scritture al

secondo

Amazon EMR: Più di 1 milione di scritture

per secondo

Page 68: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Regola 2: Servire le richieste velocemente

Regola 1: Servire tutte le richieste web

Regola 3: Gestire richieste a qualsiasi scala

Regola 4: Semplificare l’architettura con i servizi

Regola 5: Automatizzare la gestione operativa

Regola 6: Sfruttare le unicità del Cloud

Page 69: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Sul vostro Business

70%

Infrastruttura in “casa”

30%

Per la gestione e manutenzione delle infrastrutture

Regola 4: Semplificare l’architettura con i servizi

Page 70: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Infrastruttura nel Cloud AWS

Sul vostro Business

Più tempo per focalizzarsi sul vostro business

Configurare gli asset nel Cloud

70%

30% 70%

Infrastruttura in “casa”

30%

Per la gestione e manutenzione delle infrastrutture

Regola 4: Semplificare l’architettura con i servizi

Page 71: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Relational Database Service Database-as-a-Service

Senza installare o gestire le istanze di database

Configurazioni scalabili e in alta affidabilità

DynamoDB Database NoSQL con throughput definito

Bassa latenza, alte prestazioni

Architettura distribuita in alta affidabilità

Usare RDS per i database

Usare DynamoDB per database chiave-

valore a bassa latenza

Regola 4: Semplificare l’architettura con i servizi

Page 72: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Amazon SQS

Task da processare

Risultati ottenuti

Amazon SQS Messaggistica a code affidabile e

scalabile per scambiare messaggi tra

istanze

Task A

Task B

(Auto-scaling)

Task C

2

3

1

Simple Workflow Coordinare attività tra applicazioni in

modo affidabile

Risorse all’interno o all’esterno di AWS

Gestisce lo stato in architetture

complesse e distribuite

Porta workflow e processi complessi nel Cloud con SWF

Messaggistica a code affidabile, senza

installare nulla

Regola 4: Semplificare l’architettura con i servizi

Page 73: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Cloud Search Un motore di ricerca elastico

basato sul motore Amazon A9

Un servizio gestito

con funzionalità avanzate

Scala automaticamente

Document Server

Risultati

Search Server

Un motore di ricerca pronto senza dover installare nulla

Analizza grandi volumi di dati in modo

efficiente con EMR

Elastic MapReduce Un cluster Hadoop elastico

Integrato con S3 e DynamoDB

Script di analisi con Hive e Pig

Può usare istanze spot

per ottimizzare i costi

Regola 4: Semplificare l’architettura con i servizi

Page 74: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws
Page 75: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

“Amazon CloudSearch ci ha permesso di fornire nuove funzionalità di ricerca. I nostri clienti possono ora trovare quello che cercano più

velocemente e più semplicemente di prima…

…Abbiamo evitato molti mesi di implementazione e sviluppo usando Amazon

Cloudsearch”

Don MacAskill CEO & Chief Geek

SmugMug

Page 76: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws
Page 77: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws
Page 78: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Regola 2: Servire le richieste velocemente

Regola 1: Servire tutte le richieste web

Regola 3: Gestire richieste a qualsiasi scala

Regola 4: Semplificare l’architettura con i servizi

Regola 5: Automatizzare la gestione operativa

Regola 6: Sfruttare le unicità del Cloud

Page 79: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Compute

Storage

Security Scaling

Database

Networking Monitoring

Messaging

Workflow

DNS

Load Balancing

Backup CDN

Regola 5: Automatizzare la gestione operativa

a) Tutto in AWS è programmabile

Accedi tramite CLI, API o Console

Raggiungi rapidamente il massimo livello di

automazione

Page 80: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Regola 5: Automatizzare la gestione operativa

a) Tutto in AWS è programmabile b) Deployment con un solo “click”

CloudFormation Crea uno “stack” in automatico

Un framework per automatizzare le risorse AWS

Funzionalità Descrizione

Piattaforme supportate Le risorse AWS, da EC2 allo IAM

Creazione delle risorse Crea le risorse AWS e aggiorna sullo stato di avanzamento

Dichiarativo Descrivi lo stack con una sintassi JSON che puoi mettere sotto “source control”

Personalizzabile Accetta parametri nella creazione di uno stack

Page 81: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Regola 5: Automatizzare la gestione operativa

a) Tutto in AWS è programmabile b) Deployment con un solo “click” c) Disegna per l’alta affidabilità con procedure di “auto riparazione”

Personalizza l’avvio delle istanze

L’istanza può configurarsi dinamicamente

chiedendosi all’avvio “cosa devo fare?”

Gestisce la capacità delle istanze

Le istanze non funzionanti sono

sostituite nel gruppo

Monitora cosa accade, crea allarmi che attivano

azioni correttive

Metriche standard o custom su cui creare allarmi

Rispondi con azioni che automatizzano la gestione

Avvio Auto Scaling CloudWatch

Page 82: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Regola 5: Automatizzare la gestione operativa

a) Tutto in AWS è programmabile b) Deployment con un solo “click” c) Disegna per l’alta affidabilità con procedure di “auto riparazione”

Page 83: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Regola 2: Servire le richieste velocemente

Regola 1: Servire tutte le richieste web

Regola 3: Gestire richieste a qualsiasi scala

Regola 4: Semplificare l’architettura con i servizi

Regola 5: Automatizzare la gestione operativa

Regola 6: Sfruttare le unicità del Cloud

Page 84: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Regola 6: Sfruttare le unicità del Cloud

a) Ottimizza i costi con il tipo di istanza migliore

Page 85: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Istanze Unix/Linux a partire da $0.02/ora

Paghi solo quello che usi

Flessibilità e costi ridotti

Nessun costo inizale

o contratti a lungo termine

Casi d’Uso:

Applicazioni con carico impredicibile o a breve termine

Ambienti di sviluppo o test

Istanze On-demand

Ad 1 o 3 anni

Paghi un costo inizale, il costo oraario è sostanzialmente ridotto

Basso costo e predicibilità delle spese

Assicura la disponibilità di potenza computazionale quando richiesta

Casi d’Uso:

Applicazioni con utilizzi stabili o predicibili

Applicazioni che richiedono capacità riservata, disponibile quando serve

Istanze Reserved

Fai una offerta sulla capacità EC2 non utilizzata

Il prezzo delle istanze Spot è basato su

domanda/offerta ed è determinato automaticamente

Gestione efficiente di carichi di lavoro

dinamici ed “ampi”

Casi d’Uso:

Applicazioni con periodo di esecuzione flessibile

Applicazioni che necessitano di un costo ridotto per essere utili

Istanze Spot

Regola 6: Sfruttare le unicità del Cloud

a) Ottimizza i costi con il tipo di istanza migliore

Page 86: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

0

1000

2000

3000

4000

5000

6000

7000

Reserved

On Demand

Spot

Regola 6: Sfruttare le unicità del Cloud

a) Ottimizza i costi con il tipo di istanza migliore

Page 87: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

a) Ottimizza i costi con il tipo di istanza migliore b) Analizza i dati rapidamente con Elastic MapReduce

Regola 6: Sfruttare le unicità del Cloud

Elastic MapReduce Un cluster Hadoop elastico

Integrato con S3 e DynamoDB

Script di analisi con Hive e Pig

Può usare istanze spot per ottimizzare i costi

Funzionalità Descrizione

Scalabile Usa il numero di istanze di cui hai bisogno. Modifica il numero di istanze durante l’esecuzione dell’analisi

Integrato con altri servizi

S3 come sorgente e/o destinazione dell’analisi Integrato con DynamoDB

Piattaforme supportate

Supporta linguaggi come Hive e Pig per definire le procedure di analisi Permette di definire procedure complesse in Cascading, Java, Ruby, Perl, Python, PHP, R, or C++

Efficiente Può usare istanze Spot

Monitoring Verifica l’andamento dei “job” dalla console di gestione

Page 88: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

a) Ottimizza i costi con il tipo di istanza migliore b) Analizza i dati rapidamente con Elastic MapReduce

Elastic MapReduce

Code Name node

Output S3

S3 + DynamoDB

Elastic cluster

HDFS Queries

+ BI Via JDBC, Pig, Hive

Dati in Ingresso

Regola 6: Sfruttare le unicità del Cloud

Page 89: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Funzionalità “powered by” Amazon Elastic MapReduce:

People Who Viewed this Also Viewed

Review highlights Auto complete as you type on search

Search spelling suggestions Top searches

Ads

200 job Elastic MapReduce al giorno che analizzano 3TB di dati

Page 90: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

“Con AWS i nostri sviluppatori possono fare cose che prima non potevano…

…I nostri amministratori di sistema possono focalizzarsi

su altri aspetti.”

Dave Marin Search and data-mining engineer

Page 91: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Istanze Cluster Compute

Ambienti HVM

Processori Intel® Xeon® E5-2670

10 Gigabit Ethernet

Cluster Compute

80 EC2

Compute Units

60GB RAM

3TB Local

Disk

Network placement group

Le istanze Cluster compute in un “Placement Group” hanno

una rete a bassa latenza con 10 Gbps bi-direzionale

10Gbps

Regola 6: Sfruttare le unicità del Cloud

a) Ottimizza i costi con il tipo di istanza migliore b) Analizza i dati rapidamente con Elastic MapReduce c) Crea un “super computer” quando ne hai bisogno

Page 92: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Regola 2: Servire le richieste velocemente

Regola 1: Servire tutte le richieste web

Regola 3: Gestire richieste a qualsiasi scala

Regola 4: Semplificare l’architettura con i servizi

Regola 5: Automatizzare la gestione operativa

Regola 6: Sfruttare le unicità del Cloud

Page 93: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Cosa vogliono gli utenti…

Una navigazione rapida e veloce

Un sito sempre disponibile ed

accessibile

Una applicazione personalizzata e

ricca di contenuti

Nuove funzionalità introdotte spesso e

rapidamente

Page 94: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Con AWS

Capacità elastica, si paga solo quello

che si usa

Page 95: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Con AWS

Capacità elastica, si paga solo quello

che si usa

✔ Una copertura globale in alta

affidabilità

Page 96: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Con AWS

Capacità elastica, si paga solo quello

che si usa

✔ Una copertura globale in alta

affidabilità

Gestione agile ed

automatizzabile ✔

Page 97: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Con AWS

Capacità elastica, si paga solo quello

che si usa

✔ Una copertura globale in alta

affidabilità

Gestione agile ed

automatizzabile ✔ Storage robusto ed

efficiente, big data & analisi dei dati

Page 98: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

NASA TV Route 53 DNS Multi-region & AZ

Elastic Loadbalancing Amazon Live Streaming

Cloud Front Cloud Formation

Page 99: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

aws.amazon.com/free

inizia con il free tier

Page 100: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Nicola Previati – [email protected]

Mario Vetrano – [email protected]

Page 101: Viaggio attraverso il cloud   come costruire architetture web scalabili e robuste con aws

Grazie

Danilo Poccia – Solutions Architect