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á.
Crie uma arquitetura pouco acoplada com microsserviços usando DevOps práticas e o AWS Cloud9
Criado por Alexandre Nardi (AWS)
Ambiente: PoC ou piloto | Tecnologias: DevOps; Sem servidor; aplicativos móveis e da Web; bancos de dados | Serviços da AWS: AWS Cloud9; AWS; CloudFormation AWS; Amazon DynamoDB; CodePipeline AWS CodeCommit |
Resumo
Esse padrão demonstra como desenvolver um aplicativo web típico em uma arquitetura sem servidor, para desenvolvedores e líderes de desenvolvimento que estão começando a testar DevOps práticas na Amazon Web Services (AWS). Ele cria um aplicativo de amostra que cria uma vitrine e um backend para navegar e comprar livros e fornece um microsserviço que pode ser desenvolvido de forma independente. O padrão usa o AWS Cloud9 como ambiente de desenvolvimento, um banco de dados do Amazon DynamoDB como armazenamento de dados e serviços da AWS, como AWS e AWS, para integração contínua CodePipeline e funcionalidade de implantação contínua ( CodeBuild CI/CD).
O padrão orienta você nas seguintes atividades de desenvolvimento:
Criar um ambiente de desenvolvimento do AWS Cloud9
Usando CloudFormation modelos da AWS para criar um aplicativo web e um microsserviço para livros
Usando o AWS Cloud9 para modificar o frontend, confirmar alterações e testar alterações
Criando e testando um pipeline de CI/CD para o microsserviço
Automatizando testes unitários
O código desse padrão é fornecido no repositório GitHub do AWS DevOps End-to-End Workshop
Pré-requisitos e limitações
Pré-requisitos
Uma conta AWS ativa
Arquivos do AWS DevOps End-to-End Workshop
baixados para o seu computador
Importante: criar esse aplicativo de demonstração em sua conta da AWS cria e consome recursos da AWS. Você é responsável pelo custo dos serviços e recursos da AWS usados para criar e executar o aplicativo. Depois de concluir seu trabalho, lembre-se de remover todos os recursos para evitar cobranças contínuas. Para obter instruções de limpeza, consulte a seção Épicos.
Limitações
Este passo a passo é destinado apenas para fins de demonstração e desenvolvimento. Para usá-lo em um ambiente de produção, consulte as melhores práticas de segurança na documentação do AWS Identity and Access Management (IAM) e faça as alterações necessárias nos perfis do IAM, no Amazon DynamoDB e em outros serviços usados. O aplicativo web é derivado do aplicativo de demonstração do AWS Bookstore
Arquitetura
A arquitetura do aplicativo da livraria é ilustrada na seção Arquitetura
Do ponto de vista da implantação, o aplicativo Bookstore Demo usa um único CloudFormation modelo para implantar todos os serviços e objetos em uma única pilha. Esse padrão faz algumas alterações para demonstrar como um determinado desenvolvedor ou equipe poderia trabalhar em um produto específico (livros) e atualizá-lo independentemente do resto do aplicativo. Por esse motivo, o código desse padrão separa as funções do AWS Lambda e os objetos relacionados do microsserviço Books em um CloudFormation segundo modelo, que cria uma pilha de livros. Isso possibilita ver o microsserviço sendo atualizado usando práticas de CI/CD. No diagrama a seguir, a borda tracejada identifica o microsserviço Books.
Ferramentas
Ferramentas
Estrutura Jest para testes JavaScript
Python 3.9
Código
O código-fonte e os modelos desse padrão estão disponíveis no repositório GitHub do AWS DevOps End-to-End Workshop
Nota: a seção Épicos fornece as etapas de alto nível para este passo a passo, para fornecer informações gerais sobre o processo. Para concluir cada etapa, consulte o arquivo README
O repositório do AWS DevOps End-to-End Workshop
Práticas recomendadas
Usar o aplicativo Bookstore é simples. Aqui estão algumas das melhores práticas recomendadas:
Ao instalar o aplicativo, você pode usar um nome de projeto de sua escolha ou usar o nome padrão (
demobookstore
) por conveniência.Depois de instalar e executar o aplicativo, é uma boa prática desligar o banco de dados Amazon Neptune se você quiser continuar testando por mais um dia, pois a instância do banco de dados pode resultar em cobranças adicionais. No entanto, esteja ciente de que o banco de dados será iniciado automaticamente após sete dias.
Para obter detalhes do código, consulte a documentação do repositório do aplicativo de demonstração do AWS Bookstore
. Ela descreve cada microsserviço e tabela. Para obter melhores práticas adicionais, consulte Alguns desafios se você tiver tempo... seção do arquivo README
no repositório do AWS DevOps End-to-End Workshop. Recomendamos que você analise as informações para se aprofundar nos recursos adicionais de segurança e praticar serviços de dissociação.
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Baixe o código-fonte em GitHub. | O código-fonte e os modelos desse padrão estão disponíveis no repositório GitHub do AWS DevOps End-to-End Workshop Nota: a seção Épicos fornece as etapas de alto nível para este passo a passo, para fornecer informações gerais sobre o processo. Para concluir cada etapa, consulte o arquivo README O repositório do AWS DevOps End-to-End Workshop | Desenvolvedor de aplicativos |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie as funções do Lambda e de frontend para o aplicativo Bookstore. |
| Desenvolvedor |
Crie o microsserviço Books. | No CloudFormation console | Desenvolvedor |
Teste seu aplicativo. | Use o URL do site da DemoBookStoreStack pilha para acessar o aplicativo Bookstore. | Desenvolvedor |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie um AWS Cloud9 IDE. | No CloudFormation console | Desenvolvedor, líder de desenvolvimento |
Crie CodeCommit repositórios. |
| Desenvolvedor |
Altere o código no frontend e verifique o pipeline. |
| Desenvolvedor |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Adicione os arquivos YAML para a compilação e a atualização do serviço. |
| Desenvolvedor |
Crie um bucket do S3 para o pipeline de compilação. | Para criar um bucket do S3, siga as instruções na documentação do Amazon S3.
| Desenvolvedor |
Use o IAM para criar uma função para CloudFormation implantação. | Crie uma função | Desenvolvedor |
Crie um novo pipeline para automatizar a criação e a implantação do microsserviço Books. | Desenvolvedor | |
Teste seu microsserviço no AWS Cloud9. | Faça uma alteração na ListBooksfunção e veja o pipeline funcionando. | Desenvolvedor |
Automatize o teste unitário para a função ListBooks Lambda. | No AWS Cloud9 IDE, habilite a compilação para executar testes unitários e verificar os resultados do teste. Para obter instruções, consulte o arquivo README | Desenvolvedor |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Torne sua solução segura. | Configure | Desenvolvedor |
Elimine dependências nos CloudFormation modelos. | O método para trocar informações entre o modelo | Desenvolvedor |
Crie um microsserviço Cart. | Use o microsserviço Books como exemplo para retirar as funções relacionadas ao carrinho de compras do modelo | Desenvolvedor |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Exclua os buckets do S3. | No console do Amazon S3
| Desenvolvedor |
Exclua as pilhas. | No CloudFormation console
A remoção pode levar mais de 90 minutos. Se a remoção falhar, exclua-os novamente e também exclua todos os recursos manuais (por exemplo, a VPC ou as interfaces de rede) com base nas notificações. | Desenvolvedor |
Excluas os perfis do IAM. | No console do IAM
Para step-by-step obter instruções, consulte a documentação do IAM. | Desenvolvedor |
Recursos relacionados
Criação de uma pilha no CloudFormation console da AWS ( CloudFormation documentação da AWS)
Criação de um bucket (documentação do Amazon S3)
Mais informações
Para obter step-by-step instruções detalhadas, consulte o arquivo README
Sobre a atualização de maio de 2023: esse padrão foi atualizado para usar versões mais recentes do Node e do Python. Atualizamos muitos dos pacotes no código-fonte e removemos o Glyphicon porque ele não é mais gratuito. Também removemos todas as dependências do repositório do aplicativo de demonstração do AWS Bookstore