Se pesquisarmos por "O que é um microservice?" vamos encontrar muitos artigos que fornecem seus próprios pontos de vista e definições. No entanto, a maioria das características são:
- Um microservice é focado em resolver um único problema
- Desenvolvido por uma pequena equipe
- Escrito em qualquer linguagem, no meu caso Node.js ;)
- Permanece consistente e disponível na presença de falhas
- Interagem com outros microsserviços em protocolos e interfaces bem definidos
- Permite que o código e seu estado tenham versões, implantação e dimensionamento independentes
Seguindo estas característica, este repositório apresenta um proposta de microservice usando uma arquitetura serverless com os recursos de nuvem AWS.
O problema a ser resolvido é um microservice pra Notes.
-
Node.js (https://nodejs.org/en/)
-
Clonar o repositódio
git clone https://github.com/jonatassaraiva/microservice-serverless-lambda-nodejs.git
- Acessar o repositório
cd microservice-serverless-lambda-nodejs
- Instalar as dependência
npm install
- Instalar Serverless Framework, um toolkit para deploy e operação para aplicações sem servidor
npm install serverless -g
- Deploy. Substituir os valores
AWS_ACCESS_KEY_ID=<value> AWS_SECRET_ACCESS_KEY=<value> AWS_REGION=<value> sls deploy
-
Executar os passos de 1 a 4 do item acima
-
Criar o arquivo com as variáveis de ambiente
touch .env
- Adicionar ao arquivo .env as variáveis
- AWS_ACCESS_KEY_ID=
- AWS_SECRET_ACCESS_KEY=
- AWS_REGION=
- ENABLE_LOG_ERROR=true
- Executar o microservice
node scripts/run-mode-debug.js
- Executar testes de integração. Em minha opinião, este tipo de testes agregam mais valor aos microservices.
npm run test
Para integração contínua rodando lint, testes e deploy estou usando o serviço Travis. (https://travis-ci.org)
Um dos melhores editores para node.js é o VSCODE (https://code.visualstudio.com/) Após a instalação, é possível debugar o projeto. Basta abrir o projeto na IDE e pressionar F5