Coder Social home page Coder Social logo

dynamodbmanager_function's Introduction

Arquitetura Serverless na AWS & Terraform

Projeto realizado para a matéria de Digital Product - BootCamp (Impacta - MBA Cloud Computing & DevOps)

Este repositório tem como objetivo demonstrar a criação de uma arquitetura serverless usando Terraform.

Pensando em cenários onde não desejamos nos preocupar em gerenciar uma infraestrutura de servidores, podemos optar em utilizar serviços serverless que faz essa camada de infra ser de responsabilidade do provedor (AWS, Azure, GCP). Com isso, na maioria das vezes ganhamos mais agilidade nas entregas, escalabilidade e redução de custos.

Arquitetura

Alt text
Toda ela é criada via infraestrutura como código com o Terraform. Veja aqui

API Gateway

É a nossa porta de entrada, que vai encaminhar as chamadas HTTP para nossa função Lambda.

Com o API Gateway conseguimos criar APIs e administrar todo o recebimento de chamadas simultâneas. Sendo possível gerenciar todo o tráfego HTTP, configurar CORS, adicionar controle de acesso e até criar um controle de versões da nossa API.

Lambda

Roda nossa aplicação escrita em Python que vai nos permitir executar as operações create, update, read, list, delete em nossa tabela do DynamoDB.

O serviço Lambda permite executar códigos sem se preocupar com o processamento do servidor, basta enviar o código e indicar qual é o método/função inicial.

DynamoDB

Se trata do banco de dados que vamos usar para manter os dados na tabela anything.

DynamoDB é um serviço de banco de dados NoSQL sem servidor e totalmente gerenciado que oferece suporte a estruturas de dados de documentos e chave-valor

CI/CD

Para subir todas as peças pode ser utilizado uma máquina na AWS com Terraform e Python3 (para executar os testes) instalado e o Jenkins configurado para que tudo seja feito de forma automatizada. Então temos aqui no repo um Jenkinsfile que pode ser utilizado na criação da esteira. Utilizando ele nós vamos ter os seguintes steps em nossa pipeline:
Checkout > Unit Test > Terraform init > Terraform plan > Terraform apply > Terraform destroy
Com o apply tudo será criado e no destroy tudo é destruído, por isso esses steps exigem a ação manual de escolher se deseja continuar ou abortar.

Run

Para realizar as chamadas basta utilizar a url que será apresentada nos logs do step Terraform apply com o método HTTP POST e o body conforme os exemplos aqui, ou rodar os testes direto no API Gateway via console da AWS

CloudWatch Logs

Além de todas as peças mencionadas acima, também estamos utilizando para nos ajudar com Troubleshootings um grupo de logs do CloudWatch que armazena e nos permite visualizar os logs da nossa Lambda, isto também foi criado via Terraform neste ponto. Para acessar os logs basta entrar no CloudWatch Log Groups e buscar pelo nome da função dynamodbmanager_function

dynamodbmanager_function's People

Contributors

cunha981 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.