Uno dei principali vantaggi che la piattaforma di Azure offre è la possibilità di scalare rapidamente le applicazioni in the cloud, in risposta alle fluttuazioni di carico.
Normalmente si scalano website o cloud services, ma se invece abbiamo le nostre applicazioni hostate su una Virtual Machine e le vogliamo scalare orizzontalmente? Anche questo è possibile.
Vedremo come realizzare una WebFarm bilanciata che scala in base alle reali necessità di carico usando gli strumenti che Azure mette a disposizione, sia su IaaS che su PaaS.
Una web farm bilanciata e scalabile con Microsoft Azure
1. Una Web Farm bilanciata e
scalabile con Microsoft Azure
Davide Benvegnù
@davidebenvegnu
2. Chi sono
DAVIDE BENVEGNU’
International Development Manager – Aruba
Freelancer – DBTek.it
Speaker a eventi nazionali (Community Days, Dev Camp, SMAU…)
Trainer (a breve 2 corsi su Microsoft Virtual Academy)
Main Fields: Azure e VSALM (Team Foundation Server e Visual Studio Online)
Altro
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
3. Agenda
Web Farm
Concetti chiave
Perché «Bilanciata e Scalabile»?
Ieri: Web Farm on-premises
Oggi: Web Farm su Cloud IaaS con le Virtual Machine
Domani: Web Farm su PaaS?
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
4. Web Farm
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
5. Web Farm: Concetti chiave
• Insieme di Server che forniscono un servizio Web
• Web sites, Web app, API, web services & more
• Panorama web eterogeneo
• Tecnologie
• Framework
• Linguaggi
• Deve essere scalabile
• Deve essere bilanciata
(dovrebbe…)
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
6. Web Farm: Scalabile
• Horizontal scale
• Quantità
• Up scale: incrementare il numero delle istanze
• Down scale: decrementare il numero delle istanze
• Vertical scale
• Qualità
• Up scale: incrementare le dimensioni dell’istanza
• Down scale: decrementare le dimensioni dell’istanza
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
7. Web Farm: Bilanciata
• Load Balancing
• Distribuzione delle richieste
• Mantenimento delle performance
• Riduzione dei rischi di DoS
• HA
• Disponibilità del servizio
• Definizione di SLA
• Failover e Fault-tolerance
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
8. Ieri: Web Farm on-premises
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
9. Scenario tipico
• Tanti Server Web
• Separazione tra DMZ e MZ
• Apparati di rete (Switch, Router)
• Bilanciatori
• Devo preoccuparmi di tutto:
• Connettività adeguata
• Raffreddamento adeguato
• Sicurezza
• Manutenzione
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
10. Scalabilità e Bilanciamento on premises
• Aggiungo server (Up scale)
• + Costi
• + Spazio
• Aggiungo componenti (Up scale)
• + Costi
• Le possibilità dipendono da server e form factor
• Tolgo server / Tolgo componenti (Down scale)
• Ma i Costi? Ho comprato, me lo tengo
• E per connettività, raffreddamento, infrastruttura… ?
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
11. Oggi: Web Farm su IaaS
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
12. I vantaggi del Cloud
• Scalabilità virtualmente infinita
• Provisioning e deprovisioning delle risorse in minuti
• Pago solo quello che utilizzo (Pay-per-use)
• SLA normalmente più alti che on-premises
• Non mi devo preoccupare di :
• Connettività e apparati di rete
• Raffreddamento e gestione Data Center
• Sicurezza del Datacenter
• Infrastruttura
• Manutenzione
• …
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
13. Perché Azure?
• Rete globale di 17+ Datacenter
• 8 USA, 4 Asia, 2 Europa, 2 Oceania, 1 Sud America
• Oltre alle VM, tanti servizi a supporto della Web Farm
• CDN, Traffic Manager, Storage, Database, VPN…
• Hybrid Cloud
• Oltre il 53% delle società Fortune 500
• SLA globale 99,95%
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
14. IaaS
• Infrastruttura come servizio
• Server Virtual Machine
• Windows e Linux
• Tutto gestito, tranne sistema
operativo e software installato
• Scalabilità orizzontale
• Manuale
• Automatica (in base al carico)
• Schedulata
• Scalabilità verticale
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
15. Web Farm scalabile e bilanciata su Azure IaaS
• Auto Up scale all’aumento
del carico
• Auto Down scale alla
diminuzione del carico
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
16. E per l’HA e la disponibilità?
2 scenari:
1. Tutte le istanze attive
• Al fallimento, disattiva la route
• Bilanciamento attivo sulle altre
• Al recovery, riattiva la route
2. Non tutte le istanze attive
• Al fallimento, disattiva la route
• Attiva un’istanza «in stand-by»
• Al recovery…
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
17. Come si crea: best practices
1. Creare una VM ed assegnarla ad un «Availability Set»
2. Configurare la VM con tutto quello che serve
3. Sysprep e «cattura» del disco master
4. Creare tutte le VM necessarie usando il disco master
5. Su una delle VM settare tutti gli endpoint (porte 80, 443, …) ed
impostarli come «Load-balanced set»
6. Aggiungere gli endpoint alle altre VM associandoli ai set
bilanciati
7. Configurare l’autoscale (criteri ed istanze minime)
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
18. Domani: Web Farm su PaaS?
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
19. PaaS
• Intero stack completamente
gestito
• Non mi devo preoccupare di
nulla se non del mio layer
applicativo
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
20. Azure PaaS: Web sites
• Multi linguaggio: .NET, Java, PHP, Node.js, Python, …
• Autoscale e Load balancing
• High availability e auto patching
• Continuos deployment con Ftp, Git, TFS, Visual Studio Online,
GitHub, TeamCity, …
• Ambienti di test multipli e privati
• Switch Staging – Produzione senza downtime
• Istanze Free, Shared e Dedicate
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
21. Azure PaaS: Web sites Shared
1
shared
SHARED INSTANCES
• Web App ospitata su istanze
condivise con altri utenti
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
22. Azure PaaS: Web sites Shared
2
shared
SHARED INSTANCES
• Web App ospitata su istanze
condivise con altri utenti
• Up Scale (manuale): deploy
della Web App all’interno della
stessa infrastruttura
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
23. Azure PaaS: Web sites Reserved
reserved 0
• Web App ospitata su istanza dedicata • Web App ospitata su istanze
SHARED INSTANCES
1
RESERVED INSTANCE
condivise con altri utenti
• Up Scale (manuale): deploy
della Web App all’interno della
stessa infrastruttura
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
24. Azure PaaS: Web sites Reserved
2
RESERVED INSTANCE
reserved
• Web App ospitata su istanza dedicata
• Auto scale in base a carico o schedule
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
25. Azure PaaS: Web sites Reserved
2
RESERVED INSTANCE RESERVED INSTANCE
reserved
• Web App ospitata su istanza dedicata
• Auto scale in base a carico o
schedule
• Più di una Web App per istanza
• Di fatto, come con le VM ma fully
managed
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
26. Azure PaaS: Web sites - Altro
• Protezione
• HTTP con certificati SSL
• IP e SNI based SSL (con wildcard)
• WebJobs
• Backup automatici
• Incluso Data-tier
• Strumenti di monitoraggio avanzati
• Integrazione con Application Insights
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014
27. DEMO
Una Web Farm bilanciata e scalabile con Microsoft Azure 06 novembre 2014