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. Graduado Ciência da Computação Desenvolvedor Web Presidente do PHP MA

    CTO - Heptum CTO - Impacto Maker https://atmosmaciel.github.io Atmos Maciel
  2. 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.
  3. 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.
  4. 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
  5. 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
  6. 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.