際際滷

際際滷Share a Scribd company logo
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 e鍖caci
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 de鍖nire
l'infrastruttura come codice e
distribuirla tramite AWS
CloudFormation.
O鍖re un'astrazione di alto livello orientata agli
oggetti per de鍖nire le risorse AWS utilizzando la
potenza dei moderni linguaggi di programmazione,
attraverso una tecnlologia AWS di traduzione
chiamata JSii si possono usare di鍖erenti 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 ununit logica o pattern (es:
ECS + ALB + Task e Service de鍖nition)
 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 con鍖gurata 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 de鍖nition
 ECS Service de鍖nition
 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 noti鍖ca 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 Docker鍖le dal proprio docker locale e
push su ECR in automatico
Siamo solo allinizio!!!
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

AWS CDK infrastructure is code