WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi...

35
WORKSHOP: Container in cloud, il deployment a partire da un'immagine WORKSHOP Container in cloud, il deployment a partire da un'immagine 1 - 34

Transcript of WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi...

Page 1: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

WORKSHOP:Container in cloud, il deployment a partire da un'immagine

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

1 - 34

Page 2: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Chi vi sta parlando

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

2 - 34

Emiliano Angieri

Chi sono? FormazioneIngegnere Informatico

Lavoro

2014

Società: Accenture

Ruolo: Infrastructure Operation, Cloud Engineer

Attività: Migrazione su Cloud AWS infrastrutture on prem

2015 2016 2017 2018

Società: Italgas

Ruolo: Cloud Engineer

Attività: Supporto migrazione data center su Microsoft Azure. Controlli e ottimizzazione costi cloud

2019

Società: VMEngine

Ruolo: Cloud Engineer

Attività: Solution Architect / DevOps per soluzioni su Cloud AWS

Certificazioni

Page 3: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Agenda

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

3 - 34

● Perchè infrastrutture con container?

● Introduzione ai container. Cosa sono?

● I servizi per container di AWS: ECR, ECS su EC2, ECS Fargate ed EKS

● AWS ECS per sviluppatori. Dal container al deploy

● Privacy, Security & Pricing

● Caso d’uso soluzione containerizzata

● Demo

Page 4: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

4 - 34

Perchè infrastrutture con container?

Page 5: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Perchè infrastrutture con container?

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

5 - 34

Facilità di deployment di applicazioni

Rapidità nel test di nuove applicazioni / aggiornamenti

Platform independent

Possibilità di utilizzo stesso codice per multi-ambienti (stage/prod)

Sviluppo di microservizi

Platform independent (No Vendor Lock-in)

Riduzione time to market

Potenziale riduzione dei costi di infrastrutture

Velocizza migrazione sul Cloud

Non so cosa sia un container o Docker, cosa ci faccio qui?

Sono uno sviluppatore Sono un imprenditore

Page 6: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

6 -34

Introduzione ai container. Cosa sono?

Page 7: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Introduzione ai container. Cosa sono? (1/6)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

7 - 34

VMsContainers

Page 8: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Introduzione ai container. Cosa sono? (3/6)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

8 - 34

Non ho capito, me lo spieghi con una analogia? Qual'è la differenza tra una casa ed un appartamento?

Casa (VMs) Appartamento (Containers)

[4]

* Ogni casa possiede la propria infrastruttura: impianto idraulico, riscaldamento, impianto elettrico, ecc..

* Il condominio (Docker Host) condivide impianti idraulici, di riscaldamento, elettrici, ecc..

* Le case in genere avranno almeno una camera da letto, una zona giorno, un bagno e una cucina

*Dispongono di porte d'ingresso che si chiudono per tenere fuori gli ospiti indesiderati

* Diverse dimensioni, dal monolocale all'attico con più camere da letto. Si noleggia/compra esattamente ciò di cui si ha bisogno

* autonome e offrono protezione da ospiti indesiderati

* protezione da ospiti indesiderati, ma sono costruiti attorno a infrastrutture condivise

Page 9: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Introduzione ai container. Cosa sono? (4/6)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

9 - 34

Container + virtualizzazione

Docker non è una tecnologia di virtualizzazione, è una tecnologia di application delivery

Che cos’è Docker?Vantaggi Containers

* Standardizzazione

* Leggeri (rispetto VMs)

* Velocità di deployment

Vantaggi VMs

* Isolamento

* Gestione semplificata

* Semplicità rispetto host fisico

Page 10: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Introduzione ai container. Cosa sono? (5/6)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

10 - 34

Voglio passare ai container, migro tutta la mia app in un singolo container ed è fatta?

Potrei farlo ma.. come si fa la raccolta differenziata?

Migrare tutto su singolo container equivale a buttare tutto nell’indifferenziato.

Si può fare? Certo!

E’ il modo giusto di farlo? Non proprio..

Page 11: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Introduzione ai container. Cosa sono? (6/6)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

11 - 34

Applicazione monolitica o microservizi?

Meno preoccupazioni trasversali

Meno costi operativi

Performance su HW

MonoliticaVantaggi:

