Architecture et terminologie ADDF - AWS Directives prescriptives

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.

Architecture et terminologie ADDF

Avant de pouvoir comprendre les sujets liés à la sécurité et aux opérations abordés dans ce guide, il est important d'avoir une excellente connaissance de la terminologie, des composants et de l'architecture Autonomous Driving Data Framework (ADDF). Cette section se compose des rubriques suivantes :

Terminologie ADDF

La terminologie clé ADDF est la suivante :

  • Module ADDF : un module est une infrastructure en tant que code (IaC) qui implémente une tâche commune dans un système avancé d'assistance au pilote (ADAS, Advanced Driver-Assistance System). Les tâches courantes incluent la configuration du stockage centralisé des données, des pipelines de traitement des données, des mécanismes de visualisation, des interfaces de recherche, des charges de travail de simulation, des interfaces d'analytique et des tableaux de bord prédéfinis. Vous pouvez créer un module en fonction de vos besoins, ou vous pouvez réutiliser ou personnaliser un module existant.

    Vous pouvez utiliser le AWS Cloud Development Kit (AWS CDK) pour définir les modules ADDF, ou vous pouvez utiliser n'importe quel framework IaC courant, tel que Hashicorp Terraform ou AWS CloudFormation pour implémenter les modules ADDF. Un module possède un ensemble de paramètres d'entrée. Les paramètres d'entrée peuvent dépendre des valeurs de sortie des autres modules. Un module ADDF est la plus petite unité de déploiement pour un Compte AWS cible ADDF.

  • Fichier manifeste de déploiement ADDF : ce fichier définit une orchestration de modules ADDF autonomes. L'orchestration fait référence à l'ordre de déploiement des modules. Dans le fichier manifeste de déploiement ADDF, vous pouvez utiliser des groupes ADDF pour regrouper les modules associés. Dans ce fichier, vous définissez également la chaîne d'outils ADDF Compte AWS, la cible ADDF et la cible Comptes AWS. Régions AWS

  • Structure de déploiement ADDF — Cette structure déploie les modules ADDF dans la cible ADDF en Comptes AWS fonction de l'orchestration définie dans le fichier manifeste de déploiement ADDF. Le cadre de déploiement de l'ADDF est mis en œuvre à l'aide des projets AWS open source suivants :

    • SeedFarmer(GitHub) — SeedFarmer est l'outil CLI utilisé pour les déploiements ADDF. Il gère l'état de chaque module, prépare et empaquète le code du module, crée les politiques de moindre privilège pour les rôles de déploiement ADDF et fournit des instructions sémantiques à utiliser pour le déploiement. CodeSeeder Vous pouvez interagir directement avec SeedFarmer ADDF pour exécuter des déploiements, ou vous pouvez l'intégrer dans un pipeline d'intégration et de déploiement continus (CI/CD).

    • CodeSeeder(GitHub) — CodeSeeder déploie une infrastructure arbitraire sous forme de packages de code via une AWS CodeBuild tâche. SeedFarmerorchestre et s'exécute CodeSeeder automatiquement. Interagit uniquement SeedFarmer directement avec CodeSeeder.

    Le cadre de déploiement ADDF est conçu pour prendre en charge les déploiements dans des architectures à compte unique et à comptes multiples. En fonction des besoins de votre organisation, vous décidez si une architecture à compte unique ou à comptes multiples est requise.

  • Chaîne d'outils ADDF Compte AWS — Ce compte orchestre et gère le déploiement des modules dans la cible ADDF Comptes AWS, sur la base des définitions contenues dans le fichier manifeste de déploiement ADDF. Un déploiement ADDF ne peut avoir qu'un seul Compte AWS de chaîne d'outils ADDF. Dans une architecture à compte unique, le Compte AWS de chaîne d'outils ADDF est également le Compte AWS de destination ADDF. Ce compte contient un rôle AWS Identity and Access Management (IAM), appelé rôle IAM de la chaîne d'outils ADDF, qui est assumé par le processus de déploiement de l' SeedFarmer ADDF. Dans ce guide, nous appelons une chaîne d'outils ADDF un compte de chaîne Compte AWS d'outils.

  • Cible ADDF Comptes AWS : il s'agit des comptes cibles sur lesquels vous déployez des modules ADDF. Vous pouvez avoir un ou plusieurs comptes de destination. Ces comptes contiennent les ressources et la logique d'application décrites dans le fichier manifeste de déploiement ADDF et ses modules mappés. Dans une architecture à compte unique, la cible ADDF Compte AWS est également la chaîne d'outils ADDF. Compte AWS Chaque compte cible ADDF contient un rôle IAM, appelé rôle IAM de déploiement ADDF, qui est assumé CodeSeeder pendant le processus de déploiement. Dans ce guide, nous appelons une cible Compte AWS ADDF un compte cible.

  • Instance ADDF : lorsque vous déployez ADDF et vos modules dans le cloud, tel que défini dans votre fichier manifeste de déploiement ADDF, cela devient une instance ADDF. Une instance ADDF peut avoir une architecture à compte unique ou à comptes multiples, et vous pouvez déployer plusieurs instances ADDF. Pour plus d'informations sur le choix du nombre d'instances et la conception d'une architecture de compte adaptée à votre cas d'utilisation, veuillez consulter Définition de votre architecture ADDF.

