Arquitetura e terminologia do ADDF - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Arquitetura e terminologia do ADDF

Antes de entender os tópicos operacionais e de segurança deste guia, é importante ter uma compreensão de alto nível da terminologia, dos componentes e da arquitetura do Autonomous Driving Data Framework (ADDF). Esta seção contém os seguintes tópicos:

Terminologia do ADDF

A terminologia importante do ADDF é:

  • Módulo do ADDF: um módulo é uma infraestrutura como código (IaC) que implementa uma tarefa comum em um sistema avançado de assistência ao motorista (ADAS). As tarefas comuns incluem a configuração de armazenamento de dados centralizado, pipelines de processamento de dados, mecanismos de visualização, interfaces de pesquisa, workloads de simulação, interfaces de análise e painéis pré-criados. Você pode criar um módulo com base em seus requisitos ou pode reutilizar ou personalizar um módulo existente.

    Você pode usar o AWS Cloud Development Kit (AWS CDK) para definir módulos ADDF, ou usar qualquer estrutura IaC comum, como Hashicorp Terraform ou o AWS CloudFormation, para implementar os módulos ADDF. Um módulo tem um conjunto de parâmetros de entrada. Os parâmetros de entrada podem depender dos valores de saída de outros módulos. Um módulo ADDF é a menor unidade de implantação para uma Conta da AWS de destino do ADDF.

  • Arquivo de manifesto de implantação do ADDF: esse arquivo define uma orquestração de módulos ADDF autônomos. Orquestração refere-se à ordem de implantação dos módulos. No arquivo de manifesto de implantação do ADDF, você pode usar grupos do ADDF para agrupar módulos relacionados. Nesse arquivo, você também define a Conta da AWS da cadeia de ferramentas do ADDF, as Contas da AWS de destino do ADDF, e as Regiões da AWS de destino.

  • Estrutura de implantação do ADDF: essa estrutura implanta módulos ADDF nas Contas da AWS de destino do ADDF com base na orquestração definida no arquivo de manifesto de implantação do ADDF. A estrutura de implantação do ADDF é implementada usando os seguintes projetos de código aberto da AWS:

    • SeedFarmer(GitHub): o SeedFarmer é a ferramenta CLI usada para implantações do ADDF. Ele gerencia cada estado do módulo, prepara e empacota o código do módulo, cria as políticas de privilégios mínimos para os perfis de implantação do ADDF e fornece instruções semânticas que o CodeSeeder usa para implantação. Você pode interagir diretamente com o SeedFarmer para executar implantações do ADDF ou pode integrá-lo em um pipeline de implantação contínua e integração contínua (CI/CD).

    • CodeSeeder (GitHub): o CodeSeeder implanta infraestrutura arbitrária como pacotes de código por meio de um trabalho do AWS CodeBuild. O SeedFarmer orquestra e executa automaticamente o CodeSeeder. Somente o SeedFarmer interage diretamente com o CodeSeeder.

    A estrutura de implantação do ADDF foi projetada para oferecer suporte a implantações em arquiteturas de conta única e de várias contas. Com base nos requisitos da sua organização, você decide se uma arquitetura de conta única ou de várias contas é necessária.

  • Conjunto de ferramentas do ADDFConta da AWS: essa conta orquestra e gerencia a implantação de módulos nas Contas da AWS de destino do ADDF, com base nas definições do arquivo de manifesto de implantação do ADDF. Uma implantação do ADDF só pode ter uma Conta da AWS de cadeia de ferramentas do ADDF. Em uma arquitetura de conta única, a Conta da AWS da cadeia de ferramentas do ADDF também é a Conta da AWS de destino do ADDF. Essa conta contém um perfil do AWS Identity and Access Management (IAM), chamado perfil do IAM da cadeia de ferramentas do ADDF, que é assumido pelo SeedFarmer durante o processo de implantação do ADDF. Neste guia, nos referimos a uma Conta da AWS de cadeia de ferramentas do ADDF como uma conta de cadeia de ferramentas.

  • Contas da AWS de destino do ADDF: essas são as contas de destino nas quais você está implantando módulos do ADDF. Você pode ter uma ou mais contas de destino. Essas contas contêm os recursos e a lógica da aplicação descritos no arquivo de manifesto de implantação do ADDF e seus módulos mapeados. Em uma arquitetura de conta única, a Conta da AWS da cadeia de ferramentas do ADDF também é a Conta da AWS de destino do ADDF. Cada conta de destino do ADDF contém um perfil do IAM, chamado perfil do IAM de implantação do ADDF, o que é assumido pelo CodeSeeder durante o processo de implantação. Neste guia, nos referimos a uma Conta da AWS de destino do ADDF como uma conta de destino.

  • Instância do ADDF: quando você implanta o ADDF e seus módulos na nuvem, conforme definido em seu arquivo de manifesto de implantação do ADDF, isso se torna uma instância do ADDF. Uma instância do ADDF pode ter uma arquitetura de conta única ou de várias contas, e você pode implantar várias instâncias do ADDF. Para obter mais informações sobre como escolher o número de instâncias e projetar uma arquitetura de conta para seu caso de uso, consulte Definindo sua arquitetura ADDF.

Arquitetura do ADDF

O diagrama a seguir mostra uma arquitetura de alto nível para uma instância do ADDF na Nuvem AWS. Ele mostra uma arquitetura de várias contas, incluindo uma conta de cadeia de ferramentas dedicada e duas contas de destino. Este guia discute o processo completo de uso do ADDF para implantar recursos nas contas de destino.

