SlideShare a Scribd company logo
1 of 29
Download to read offline
AWS CDK
Infrastructure is code
IaC battle
Enrico Pesce - AWS user group Venezia
Enrico Pesce
● Cloud engineer e Team leader
● AWS user group Venezia
● “Ex YAML engineer” :)
https://www.linkedin.com/in/enricopesce/
Agenda
● YAML engineer dilemma
● Cos’è CDK
● Componenti principali
● Esempi
● Considerazioni
Giornata tipo di un “YAML engineer”!!
1. Design, implementare nel modo corretto
2. Security, utilizzare policy efficaci
3. Time, serve per ieri!!
4. DevOps, problemi di collaborazione
5. Alla continua ricerca di concentrazione..
6. Consumo rotellina mouse elevato…
7. Guru delle meditazione..
I KNOW
YAML
YAML engineering!
un progetto di un portale e-commerce
AWS Cloud Development Kit (AWS
CDK) è un framework di sviluppo
open source per definire
l'infrastruttura come codice e
distribuirla tramite AWS
CloudFormation.
Offre un'astrazione di alto livello orientata agli
oggetti per definire le risorse AWS utilizzando la
potenza dei moderni linguaggi di programmazione,
attraverso una tecnlologia AWS di “traduzione”
chiamata JSii si possono usare differenti linguaggi.
cdk synthesize
“da codice a YAML”
Componenti principali
Constructs
Rappresenta un componente cloud che può incapsulare
qualsiasi servizio supportato da CloudFormation
● Riferimento basso livello risorse e propietà di CloudFormation
● Un servizio AWS (es: S3, EC2)
● Un set di servizi che rappresentano un’unità logica o pattern (es:
ECS + ALB + Task e Service definition)
● Assets
Construct Cfn
riferimento 1:1 a CloudFormation
Constructs VPC
creare una VPC con tutto: addressing, subnets, routing
tables, nat gateway....
oppure importare una VPC esistente:
Constructs CodeBuild
Istanza CodeBuild configurata per CodePipeline con
script di build, env, bucket s3 crittografato.
Constructs ecs-patterns
--->
Constructs ecs-patterns
● ALB e listener
● Target Group
● VPC (subnets, nat gateway, etc..)
● ECS cluster
● ECS Task definition
● ECS Service definition
● Security groups e IAM roles..
Usando CDK, puoi ereditare
facilmente le migliori pratiche
nel design e nella sicurezza
della tua infrastruttura!
Puoi costruire un tuo construct di alto
livello componendo insieme altri
construct cosi da creare il tuo
componente, riutilizzarlo e condividerlo
con il tuo team o la comunità open
source.
Constructs custom
Construct che crea un bucket S3 che notifica ad ogni oggetto
aggiunto con SNS, lo registro su una sqs queue..
Non tutti i constructs sono stabili o
sviluppati, CDK è un progetto ancora
in sviluppo ma si può già andare in
produzione se usiamo i constructs
stabili o cfn!
https://docs.aws.amazon.com/cdk/api/latest/
Attenzione: solo da TypeScript si può
tradurre in altri linguaggi!
Test dei constructs
Con AWS CDK, la tua infrastruttura può essere
testabile come qualsiasi altro codice che scrivi
1. Snapshot tests
2. Fine-grained assertions
3. Validation tests
Al momento possibile solo da TypeScript….
OK, ok!
Sono passato a TypeScript.. non fa male
conoscere altri linguaggi! ;)
quindi da ora TypeScript ->
Assets:
rappresentano un artefatto che l'app deve
usare.
● Archivio zip di una lambda function (S3)
● File di supporto del progetto (S3)
● Immagini Docker
Assets S3:
zip della folder, copy su s3, reference su lambda
Assets Docker:
build del Dockerfile dal proprio docker locale e
push su ECR in automatico
Siamo solo all’inizio!!!
Nuovi constructs in arrivo..
Nuovi linguaggi supportati
Una comunità in forte crescita
GRAZIE!
Se vuoi provare un mio progetto:
https://github.com/enricopesce/AWSome-pipeline

More Related Content

What's hot

Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...
Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...
Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...azuredayit
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOpsdotnetcode
 
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | Milano
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | MilanoIl Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | Milano
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | MilanoCA Technologies Italia
 
Super-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costsSuper-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costsMikhail Zakharenko
 
Workshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
Workshop ASP.NET Core e Angular in produzione con Docker e KubernetesWorkshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
Workshop ASP.NET Core e Angular in produzione con Docker e Kubernetesblexin
 
Dal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developersDal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developersAndrea Dottor
 
ASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivatiASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivatiAndrea Dottor
 
Serverless uso di lambda per esigenze (non) convenzionali
Serverless  uso di lambda per esigenze (non) convenzionaliServerless  uso di lambda per esigenze (non) convenzionali
Serverless uso di lambda per esigenze (non) convenzionaliLinuxaria.com
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOpsdotnetcode
 
Blazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormBlazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormAndrea Dottor
 
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaMulti-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaAndrea Dottor
 
AWS 101: Guida rapida alle soluzioni AWS
AWS 101: Guida rapida alle soluzioni AWSAWS 101: Guida rapida alle soluzioni AWS
AWS 101: Guida rapida alle soluzioni AWSAmazon Web Services
 
The power of the cosmos in a DB .... CosmosDB
The power of the cosmos in a DB .... CosmosDBThe power of the cosmos in a DB .... CosmosDB
The power of the cosmos in a DB .... CosmosDBGraphRM
 
Angular e asp.net core: un framework sul framework
Angular e asp.net core: un framework sul frameworkAngular e asp.net core: un framework sul framework
Angular e asp.net core: un framework sul frameworkMichele Aponte
 
kube-green | Davide Bianchi
kube-green | Davide Bianchikube-green | Davide Bianchi
kube-green | Davide BianchiKCDItaly
 
Monitoring Applications in AKS
Monitoring Applications in AKSMonitoring Applications in AKS
Monitoring Applications in AKSGiuliano Latini
 

What's hot (20)

Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...
Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...
Azure Day Rome Reloaded 2019 - Python, Azure Cosmos DB, Docker and Azure Cont...
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOps
 
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | Milano
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | MilanoIl Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | Milano
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | Milano
 
Super-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costsSuper-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costs
 
Workshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
Workshop ASP.NET Core e Angular in produzione con Docker e KubernetesWorkshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
Workshop ASP.NET Core e Angular in produzione con Docker e Kubernetes
 
Dal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developersDal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developers
 
ASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivatiASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivati
 
Serverless uso di lambda per esigenze (non) convenzionali
Serverless  uso di lambda per esigenze (non) convenzionaliServerless  uso di lambda per esigenze (non) convenzionali
Serverless uso di lambda per esigenze (non) convenzionali
 
Azure sql database
Azure sql databaseAzure sql database
Azure sql database
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOps
 
Ec2
Ec2Ec2
Ec2
 
Blazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormBlazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web Form
 
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaMulti-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
 
AWS 101: Guida rapida alle soluzioni AWS
AWS 101: Guida rapida alle soluzioni AWSAWS 101: Guida rapida alle soluzioni AWS
AWS 101: Guida rapida alle soluzioni AWS
 
The power of the cosmos in a DB .... CosmosDB
The power of the cosmos in a DB .... CosmosDBThe power of the cosmos in a DB .... CosmosDB
The power of the cosmos in a DB .... CosmosDB
 
Angular e asp.net core: un framework sul framework
Angular e asp.net core: un framework sul frameworkAngular e asp.net core: un framework sul framework
Angular e asp.net core: un framework sul framework
 
kube-green | Davide Bianchi
kube-green | Davide Bianchikube-green | Davide Bianchi
kube-green | Davide Bianchi
 
Monitoring Applications in AKS
Monitoring Applications in AKSMonitoring Applications in AKS
Monitoring Applications in AKS
 
Wcf data services
Wcf data servicesWcf data services
Wcf data services
 
Cloud next 17 - Google Cloud Platform
Cloud next 17 - Google Cloud PlatformCloud next 17 - Google Cloud Platform
Cloud next 17 - Google Cloud Platform
 

Similar to AWS CDK infrastructure is code

Kubernetes e bello, sicuro è meglio!
Kubernetes e bello, sicuro è meglio!Kubernetes e bello, sicuro è meglio!
Kubernetes e bello, sicuro è meglio!Giuliano Latini
 
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...azuredayit
 
Applicazioni Serverless con AWS
Applicazioni Serverless con AWSApplicazioni Serverless con AWS
Applicazioni Serverless con AWSsparkfabrik
 
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Natale Vinto
 
