Microsserviços e Node.js
Daniel Carli e Heucles
O QUE SÃO MICROSSERVIÇOS?
POR QUE MICROSSERVIÇOS?
PREOCUPAÇÕES
RESILIÊNCIA
● TOLERANTE A FALHAS
○ FERRAMENTAL QUE RECUPERA A APLICAÇÃO DE EXCEÇÕES NÃO TRATADAS
○ FERRAMENTAL QUE SUPORTA CLUSTERIZAÇÃO EM MÚLTIPLOS PROCESSOS
○ PM2, FOREVER, NODEMON, MONIT
● PASSÍVEL DE DEGRADAÇÃO
○ CAPACIDADE DE CONTROLAR THROUGHPUT DA APLICAÇÃO
● VELOCIDADE NA INICIALIZAÇÃO
● BATTLE TESTED
○ NETFLIX, WALMART, PAYPAL, LINKEDIN, UBER, ITAÚ
RESILIÊNCIA + NODE
PERFORMANCE
● ASSÍNCRONO POR DEFINIÇÃO
● FACILIDADE EM ESCALAR
○ DOCKER SWARMING, LOAD BALANCING
● SERVERLESS ARCHITECTURE
○ AWS LAMBDA, AZURE FUNCTIONS, GOOGLE CLOUD FUNCTIONS
PERFORMANCE + NODE
RASTREABILIDADE
● LOGGING/AUDITING
○ BUNYAN, WINSTON
● MONITORAMENTO
○ KEYMETRICS/PM2, STATSD, KIBANA/GRAFANA/DATADOG, NEW RELIC
RASTREABILIDADE + NODE
CARACTERÍSTICAS DE MICROSSERVIÇOS
ESPECIALIZAÇÃO
● PEQUENO E ESPECIALIZADO
● GERENCIAMENTO DE DEPENDÊNCIAS COM ECOSSISTEMA RICO
○ NPM
● FRAMEWORKS LEVES
○ EXPRESS, HAPI, RESTIFY…
● COESÃO
ESPECIALIZAÇÃO + NODE
COMUNICAÇÃO
● COMUNICAÇÃO SIMPLIFICADA E PADRONIZADA
○ HTTP, SOCKET, AMQP, MQTT, STOMP, COAP
● SERVICE TO SERVICE
COMUNICAÇÃO + NODE
AUTOMAÇÃO
● DOCKER FRIENDLY
● CLOUD SERVICES READY
○ AWS-SDK, AZURE-SDK…
● TASK RUNNERS
○ NPM, GULP, GRUNT
● CI/CD
○ TRAVIS, CIRCLE CI, JENKINS…
AUTOMAÇÃO + NODE
QUESTÕES GERAIS
● JAVASCRIPT
○ Atwood's Law
● FÁCIL DE APRENDER
● FÁCIL DE TESTAR
○ MOCHA, CHAI, SUPERTEST, SINON, REWIRE
● FÁCIL DE PUBLICAR (DEPLOY)
● ECOSSISTEMA RICO
○ PACOTES, EMPRESAS, PROFISSIONAIS, CURSOS, CONSULTORIAS
POR QUE NODE ?
Obrigado!
Estamos [email protected]
www.concretesolutions.com.brblog.concretesolutions.com.br
Rio de Janeiro – Rua São José, 90 – cj. 2121Centro – (21) 2240-2030
São Paulo - Rua Sansão Alves dos Santos, 433 4º andar - Brooklin - (11) 4119-0449