Componenti strettamente correlati

Difficile comprensione / manutenzione

Svantaggi:

Migliore organizzazione

Performance su componenti critici

Meno errori

MicroserviziVantaggi:

Preoccupazioni trasversali per ogni servizio

Maggior carico operativo in termini di configuration splitting

Svantaggi:

Page 12: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

12 - 34

I servizi per container di AWS: ECR, ECS su EC2, ECS Fargate ed EKS

Page 13: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

I servizi per container di AWS (1/5)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

13 - 34

Come faccio a capire quando è conveniente utilizzare un’infrastruttura containerizzata su AWS?

I principali campi di applicazione per infrastrutture containerizzate sono:

Microservizi Migrazione di applicazioni nel cloud

Elaborazione in batch Machine learning

Page 14: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

I servizi per container di AWS (2/5)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

14 - 34

Altri considerazioni o limitazioni per infrastrutture containerizzate?

Cit. Da Homer J. Simpson a Bart:

“Ragazzo, tu hai fatto del tuo meglio ed hai fallito miseramente. La lezione è: mai tentare”

Riduzione “Time To Fail”

Riduzione “Spent To Fail”

Più tempo da dedicare all’innovazione e allo sviluppo

Page 15: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

I servizi per container di AWS (3/5)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

15 - 34

ECR

ECSECS su EC2

ECS Fargate (Serverless)EKS

Altri elementi per realizzare un’infrastruttura containerizzata su AWS

Task (Task Definition) Service Cluster

Repo

Orc

hest

rato

ri

Page 16: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

I servizi per container di AWS (4/5)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

15 - 34

Come scegliere il più opportuno launch type per i miei container?

EKS

ECS su EC2

ECS su Fargate

Serverless vs EC2

* Health Host autogestito

* Scalabilità autogestita

* Orchestrazione gestita

* Persistenza dati non possibile

* Nessun accesso

* Health Host gestito dall’utente

* Scalabilità da gestire

* Orchestrazione gestita

* Persistenza dati possibile (e.g. EFS)

* Accesso

Page 17: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

I servizi per container di AWS (5/5)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

17 - 34

Esempio alto livello di schema logico di servizi AWS per creare un’infrastruttura containerizzata

1 - ECR

2 : Task Launch type, ECS EC2 o ECS Fargate?

3 : Cluster per raggruppare i Service

3* - [Opzionale]: Bilanciatore tra i container (Task)

4 : Service per gestire Task e scalabilità

Page 18: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

18 - 34

AWS ECS per sviluppatori. Dal container al deploy

Page 19: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

AWS ECS per sviluppatori. Dal container al deploy (1/3)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

19 - 34

Gli elementi di AWS per il deploy su infrastruttura containerizzata

AWS CodePipeline

AWS CodeBuild

AWS CodeCommit

AWS S3

GitHub

AWS ECR

Source Deploy and Build Target

AWS ECS

Page 20: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

AWS ECS per sviluppatori. Dal container al deploy (2/3)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

20 - 34

Esempio schema di deployment su infrastruttura containerizzata

1: Update code/files

2: Commit on Repo

AWS CodeCommit

3*: Manual deploy 3*: Automatic deploy

AWS CodePipeline

AWS CodeBuild

AWS ECR

AWS ECS

Containers

AWS ECS Service

Legenda Azioni

da configurare su AWS

azioni utente

automatichebuildspec.yml

Deploy

imagedefinition.json

REPLACE

Page 21: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

AWS ECS per sviluppatori. Dal container al deploy (3/3)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

21 - 34

Esempio di infrastruttura web su AWS ECS EC2/Fargate

CUSTOMERS AWSCloudFront

AWSApplication Load

Balancer

Containers

AWSElastiCache Redis AWS

RDS Aurora

AWSEFS

AWSECR

Task

ClusterService

AWSWAF

AWSShield Standard

AWSRoute53

Network Security

StorageDatabaseCompute

Legenda Aree

AWSS3

Page 22: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

22 - 34

Privacy, Security & Pricing

Page 23: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Privacy, Security & Pricing (1/4)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

23 - 34

Simpatico questo ECS, ma i miei dati sono su un Cloud pubblico, la privacy...

