Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Créez une architecture faiblement couplée avec des microservices en utilisant DevOps Practices et AWS Cloud9
Créée par Alexandre Nardi (AWS)
Récapitulatif
Remarque : n' AWS Cloud9 est plus disponible pour les nouveaux clients. Les clients existants de AWS Cloud9 peuvent continuer à utiliser le service normalement. En savoir plus
Remarque : n' AWS CodeCommit est plus disponible pour les nouveaux clients. Les clients existants de AWS CodeCommit peuvent continuer à utiliser le service normalement. En savoir plus
Ce modèle montre comment développer une application Web typique dans une architecture sans serveur, pour les développeurs et les responsables du développement qui commencent à tester DevOps des pratiques sur Amazon Web Services (AWS). Il crée un exemple d'application qui crée une vitrine et un backend pour parcourir et acheter des livres, et fournit un microservice qui peut être développé indépendamment. Le modèle utilise AWS Cloud9 comme environnement de développement, une base de données Amazon DynamoDB comme magasin de données et des services AWS tels qu'AWS et CodeBuild AWS pour les fonctionnalités d'intégration CodePipeline et de déploiement continus (CI/CD).
Le modèle vous guide à travers les activités de développement suivantes :
Création d'un environnement de développement AWS Cloud9 standard
Utilisation de CloudFormation modèles AWS pour créer une application Web et un microservice pour les livres
Utilisation d'AWS Cloud9 pour modifier le front-end, valider les modifications et tester les modifications
Création et test d'un pipeline CI/CD vers le microservice
Automatisation des tests unitaires
Le code de ce modèle est fourni dans GitHub le référentiel AWS DevOps End-to-End Workshop
Conditions préalables et limitations
Prérequis
Un compte AWS actif
Fichiers de l'AWS DevOps End-to-End Workshop
téléchargés sur votre ordinateur
Important
La création de cette application de démonstration dans votre compte AWS crée et consomme des ressources AWS. Vous êtes responsable du coût des services et des ressources AWS utilisés pour créer et exécuter l'application. Une fois votre travail terminé, veillez à supprimer toutes les ressources afin d'éviter des frais récurrents. Pour les instructions de nettoyage, consultez la section Epics.
Limites
Cette procédure pas à pas est uniquement destinée à des fins de démonstration et de développement. Pour l'utiliser dans un environnement de production, consultez les meilleures pratiques en matière de sécurité dans la documentation AWS Identity and Access Management (IAM) et apportez les modifications nécessaires aux rôles IAM, à Amazon DynamoDB et aux autres services utilisés. L'application Web est dérivée de l'application de démonstration AWS Bookstore
Architecture
L'architecture de l'application de librairie est illustrée dans la section Architecture
Du point de vue du déploiement, l'application de démonstration Bookstore utilise un CloudFormation modèle unique pour déployer tous les services et objets dans une seule pile. Ce modèle apporte quelques modifications pour montrer comment un développeur ou une équipe en particulier pourrait travailler sur un produit spécifique (Books) et le mettre à jour indépendamment du reste de l'application. C'est pourquoi le code de ce modèle sépare les fonctions AWS Lambda et les objets associés pour le microservice Books dans un second CloudFormation modèle, qui crée une pile Books. Cela permet de voir le microservice mis à jour en utilisant les pratiques CI/CD. Dans le schéma suivant, la bordure en pointillés identifie le microservice Books.

