Sessione ID: CST001
Cosa succede alle nostre applicazioni quando si rompe un hard-disk, si scollega un router o un evento disastroso mette fuori uso un intero data center? In questa sessione facciamo un esperimento pratico di chaos engineering per verificare se le nostre applicazioni sono resilienti a fallimenti infrastrutturali rari ma molto d’impatto, come la perdita di un intero data center o di una zona di disponibilità (availability zone). L’esperimento consiste nel simulare eventi di questo tipo in modo strutturato ed automatizzato, con l’obiettivo di scoprire e risolvere eventuali problemi prima che si verifichino realmente in produzione.
Come testare la resilienza della mia applicazione al fallimento di una zona di disponibilità
1. COME TESTARE LA RESILIENZA
DELLA MIA APPLICAZIONE AL
FALLIMENTO DI UNA ZONA DI
DISPONIBILITÀ
O COME PIACE A ME: DARE FUOCO A UNA ZONA DI
DISPONIBILITÀ
2.
3. CHI SONO:
• Giuseppe Borgese SRE @ Nozomi Networks – Istruttore AWS
Freelance
• Azienda Americana con Headquarter Europeo a Mendrisio
Svizzera
• Cybersecurity in ambito OT/IoT – Cloud principale AWS
• HIRING!!! https://www.nozominetworks.com/company/careers/
• Mi piace scrivere articoli, codice Terraform, video tutorial su
youtube trovate tutto partendo da www.borsoft.ch
• Admin AWS User Group Catania (citta’ Natale)
4. ZONE DI DISPONIBILITÀ – LA REGION NON
ESISTE
• Le zone si trovano in zone
“distanti” una dall’altra NORD-
SUD-OVEST-EST
• Progettare tutte le applicazioni in
modo che resistano al down di
una zona di disponibilità
7. COME SIMULARLO? NETWORK ACL DENTRO IL
VPC
• Cosa sono le Network ACL
(NACL)?
• Firewall Stateless a livello di
subnet
• Tutto quando arriva dentro le
subnet deve passare anche
attraverso le NACL
• Nel nostro esempio ogni
subnet ha la sua NACL, ma
possono essere condivise
8. SERVIZI DENTRO IL VPC O FUORI IL VPC
• Fuori: S3, DynamoDB, Lambda (default), API GW (Regional/Edge)
• Dentro: Ec2, DynamoDB DAX, Lambda (con ENI), ELB, RDS, API
GW(internal)
• Con questo esperimento testiamo tutto quello che sta dentro il
VPC
9. TERRAFORM
MODULE TO
CREATE THE
EXAMPLE
• Potete ripetere
l’esperimento “a casa
vostra”
• Gia’ creato per motivi di
tempo
• ALB e’ uno ma in verita’ …
• Visualiziamo ELB, facciamo
curl
• Host del dns ELB
• Target Group e ECS
10. DIAMO FUOCO CON IL NACL
• Ogni subnet ha la sua NACL
• Scegliamo una zona di disponibilita’
• Rimuoviamo la allow per le due subnet sia in ingress che
in uscita
• Facciamo partire un cronometro
11. EFFETTI
• In circa 4 minuti (tempi variano) 1 IP del ALB verra’ rimosso
• In base ai tempi di health check del target group uno dei
container verra’ messo in draining
• ECS fara’ partire un container in un’altra subnet
• Downtime (parziale) molto basso in caso di un evento
catastrofico
• Auto riparazione del sistema
12. FIX
• Sistemando le ACL in circa 1 o 2 minuti IP del ALB torna su
• Il container rimane nella zona, per un bilanciamento bisogna
aspettare il prossimo evento di scaling.
14. FINE
• Colleghiamoci su linkedin - Giuseppe Borgese o tramite il mio
sito:
• www.borsoft.ch
• Articolo in inglese su questo argomento, c’e’ anche il github
repository.
• https://www.linkedin.com/pulse/set-fire-aws-availability-
zone-giuseppe-borgese/
• Se volete lavorare per la Svizzera dall’Italia (vi garantisco che
conviene farlo), tantissimi ruoli aperti. Contattatemi e google
nozomi careers