Código local do ADDF, arquivo de manifesto de implantação e arquitetura da AWS com cadeia de ferramentas e contas de destino.
  1. Crie e inicialize as Contas da AWS do ADDF.

    Para funcionar corretamente, cada conta deve ser inicializada para o ADDF e para o AWS CDK. Se isso for uma nova implantação do ADDF ou se você estiver adicionando novas contas de destino, faça o seguinte:

    1. Faça bootstrap do AWS CDK na conta da cadeia de ferramentas e em cada conta de destino. Para obter instruções, consulte Fazer bootstrap (documentação do AWS CDK). O ADDF usa o AWS CDK para implantar sua infraestrutura.

    2. Faça bootstrap do ADDF na conta de cadeia de ferramentas e em cada conta de destino. Para obter instruções, consulte Bootstrap Conta da AWS(s) no Guia de implantação do ADDF. Isso configura todos os perfis do IAM específicos ao ADDF exigidos pelo SeedFarmer e pelo CodeSeeder.

    nota

    Você deverá realizar essa etapa somente se estiver implantando inicialmente o ADDF ou adicionando novas contas de destino. Essa etapa não faz parte das implantações recorrentes do ADDF em instâncias do ADDF já estabelecidas.

  2. Crie ou personalize os módulos do ADDF.

    Crie ou personalize módulos do ADDF com base no problema específico que você está tentando resolver. Seu módulo deve representar uma tarefa isolada ou um grupo de tarefas. Defina os parâmetros de entrada para o módulo conforme necessário e use os valores de saída do módulo como parâmetros de entrada para outros módulos.

  3. Defina a orquestração do módulo no arquivo de manifesto de implantação do ADDF.

    No arquivo de manifesto do ADDF, organize os módulos em grupos e defina a ordem de implantação e as dependências entre eles. Nesse arquivo, você também especifica a conta única da cadeia de ferramentas e as contas de destino (incluindo Regiões da AWS) para cada grupo do ADDF e seus módulos.

  4. Avalie o arquivo de manifesto de implantação do ADDF e estabeleça o escopo da implantação.

    O desenvolvedor do ADDF ou um pipeline de CI/CD, como o AWS CodePipeline, inicia uma avaliação do arquivo de manifesto de implantação do ADDF chamando a ferramenta CLI, SeedFarmer. Para iniciar a avaliação:

    • O SeedFarmer usa o arquivo de manifesto de implantação do ADDF como um parâmetro de entrada para a avaliação.

    • Para assumir o perfil do IAM da cadeia de ferramentas do ADDF, o SeedFarmer espera o mesmo perfil do IAM válido ou credenciais que foram definidas durante o processo de bootstrap do ADDF, na etapa 1.

    Se o SeedFarmer não tiver as credenciais corretas para assumir o perfil do IAM da cadeia de ferramentas do ADDF ou não puder acessar o arquivo de manifesto de implantação do ADDF, a avaliação não será iniciada.

    Se o SeedFarmer puder iniciar a avaliação, ele assumirá o perfil do IAM da cadeia de ferramentas do ADDF na conta da cadeia de ferramentas. A partir daí, o SeedFarmer poderá acessar qualquer conta de destino, assumindo o perfil do IAM de implantação do ADDF nessa conta. O SeedFarmer então tentará ler qualquer metadado do ADDF na conta da cadeia de ferramentas e nas contas de destino. Uma das seguintes situações acontece:

    • Se não houver metadados do ADDF para ler, isso indicará que essa é uma nova instância do ADDF. O SeedFarmer determina que o escopo de implantação é todo o arquivo de manifesto de implantação do ADDF e seu conteúdo.

    • Se existirem metadados do ADDF, o SeedFarmer compara o arquivo de manifesto de implantação do ADDF e seu conteúdo aos hashes MD5 dos artefatos implantados existentes nas contas de destino. Se forem detectadas alterações implantáveis, esse processo continuará. Se nenhuma alteração implantável for detectada, o processo será concluído.

  5. Implante os módulos ADDF dentro do escopo nas contas de destino.

    O CodeSeeder agora tem uma lista ordenada de implantações a serem executadas, de acordo com o arquivo de manifesto de implantação do ADDF e os resultados da avaliação da etapa anterior. Com base nessa lista ordenada, o CodeSeeder assume o perfil do IAM de implantação do ADDF em cada conta de destino associada. Em seguida, ele executa o CodeSeeder em um trabalho do AWS CodeBuild para criar ou atualizar as implantações individuais do IaC, como aplicações do AWS CDK, para o módulo ADDF. Por padrão, o ADDF usa o AWS CDK como sua estrutura de IaC, mas outras estruturas comuns de IaC também são compatíveis. Depois que o processo for concluído para cada conta de destino, você terá um fluxo de trabalho baseado em ADAS completo, entre contas e completamente implantado, conforme definido no arquivo de manifesto de implantação do ADDF.

    Se você usa uma arquitetura de conta única, a conta da cadeia de ferramentas e as contas de destino são a mesma conta, e a conta única tem todos os recursos descritos.

  6. Use a infraestrutura implantada pelo ADDF.

    Um desenvolvedor do ADAS pode usar o fluxo de trabalho baseado em ADAS implantado, conforme definido pelo seu caso de uso.

    Esse fluxo de trabalho descreve a arquitetura de uma única instância de um ambiente com várias contas do ADDF. Dependendo do seu modelo de desenvolvimento, implantação e operações, recomendamos que você execute várias instâncias do ADDF em um ambiente de vários estágios. Uma configuração típica pode incluir uma instância do ADDF com Contas da AWS dedicadas para cada estágio de implantação, como filiais para desenvolvimento, teste e produção. Você também pode executar várias instâncias do ADDF no mesmo ambiente de conta única ou de várias contas na mesma Região da AWS, supondo que você tenha criado um namespace de recursos exclusivo para cada instância do ADDF. Para obter mais informações, consulte Definindo sua arquitetura ADDF.