o impacto da arquitetura de micro serviços nas soluções de software
TRANSCRIPT
O IMPACTO DA ARQUITETURA DE MICRO SERVIÇOS NAS SOLUÇÕES DE SOFTWARE
Emmanuel Neri
EMMANUEL NERI
‣ Mestre em Desenvolvimento de Tecnologia
‣ Desenvolvedor desde 2010
‣ Atualmente desenvolvedor back-end na Navita
EVOLUÇÃO
LINHA DO TEMPO
2011
2014
2015
20162012
2013 2017
- Reatividade
- Governança
- Resiliência
MICRO SERVIÇOS
“Microservices are small, autonomous services that work together.”
Sam Newman
“A small application that can be deployed independently, scaled independently, and tested independently and that has a single responsibility.”
Johannes Thönes
CARACTERÍSTICAS
‣ Componentização via serviços
‣ Serviços pequenos
‣ Único propósito
‣ Autônomos
‣ Escalabilidade horizontal e vertical
‣ Liberdade de tecnologia
MICRO SERVIÇOS
SOA VS MICRO SERVIÇOS
‣ Serviços reutilizáveis
‣ Serviços possuem baixo acoplamento
‣ Serviços autônomos
‣ Etc…
“SOA é algo maior, utilizado para integração de monolitos”
Martin Fowler
SOA VS MICRO SERVIÇOS
DESAFIOS
COMUNICAÇÃO
‣ Síncrona
‣ Assíncrona
BASE DE DADOS
‣ Transação
‣ Integridade
‣ Dados distribuídos
INFRAESTRUTURA
ESFORÇO
BOAS PRÁTICAS
Boas práticas
BOAS PRÁTICAS
‣ Acoplamento
BOAS PRÁTICAS
‣ Bounded context (DDD)
BOAS PRÁTICAS
‣ Ponto único de falha
BOAS PRÁTICAS
‣ Downtime
IMPACTO
Qual o impacto de adotar micro serviços?
DESENVOLVIMENTO
‣ Desenvolvimento voltados a APIs
‣ Complexidade
‣ Segurança
INFRAESTRUTURA
‣ DevOps
‣ Integração continua
‣ Gerenciamento dos serviços
NEGÓCIO
‣ Benefícios de negócio
‣ Agilidade
‣ Composability
‣ Compreensibilidade
‣ Deploy Independente
‣ Alinhamento organizacional
‣ Poliglotismo
IMPACTO
Exemplo
NEGÓCIO
CLIENTE 1
CLIENTE 2
CLIENTE 3
NEGÓCIO
NEGÓCIO
CLIENTE 1 CLIENTE 2
Por onde começar?
MONOLITH FIRST
STRANGLER APPLICATION
DEPENDENCY INVERSION
CASE AMAZON
Todos devemos adotar micro serviços?
COMPLEXIDADE
MICRO APLICAÇÕES
APRENDIZADO
‣ Netflix OSS (Open Source Software Center)
‣ martinfowler.com/articles/microservices.html
‣ infoq.com/br
TENDÊNCIA
‣ Tecnologias
‣ Provedores
CASE NETFLIX
+ 90 milhões de usuários
OUTROS CASES
CONCLUSÃO
‣ Micro serviços é uma realidade
‣ Micro serviços permite flexibilidade e escalabilidade
‣ Micro serviços são complexo
‣ Não são todos projetos que precisam de micro serviços
‣ Como tudo de arquitetura, é um trade off
A DECISÃO DE MICRO SERVIÇOS VAI ALÉM DA EQUIPE TÉCNICA
ESSÊNCIA DE EVOLUÇÃO DE SOFTWARE
RESUMO