Livin' with Docker - dallo sviluppo alla produzione
Livin' with Docker - dallo sviluppo alla produzioneLivin' with Docker - dallo sviluppo alla produzione
Livin' with Docker - dallo sviluppo alla produzionegiacomos
 
Praticamente... AWS - Amazon Web Services
Praticamente... AWS - Amazon Web ServicesPraticamente... AWS - Amazon Web Services
Praticamente... AWS - Amazon Web ServicesSpeck&Tech
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloudRiccardo Zamana
 
High specialized vm on open stack cloud
High specialized vm on open stack cloudHigh specialized vm on open stack cloud
High specialized vm on open stack cloudGabriele Baldoni
 
Con Aruba, a lezione di cloud #lezione 31: 'API e Cloud Computing, personali...
Con Aruba, a lezione di cloud  #lezione 31: 'API e Cloud Computing, personali...Con Aruba, a lezione di cloud  #lezione 31: 'API e Cloud Computing, personali...
Con Aruba, a lezione di cloud #lezione 31: 'API e Cloud Computing, personali...Aruba S.p.A.
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformGabriele Gaggi
 
Cloud & No-Coding: come fare su Azure?
Cloud & No-Coding: come fare su Azure?Cloud & No-Coding: come fare su Azure?
Cloud & No-Coding: come fare su Azure?Andrea Carratta
 
Progettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSProgettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSsparkfabrik
 
DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017Giulio Vian
 
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...Marco Parenzan
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScriptRoberto Messora
 
Custom Vision e Win.ml per le nostre app intelligenti offline
Custom Vision e Win.ml per le nostre app intelligenti offlineCustom Vision e Win.ml per le nostre app intelligenti offline
Custom Vision e Win.ml per le nostre app intelligenti offlineAlessio Iafrate
 
Node.js - Server Side Javascript
Node.js - Server Side JavascriptNode.js - Server Side Javascript
Node.js - Server Side JavascriptMatteo Napolitano
 

Similar to AWS CDK infrastructure is code (20)

Kubernetes e bello, sicuro è meglio!
Kubernetes e bello, sicuro è meglio!Kubernetes e bello, sicuro è meglio!
Kubernetes e bello, sicuro è meglio!
 
Aperitech winml
Aperitech winmlAperitech winml
Aperitech winml
 
VS Package @ CD2008
VS Package @ CD2008VS Package @ CD2008
VS Package @ CD2008
 
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
 
Applicazioni Serverless con AWS
Applicazioni Serverless con AWSApplicazioni Serverless con AWS
Applicazioni Serverless con AWS
 
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
 
Livin' with Docker - dallo sviluppo alla produzione
Livin' with Docker - dallo sviluppo alla produzioneLivin' with Docker - dallo sviluppo alla produzione
Livin' with Docker - dallo sviluppo alla produzione
 
Praticamente... AWS - Amazon Web Services
Praticamente... AWS - Amazon Web ServicesPraticamente... AWS - Amazon Web Services
Praticamente... AWS - Amazon Web Services
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
 
High specialized vm on open stack cloud
High specialized vm on open stack cloudHigh specialized vm on open stack cloud
High specialized vm on open stack cloud
 
Con Aruba, a lezione di cloud #lezione 31: 'API e Cloud Computing, personali...
Con Aruba, a lezione di cloud  #lezione 31: 'API e Cloud Computing, personali...Con Aruba, a lezione di cloud  #lezione 31: 'API e Cloud Computing, personali...
Con Aruba, a lezione di cloud #lezione 31: 'API e Cloud Computing, personali...
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
 
Cloud & No-Coding: come fare su Azure?
Cloud & No-Coding: come fare su Azure?Cloud & No-Coding: come fare su Azure?
Cloud & No-Coding: come fare su Azure?
 
Progettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSProgettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWS
 
DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017DevOps by examples - Agile O'Day 2017
DevOps by examples - Agile O'Day 2017
 
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
 
Custom Vision e Win.ml per le nostre app intelligenti offline
Custom Vision e Win.ml per le nostre app intelligenti offlineCustom Vision e Win.ml per le nostre app intelligenti offline
Custom Vision e Win.ml per le nostre app intelligenti offline
 
Node.js - Server Side Javascript
Node.js - Server Side JavascriptNode.js - Server Side Javascript
Node.js - Server Side Javascript
 
Web frameworks
Web frameworksWeb frameworks
Web frameworks
 

AWS CDK infrastructure is code