Architecture ADDF

Le schéma suivant présente l'architecture de haut niveau d'une instance ADDF dans le AWS Cloud. Il présente une architecture à comptes multiples, comprenant un compte de chaîne d'outils dédié et deux comptes de destination. Ce guide décrit le end-to-end processus d'utilisation d'ADDF pour déployer des ressources sur les comptes cibles.

Code local ADDF, fichier manifeste de déploiement et AWS architecture avec chaîne d'outils et comptes cibles.
  1. Créez et amorcez les Comptes AWS ADDF.

    Pour fonctionner correctement, chaque compte doit être amorcé à ADDF et à AWS CDK. S'il s'agit d'un nouveau déploiement ADDF ou si vous ajoutez de nouveaux comptes de destination, procédez comme suit :

    1. Bootstrap AWS CDK dans le compte de la chaîne d'outils et dans chaque compte cible. Pour les instructions, veuillez consulter Bootstrapping (documentation AWS CDK ). ADDF utilise AWS CDK pour déployer son infrastructure.

    2. Amorcez ADDF dans le compte de chaîne d'outils et dans chaque compte de destination. Pour obtenir des instructions, voir Bootstrap Compte AWS(s) dans le guide de déploiement ADDF. Cela permet de configurer tous les rôles IAM spécifiques à l'ADDF requis par et. SeedFarmer CodeSeeder

    Note

    Vous devez effectuer cette étape uniquement si vous déployez initialement ADDF ou si vous ajoutez de nouveaux comptes de destination. Cette étape ne fait pas partie des déploiements ADDF récurrents vers des instances ADDF déjà établies.

  2. Créez ou personnalisez les modules ADDF.

    Créez ou personnalisez des modules ADDF en fonction du problème spécifique que vous essayez de résoudre. Votre module doit représenter une tâche isolée ou un groupe de tâches isolé. Définissez les paramètres d'entrée du module selon les besoins et utilisez les valeurs de sortie du module comme paramètres d'entrée pour d'autres modules.

  3. Définissez l'orchestration du module dans le fichier manifeste de déploiement ADDF.

    Dans le fichier manifeste ADDF, organisez les modules en groupes et définissez l'ordre de déploiement et les dépendances entre eux. Dans ce fichier, vous spécifiez également le compte unique de la chaîne d'outils et les comptes cibles (y compris Régions AWS) pour chaque groupe ADDF et ses modules.

  4. Évaluez le fichier manifeste de déploiement ADDF et déterminez la portée du déploiement.

    Le développeur ADDF ou un pipeline CI/CD, par exemple AWS CodePipeline, lance une évaluation du fichier manifeste de déploiement ADDF en appelant l'outil CLI,. SeedFarmer Pour démarrer l'évaluation :

    • SeedFarmer utilise le fichier manifeste de déploiement ADDF comme paramètre d'entrée pour l'évaluation.

    • Pour assumer le rôle IAM de la chaîne d'outils ADDF, vous devez utiliser SeedFarmer le même rôle IAM valide ou les mêmes informations d'identification utilisateur que celles définies lors du processus d'amorçage ADDF, à l'étape 1.

    Si vous SeedFarmer ne disposez pas des informations d'identification correctes pour assumer le rôle IAM de la chaîne d'outils ADDF ou s'il ne peut pas accéder au fichier manifeste de déploiement ADDF, l'évaluation ne démarre pas.

    Si vous SeedFarmer pouvez démarrer l'évaluation, elle assume le rôle IAM de la chaîne d'outils ADDF dans le compte de la chaîne d'outils. À partir de là, SeedFarmer vous pouvez accéder à n'importe quel compte cible en assumant le rôle IAM de déploiement ADDF dans ce compte. SeedFarmer essaie ensuite de lire toutes les métadonnées ADDF dans le compte de la chaîne d'outils et les comptes cibles. L'une des situations suivantes se produit :

    • S'il n'y a aucune métadonnée ADDF à lire, cela indique qu'il s'agit d'une nouvelle instance ADDF. SeedFarmer détermine que l'étendue du déploiement est l'intégralité du fichier manifeste de déploiement ADDF et de son contenu.

    • Si des métadonnées ADDF existent, SeedFarmer compare le fichier manifeste de déploiement ADDF et son contenu aux MD5 hachages des artefacts déployés existants dans les comptes cibles. Si des modifications déployables sont détectées, ce processus se poursuit. Si aucune modification déployable n'est détectée, le processus est terminé.

  5. Déployez les modules ADDF concernés sur les comptes de destination.

    CodeSeeder dispose désormais d'une liste ordonnée des déploiements à exécuter, conformément au fichier manifeste de déploiement ADDF et aux résultats de l'évaluation de l'étape précédente. Sur la base de cette liste ordonnée, CodeSeeder assume le rôle IAM de déploiement ADDF dans chaque compte cible associé. Il s'exécute ensuite CodeSeeder dans le cadre d'une AWS CodeBuild tâche visant à créer ou à mettre à jour les déploiements iAc individuels, tels que AWS CDK les applications, pour le module ADDF. Par défaut, ADDF utilise AWS CDK comme framework IaC, mais d'autres frameworks IaC courants sont également pris en charge. Une fois le processus terminé pour chaque compte cible, vous disposez d'un flux de travail multicomptes end-to-end basé sur ADAS entièrement déployé, comme vous l'avez défini dans le fichier manifeste de déploiement ADDF.

    Si vous utilisez une architecture à compte unique, le compte de chaîne d'outils et les comptes de destination sont le même compte, et le seul qui possède toutes les fonctionnalités décrites.

  6. Utilisez l'infrastructure déployée par ADDF.

    Un développeur ADAS peut utiliser le flux de travail basé sur ADAS déployé, tel que défini par votre cas d'utilisation.

    Ce flux de travail décrit l'architecture d'une instance unique d'un environnement à comptes multiples ADDF. En fonction de votre modèle de développement, de déploiement et d'opérations, nous vous recommandons d'exécuter plusieurs instances ADDF dans un environnement à plusieurs étapes. Une configuration typique peut inclure une instance ADDF dédiée dédiée Comptes AWS à chaque étape de déploiement, telle que des branches pour le développement, les tests et la production. Vous pouvez également exécuter plusieurs instances ADDF dans le même environnement à compte unique ou multicompte Région AWS, en supposant que vous ayez créé un espace de noms de ressources unique pour chaque instance ADDF. Pour de plus amples informations, veuillez consulter Définition de votre architecture ADDF.