Outils
Outils
Framework Jest pour les tests JavaScript
Python 3.9
Code
Le code source et les modèles de ce modèle sont disponibles sur GitHub le référentiel AWS DevOps End-to-End Workshop
Note
La section Epics fournit les étapes de haut niveau de cette procédure pas à pas, afin de vous donner des informations générales sur le processus. Pour terminer chaque étape, consultez le fichier README
Le référentiel AWS DevOps End-to-End Workshop
Bonnes pratiques
L'utilisation de l'application Bookstore est simple. Voici quelques bonnes pratiques recommandées :
Lorsque vous installez l'application, vous pouvez utiliser le nom du projet de votre choix ou utiliser le nom par défaut (
demobookstore
) pour plus de commodité.Une fois que l'application est opérationnelle, il est recommandé d'arrêter la base de données Amazon Neptune si vous souhaitez poursuivre les tests pendant un jour de plus, car l'instance de base de données peut entraîner des frais supplémentaires. Sachez toutefois que la base de données sera automatiquement démarrée au bout de sept jours.
Pour plus de détails sur le code, consultez la documentation du référentiel d'applications de démonstration AWS Bookstore
. Il décrit chaque microservice et chaque table. Pour d'autres bonnes pratiques, consultez la section Quelques défis si vous avez le temps... section du fichier README
dans le référentiel AWS DevOps End-to-End Workshop. Nous vous recommandons de consulter les informations pour approfondir les fonctionnalités supplémentaires de sécurité et pour pratiquer le découplage des services.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Téléchargez le code source depuis GitHub. | Le code source et les modèles de ce modèle sont disponibles dans GitHub le référentiel AWS DevOps End-to-End Workshop NoteLa section Epics fournit les étapes de haut niveau de cette procédure pas à pas, afin de vous donner des informations générales sur le processus. Pour terminer chaque étape, consultez le fichier README Le référentiel AWS DevOps End-to-End Workshop | Développeur d’applications |
Tâche | Description | Compétences requises |
---|---|---|
Créez les fonctions frontales et Lambda pour l'application Bookstore. |
| Developer |
Créez le microservice Books. | Sur la CloudFormation console | Developer |
Testez votre application. | Utilisez l'URL du site Web figurant dans la DemoBookStoreStack pile pour accéder à l'application Bookstore. | Developer |
Tâche | Description | Compétences requises |
---|---|---|
Créez un IDE AWS Cloud9. | Sur la CloudFormation console | Développeur, responsable du développement |
Créez des CodeCommit référentiels. |
| Developer |
Modifiez le code dans le frontend et vérifiez le pipeline. |
| Developer |
Tâche | Description | Compétences requises |
---|---|---|
Ajoutez les fichiers YAML pour la compilation et la mise à jour du service. |
| Developer |
Créez un compartiment S3 pour le pipeline de construction. | Pour créer un compartiment S3, suivez les instructions de la documentation Amazon S3.
| Developer |
Utilisez IAM pour créer un rôle à CloudFormation déployer. | Créez un | Developer |
Créez un nouveau pipeline pour automatiser la création et le déploiement du microservice Books. | Developer | |
Testez votre microservice dans AWS Cloud9. | Modifiez la ListBooksfonction et observez le pipeline fonctionner. | Developer |
Automatisez le test unitaire pour la fonction ListBooks Lambda. | Dans l'IDE AWS Cloud9, activez la version pour exécuter des tests unitaires et vérifiez les résultats des tests. Pour obtenir des instructions, consultez le fichier README | Developer |
Tâche | Description | Compétences requises |
---|---|---|
Sécurisez votre solution. | Configurez | Developer |
Éliminez les dépendances dans les CloudFormation modèles. | La méthode d'échange d'informations entre le | Developer |
Créez un microservice Cart. | Utilisez le microservice Books comme exemple pour supprimer les fonctions liées au panier d'achat du | Developer |
Tâche | Description | Compétences requises |
---|---|---|
Supprimez les compartiments S3. | Sur la console Amazon S3
| Developer |
Supprimez les piles. | Sur la CloudFormation console
Le retrait peut prendre plus de 90 minutes. Si la suppression échoue, supprimez-les à nouveau et supprimez également toutes les ressources manuelles (par exemple, le VPC ou les interfaces réseau) en fonction des notifications. | Developer |
Supprimez les rôles IAM. | Sur la console IAM
Pour step-by-step obtenir des instructions, consultez la documentation IAM. | Developer |
Ressources connexes
Création d'une pile sur la CloudFormation console AWS ( CloudFormation documentation AWS)
Création d'un compartiment (documentation Amazon S3)
Informations supplémentaires
Pour obtenir des step-by-step instructions détaillées, consultez le fichier README
À propos de la mise à jour de mai 2023 : ce modèle a été mis à jour pour utiliser les nouvelles versions de Node et Python. Nous avons mis à jour de nombreux packages du code source et supprimé Glyphicon car il n'est plus gratuit. Nous avons également supprimé toutes les dépendances du référentiel de l'application de démonstration AWS Bookstore