Qu’est-ce que AWS CDK | bobbyhadz


Qu’est-ce que l’AWS CDK ? #

AWS CDK (Cloud Development Kit) est un service AWS qui permet de provisionner une
infrastructure en écrivant du code en Python, TypeScript, JavaScript, .NET, Java, etc.
.

Le code que nous écrivons est compilé dans AWS CloudFormation.
un niveau d’abstraction plus élevé que CloudFormation et nous permet de tirer parti d’un ensemble de
tout un tas de
paquets officiellement maintenus
publiés par l’équipe AWS qui résolvent les tâches courantes de provisionnement des ressources dans
l’écosystème AWS.

En utilisant des composants de cloud prédéfinis, nous sommes en mesure de provisionner et de gérer notre infrastructure AWS de manière compacte, déclarative, prévisible et répétable.

En écrivant notre infrastructure en utilisant un langage de programmation comme TypeScript ou
Python au lieu d’un langage de configuration (yaml ou json), nous sommes en mesure d’utiliser toutes les fonctionnalités de l’infrastructure AWS.
tous les autocomplétion, linting et vérification de type qu’un IDE moderne fournit..

Je n’ai souvent pas besoin d’aller à la
docs cdkparce que les définitions de type
de mon IDE m’indique les options de configuration exactes d’une ressource.

Qu’est-ce qui constitue une application CDK ? #

Au point d’entrée d’une application CDK, nous avons la construction App. Vous pouvez penser
les constructions comme composants de cloud computing qui encapsulent la logique de provisionnement
une ou plusieurs ressources AWS
.

À l’intérieur de la construction App, nous définissons un ou plusieurs Stacks. Un Stack représente une pile CloudFormation.

À l’intérieur de la pile, nous avons des constructions (composants de cloud), écrites par d’autres
développeurs ou ceux que nous avons écrits nous-mêmes.

La composition de tous ces composants de nuage constitue notre application CDK.

Regardons un exemple d’une application CDK complète, écrite en TypeScript,
qui fournit un Bucket S3 :

import * as cdk from 'aws-cdk-lib';
import * as s3 from 'aws-cdk-lib/aws-s3';


export class MyStack extends cdk.Stack {
  constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    
    const myBucket = new s3.Bucket(this, 'my-bucket');
  }
}


const app = new cdk.App();


new MyStack(app, `cdk-stack-dev`, {
  stackName: `cdk-stack-dev`,
  env: {region: process.env.CDK_DEFAULT_REGION},
});

Tout comme CloudFormation, CDK est fourni avec une interface en ligne de commande pour
le déploiement et la gestion des applications CDK.
Boîte à outils AWS CDK.

Raisons d’utiliser CDK #

  1. Une approche très intuitive, compacte et directe pour définir l’infrastructure. Nous
    sommes en mesure d’utiliser des abstractions écrites par l’équipe AWS –
    Bibliothèque AWS Constructs.

    Il y a tellement de logique que nous n’avons pas à écrire, grâce aux valeurs par défaut saines
    et des méthodes utilitaires pour l’interaction entre les services fournies dans la
    AWS Constructs Library que cela se traduit par un gain de temps considérable.

  2. Nous sommes en mesure de écrire notre logique d’application et notre infrastructure en utilisant le
    même langage de programmation
    et éviter le changement de contexte

  3. Nous sommes en mesure de tester et de valider notre code, c’est-à-dire de vérifier l’existence de
    propriétés de configuration spécifiques sur une ressource ou lancer une erreur et quitter
    lorsque les consommateurs de nos composants en nuage les utilisent de manière incorrecte.

  4. Possibilité d’écrire nos propres abstractions pour les composants de nuage et de les réutiliser
    dans l’ensemble de notre base de code
    .

  5. Capacité à utiliser la logique de programmation comme les conditionnels et les boucles.

Résumé #

AWS CDK est le niveau d’abstraction logique suivant après CloudFormation. Il fait
le même travail, mais en mettant l’accent sur l’expérience du développeur.
.

Les humains sont plus aptes à lire et à écrire du code à l’aide de langages de programmation comme TypeScript ou Python, alors que les ordinateurs se débrouillent très bien avec des langages de configuration comme YAML ou JSON, dans lesquels CloudFormation est écrit.

Tous les avantages qui découlent de l’utilisation de CDK pour le provisionnement de notre infrastructure sont
sont liés à la possibilité d’utiliser un langage de programmation simple. Cela ouvre la porte
à la collaboration entre développeurs, à la définition de modèles et à la réutilisation du code.

Pour une comparaison entre CDK et CloudFormation, consultez mon autre article –
AWS CDK vs CloudFormation – Comparaison

Lecture complémentaire #



Source link

Laisser un commentaire