Shock! I dati in Cloud potrebbero essere più sicuri dei dati memorizzati “fai da te”!

Si ma come?

Encryption in transit: HTTPS, VPN

Shocked!

Encryption at rest: EBS Encryption, KMS

Page 24: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Privacy, Security & Pricing (2/4)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

24 - 34

Logica AWS tutto Denied se non specificamente Allowed!

VPC e subnets personalizzabili

ECR (immagini pubbliche o private)

EC2 / Task con Ruolo IAM

Ok mi hai quasi convinto, ma poi i miei container devono comunicare con altri servizi AWS, tra di loro, la Security...

Security Groups e gli ACL

Connessioni criptate IPsec VPN

EC2 come istanze dedicate

ALB, CloudFront, WAF Protezione da DOS, HTTP Malformed

Shocked!

Page 25: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Privacy, Security & Pricing (3/4)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

25 - 34

Per gli esperti del settore... AWS Fargate soddisfa:

PCI DSS Level 1 ISO 9001, ISO 27001,ISO 27017, ISO 27018

SOC 1, SOC 2, SOC 3

Page 26: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Privacy, Security & Pricing (4/4)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

26 - 34

Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS

I prezzi sono calcolati in base alle risorse AWS, ad esempio istanze EC2 o volumi EBS

I prezzi sono calcolati solo in base all'uso effettivo delle risorse utilizzate

Tutto molto bello, ma quanto mi costa?

Page 27: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

27 - 34

Caso d’uso soluzione containerizzata

Page 28: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Caso d’uso soluzione containerizzata (1/3)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

28 - 34

Esigenza: Realizzare un sistema di pagamento ad alto traffico, già implementato con container Docker in ambienti di sviluppo locali

Problema: Server fisici o Cloud?

● Volumi attesi non noti● Tempi stretti di go live● Testing dell’applicativo sotto carico

Soluzione: Servizio containerizzato AWS, ECS su EC2 o ECS Fargate (serverless)?

● Basso knowledge DevOps● Gestione automatica scalabilità● Focus soltanto sul codice

VS

Page 29: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Caso d’uso soluzione containerizzata (2/3)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

29 - 34

Soluzione implementata

CUSTOMERS AWSCloudFront

AWSApplication Load

Balancer

AWSRDS Aurora

AWSECR

Task

ClusterService

AWSWAF

AWSShield Standard

AWSRoute53

Network Security

StorageDatabaseCompute

Legenda Aree

DEVELOPERSprivate code

repository

Containers

AWSNetwork Load Balancer

Containers

Containers

AWS CodePipeline

AWSCloudFormation

VMEngine Cloud Engineers

InfrastructureProvisioning

Page 30: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Caso d’uso soluzione containerizzata (3/3)

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

30 - 34

Go live in 20 giorni!

5 giorni dedicati all’infrastruttura e 15 dedicati al software e test!

Risorse strettamente necessarie e scalabili!

Gestite 2000 visite/sec senza errori infrastrutturali!

No vendor lock-in infrastrutturali grazie ai container!

Page 31: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Demo

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

31 - 34

“Se funziona quanto basta non toccarlo che si guasta..”

Page 32: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Container in cloud, il deployment a partire da un'immagine

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

32 - 34

Ci sono domande?

Page 33: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

33 - 34

ENDGrazie per l’attenzione!

Page 34: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Appendice

WORKSHOP – Container in cloud, il deployment a partire da un'immagine

34 - 34

[1] https://www.docker.com/company [2] https://www.redhat.com/it/topics/cloud-computing/cloud-vs-virtualization[3] https://www.docker.com/resources/what-container[4] https://www.docker.com/blog/containers-are-not-vms/[5] https://aws.amazon.com/it/ecs/

Page 35: WORKSHOP: Container in cloud, il deployment a partire da ...€¦ · Non sono previsti costi aggiuntivi per l'utilizzo di Amazon ECS I prezzi sono calcolati in base alle risorse AWS,

Non abbiamo risposto alle tue domande e vuoi informazioni in più

per il tuo progetto Cloud?Parlane con un AWS

Architect…[email protected]

WORKSHOP – AWS Provider di Soluzioni IoT & IIoT 35

Clicca e scrivici subito Riserva una Call con noi