Bootstrapping de contas AWS para uma integração perfeita com o Backstage.io

by Keiran Holloway, Senior Technical Manager - EMEA Professional Services, Rackspace Technology

Introdução

Embarcar na jornada da plataforma Backstage.io introduz vários desafios iniciais, nomeadamente, estabelecer um mecanismo de interação com o seu fornecedor de serviços na nuvem. Esta publicação irá esclarecer a abordagem que a Rackspace Technology utiliza para integrar perfeitamente as contas Amazon Web Services (AWS) com o Backstage, uma pedra angular para permitir um fluxo de trabalho de desenvolvimento suave e eficiente.

O nosso objetivo

O nosso objetivo é simples, mas vital:

  • Permitir que os pipelines Backstage e CI/CD interajam com os serviços AWS.
  • Garantir que os serviços possam ser detectados no Backstage.
  • Manter a simplicidade e a eficiência, minimizando as entradas para obter o máximo de resultados.

Este esforço levou à criação de um dos nossos modelos iniciais do Backstage, concebido para facilitar a adoção da plataforma e simplificar as interações na nuvem.

A nossa abordagem

Embora existam inúmeras estratégias potenciais para a integração de serviços em nuvem, partilhamos um método adaptado para o desenvolvimento rápido de MVP. Não se trata de uma solução única para todos. Trata-se de um modelo que beneficiou significativamente muitos dos nossos projectos, servindo de inspiração para outras estratégias de implementação. Uma visão de alto nível do nosso fluxo de trabalho inclui o seguinte:

< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>

 

Pré-requisitos

Para iniciar o processo, vai precisar de:

  1. Credenciais AWS: Credenciais de acesso temporárias para a conta AWS de destino
  2. Região AWS: A região de destino da implantação é normalmente US-EAST-1

Autenticação AWS

A autenticação no AWS é o primeiro passo, que requer o seguinte:

  1. Uma conta AWS existente
  2. Uma função IAM para o Backstage assumir
  3. Uma conta de utilizador que fornece credenciais temporárias para o Backstage

Esta configuração permite a injeção de credenciais no modelo de arranque do Backstage, estabelecendo as bases para outras acções.

Tratamento de credenciais

Usando a ação personalizada da Rackspace Technology, aws:get: credentials, analisamos e carregamos as credenciais do AWS fornecidas como variáveis de ambiente. As credenciais são então autenticadas nas APIs do AWS, protegendo o acesso do Backstage aos serviços do AWS.

Automatização de infra-estruturas

  1. ASW CloudFormation para a criação de funções do AWS IAM: Automatizamos a implementação das funções necessárias do AWS Identity and Access Management (IAM) através do ASW CloudFormation, aderindo a uma convenção de nomenclatura e assegurando um modelo de acesso de privilégio mínimo.
  2. Configuração do provedor de identidade OICD: Estabelecer uma ponte entre o OpenID Connect e o OpenID Provider Ações do GitHub com funções do AWS IAM.
  3. Configuração do S3 e do DynamoDB: Essencial para gerenciar os estados do Terraform e garantir a segurança de operações simultâneas, criamos buckets S3 e tabelas DynamoDB seguindo convenções de nomenclatura específicas.

Estrutura do repositório

O nosso modelo organiza o repositório em camadas distintas, atendendo a diferentes aspectos da implantação de infra-estruturas e serviços, incluindo:

  • /bootstrap: Para os scripts de configuração inicial
  • /foundation: Para configurações da rede principal e da zona de aterragem
  • /serviços: Para implementar e gerir recursos específicos do serviço
  • /fullstack: Para modelos completos que abrangem várias camadas de infra-estruturas

Esta estrutura não só simplifica o desenvolvimento, como também se alinha com as melhores práticas para a infraestrutura como código (IaC).

Registo no catálogo dos bastidores

Para finalizar o processo, registamos a nova entidade configurada no catálogo de software da Backstage, tornando-a visível e gerível através da plataforma.

Conclusão

O nosso percurso através da integração de contas AWS com o Backstage sublinha a importância de uma abordagem metódica e simplificada. Ao partilhar a nossa experiência, esperamos capacitar os programadores para criarem soluções robustas, eficientes e escaláveis, tirando partido de todo o potencial do Backstage para melhorar os seus ecossistemas de desenvolvimento.

Saiba mais sobre a Rackspace Elastic Engineering. Inscrever-se numa oficina gratuita