Introdução a Microservices com Node.JS

637 visualizações

Publicada em

Introdução a arquitetura Microservices, como evoluímos das arquiteturas monolíticas até padrões de arquitetura Microservice, onde pequenos serviços distribuídos na rede compõem uma grande peça. Serão abordadas técnicas de distribuição de dados e chamadas remotas, gerenciamento dos serviços distribuídos e como minimizar as dores de cabeça. Toda arquitetura e prática será realizada em cima da plataforma NodeJS.

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
637
No SlideShare
0
A partir de incorporações
0
Número de incorporações
9
Ações
Compartilhamentos
0
Downloads
9
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Introdução a Microservices com Node.JS

  1. 1. Introdução +
  2. 2. # whoami Eduardo Nunes Pereira Engenheiro de software com 11 anos de experiência em desenvolvimento web. Especializado em construir softwares utilizando PHP, Javascript (Node.JS) e Amazon Web Services. github.com/eduardonunesp br.linkedin.com/in/eduardonunesp
  3. 3. Modelo tradicional Banco de dados Negócios Apresentação http://martinfowler.com/articles/microservices.html
  4. 4. • Integração continua mais difícil • Atualizar um ou mais componentes pode significar o “redeploy” da aplicação inteira. • Escalar componentes individuais é quase impossível. • Impacto no desenvolvimento • Componentes fortemente unidos requerem uma maior coordenação entre os desenvolvedores. • Base de código (git/svn/…) enormes, requer maior esforço para manter e extender o repositório. • Vantajoso para um projeto rápido, mas a longo prazo irá manter o projeto “amarrado" as tecnologias envolvidas.
  5. 5. Aplicações modernas Mobile Web Apps IoT
  6. 6. Serviços • Aplicações modernas consomem serviços • Aplicações modernas oferecem serviços • Serviços de acordo e para qualquer device.
  7. 7. Microservices : Nutshell • Comunicação entre processos na rede • Funcionalidades entregues via requisições HTTP, TCP, PubSub, Queue • Utilização de protocolos leves • "Do One Thing And Do It Well” - UNIX Philosophy
  8. 8. Modelo moderno Banco de Dados Negócios Apresentação http://martinfowler.com/articles/microservices.html
  9. 9. Target : Particionamento • Serviços distribuídos de forma granular • Micro aplicativos independentes • Evolução de componentes individuais • Deploy em pequenas partes, e com test A / B • Escalabilidade de forma simples • Melhor distribuição entre os times de dev.
  10. 10. SOA ? • Uma evolução do SOA • Ser leve, aspecto principal simplicidade • Fazer uma coisa e fazer bem (lembra da filosofia Unix) • Kickstart, menos bla-bla-bla e mais code-code-code • REST, sem milhões de parâmetros e nomes do tipo: ”ws-alguma-coisa". • Padrão de comunicação mais flexível HTTP / QUEUE / PUBSUB / TCP.
  11. 11. Desvantagens • Deploy de uma arquitetura monolítica é bem mais simples • Requer uma maior automação e utilização de ferramentas de análise • Complexidade da operação, monitoramento, gerenciamento de um número enorme de diferentes processos • Muitos padrões de comunicação podem dificultar um diagnóstico. • Rede: Falhas, Timeouts e Latência (mais selvagem ainda na internet).
  12. 12. Fatores importantes • Codebase (GIT) • Dependency Management • Build, Release and Run • Port Binding • Disposability • Logs
  13. 13. http://12factor.net/
  14. 14. • Sistema de empacotamento e distribuição super simples NPM • Kickstart: npm init, npm install, “code-code-code" • Metodologia leve e focada • I/O asynchronous • Excelente performance (thanks V8) • MEAN Stack (Mongo, ExpressJS, AngularJS, Node.JS)
  15. 15. • Pattern matching: Maneira flexível de controlar as regras de negócio • Transport Independence: Como as mensagens são transportadas não é algo que deve focar. • Plugins: Vários plugins já desenvolvidos • Seneca: Ferramentas para organizar as regras de negócio do seu App em forma de Microservices.
  16. 16. –Torvalds, Linus (2000-08-25). “Talk is cheap. Show me the code.”
  17. 17. Referências • Martin Fowler / James Lewis • http://martinfowler.com/articles/microservices.html • http://nginx.com/blog/microservices-at-netflix- architectural-best-practices/ • http://www.slideshare.net/adrianco (Cockcroft) • http://microservices.io/patterns/microservices.html • http://theartofscalability.com/
  18. 18. Recomendações
  19. 19. Obrigado

×