Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Arquitetura em Microservices - Você já deveria estar pensando nesta jornada

Arquitetura em Microservices - Você já deveria estar pensando nesta jornada

Palestra apresentada no PHPub edição #55. Nesta palestra nós vamos conversar sobre a arquitetura de microserviços, quais os motivos para utilizá-la ou não e também a jornada que é sua implantação.

Atmos Maciel

March 14, 2018
Tweet

More Decks by Atmos Maciel

Other Decks in Technology

Transcript

  1. Arquitetura em Microservices Você já deveria estar pensando nesta jornada.

  2. Stephen Hawking “Ele virou universo” 14/03/2018

  3. Graduado Ciência da Computação Desenvolvedor Web Presidente do PHP MA

    CTO - Heptum CTO - Impacto Maker https://atmosmaciel.github.io Atmos Maciel
  4. Agradecimentos @rochacbruno @yanaga @susanthesquark

  5. "Now, every company is a software company" - Forbes

  6. Motivação

  7. micro serviços

  8. SOA SAAS CAAS PAAS serviços

  9. A tecnologia é servidora

  10. Software é feito por pessoas para pessoas.

  11. Sistemas Monolíticos Macro Serviços Quando sua aplicação realmente faz sucesso,

    você, muita vezes, precisa de mais desenvolvedores, têm mais clientes e requests para atender, precisa aumentar a disponibilidade, distribuir a aplicação globalmente com tempo de resposta recorde e baixa latência.
  12. None
  13. Microservices O que são? Onde vivem? Do que se alimentam?

    Vários, pequenos(minimos) sistemas, desacoplados que conversam entre si de forma para entregar valor. Maciel, Atmos.
  14. O termo "Arquitetura de Microsserviços (Microservice Architecture)" surgiu nos últimos

    anos para descrever uma maneira específica de desenvolver software como suítes de serviços com deploy independente. Embora não exista uma definição precisa desse estilo de arquitetura, há certas características comuns em relação à organização, à capacidade de negócios, ao deploy automatizado, à inteligência nos terminais e ao controle descentralizado de linguagens e de dados. 2014, Martin Fowler
  15. Microservices: a definition of this new architectural term https://martinfowler.com/articles/microservices.html James

    Lewis
  16. Netflix

  17. CAUTION! • NOT HATER MONOLITHIC APPs • CONTEXTO Aplicação em

    Nuvem, como serviço e monolítica.
  18. None
  19. None
  20. Vantagens / Desvantagens 1. Controle de versão 2. Teste automatizado

    3. Integração contínua 4. Reusabilidade de código 5. Única base de dados 6. Segue os padrões da linguagem 7. SOLID 8. DDD 9. * Fácil gerenciamento para o Devs do projeto. 1. SPOF 2. Base de código extensa 3. Código complexo 4. Alta dependência 5. Problemas com Deploy 6. Dificuldade com refactor 7. Conflitos de versionamento 8. Altera um Ponto do sistema para fazer deploy em toda aplicação. 9. Escalabilidade se torna insustentável. 10. Dificuldade de decisão 11. Time desmotivado
  21. None
  22. None
  23. None
  24. None
  25. None
  26. None
  27. None
  28. Vantagens / Desvantagens 1. Microservices desconstroem conceitos que aprendemos 2.

    Minimiza SPOF 3. Base de código menor 4. * Múltiplas tecnologias 5. São reutilizáveis 6. Baixo acoplamento 7. Micro serviços ABSTRAEM A LÓGICA 8. Capazes de se compor 9. São Autônomos 1. Alta complexidade de arquitetura 2. Complexidade de gerenciamento 3. * Repetição de código / Duplicidade de código 4. Multiplos bancos de dados 5. Repetição de dados 6. Desenvolvimento Orientado ao Pessimismo.
  29. None
  30. Estou convencido? Por onde eu começo minha jornada?

  31. None
  32. Onde eu implanto meus microservices?

  33. PAAS - Platform as a service CAAS - Container as

    a service
  34. Strangler Application

  35. DDD Bounded Contexts

  36. None
  37. Disponibilidade Design for failure

  38. https://github.com/Netflix/hystrix Circuit Breaker Bulkhead Try Catch

  39. Smart Routing Zuul https://github.com/Netflix/zuul

  40. Síncrono ou assíncrono?

  41. Techs Micro Frameworks: Symfony 4, Silex, Slim, Expressive, Flask, Nameko.

    Cloud Docker Ansible Terra Form
  42. Techs PHP Assíncrono http://php.net/manual/en/book.pthr eads.php https://reactphp.org/ http://gearman.org

  43. E as consultas/relatórios?

  44. http://teiid.jboss.org

  45. Do monolito ao microservico É uma jornada...

  46. Onde eu continuo? Netflix Red Hat Google IBM

  47. Obrigado!

  48. Questions?