Descritivo
- Definição de estilo arquitetural baseado em computação distribuída.
- Os desafios da escalabilidade e alocação de recursos em regras de negócios.
- A cultura de DevOps com automatização por infra-estrutura como código.
Ryan PadilhaSolution Architect | Software Engineer
Microservices - Arquitetura, Ecossistema e Desafios
1. Copyright 2015 Google Inc
Ryan Padilha (ryan.padilha@gmail.com)
Arquitetura, Ecossistema e Desafios
Apresentação técnica arquitetura orientada a serviços
TechTalk
Microservices
2. Copyright 2015 Google Inc
Simply in love with technology.
JavaEE expert, SOA specialist and technical writer.
Experience of 13+ years in solution design and development software.
Working on Software Architecture, DevOps Culture and Cloud Computing.
http://ryanpadilha.com.br
http://br.linkedin.com/in/ryanpadilha
Ryan Padilha
3. Copyright 2015 Google Inc
Agenda
Introdução
Estilo Arquitetural
1
2
Ecossistema e Desafios3
• Descritivo
• Definição de estilo arquitetural baseado em computação distribuída.
• Os desafios da escalabilidade e alocação de recursos em regras de negócios.
• A cultura de DevOps com automatização por infra-estrutura como código.
Linhas de Pesquisa4
4. Copyright 2015 Google Inc
Introdução
• Webservices - TCC na Graduação de SI, ano de 2008.
• Arquitetura de Sistemas em XML - Proposta de IC na Graduação, ano de 2008.
6. Copyright 2015 Google Inc
Introdução
• Princípios de serviços em SOA:
1. São reutilizáveis
2. Compartilham um contrato formal
3. Possuem um baixo acoplamento
4. Abstraem a lógica
5. São capazes de se compor
6. São autônomos
7. Evitam alocação de recursos por longo tempo
8. São capazes de serem descobertos
• “APIs are the missing link for SOA success” - WSO2
7. Copyright 2015 Google Inc
Estilo Arquitetural
• Afinal o que define o termo Microservices ‘14 ?
• É um estilo arquitetural
• Conjunto de pequenos serviços (componentes)
• Execução em processo individual
• Mecanismo leve de comunicação através de API de recursos HTTP
• Desenvolvimento baseado em capacidades de negócios
• Deploy independente automatizado
• Gerenciamento centralizado mínimo
• Projetado para ser resiliente e design evolutivo
• Tecnologias heterogêneas e armazenamento poliglota
• https://martinfowler.com/articles/microservices.html
9. Copyright 2015 Google Inc
Estilo Arquitetural
• Pré-requisitos
• Rápido provisionamento: ambientes em cloud computing
• Monitoramento básico: detecção rápida de problemas graves
• Deployment instantâneo: forte pipeline de implantação com profile
• Implante o primeiro, mantenha-o saudável e aprenda com ele!
• DevOps - Mudança organizacional, a operação deve fazer parte do código!
10. Copyright 2015 Google Inc
Estilo Arquitetural
• Pros
• Estrutura modular com fronteiras bem definidas
• Serviços autônomos menores com deploys contínuos
• Ecossistema de tecnologias heterogêneas
• Cons
• Concepção de sistemas distribuídos são mais complexos
• Gerenciamento de consistência difícil
• Redistribuição regular de serviços em ambientes distribuídos
12. Copyright 2015 Google Inc
Estilo Arquitetural
• Bounded context modules
• Database per Service
• API Gateway
• Circuit break
• Access Token
• Health check API
• Application Metrics
• Message Broker (RPI)
• http://microservices.io/patterns/microservices.html
13. Copyright 2015 Google Inc
Ecossistema e Desafios
• Comece com o monolítico e defina bem as fronteiras dos módulos
• Monitoramento em tempo real, verificando elementos da arquitetura
• Latência em chamada a API remotas
• Perfeita combinação entre mecanismo síncrono e assíncrono
• Entrega contínua com provisionamento e implantação automatizado
• Modelo de maturidade em equipes de produtos
• Times orientados pelo conceito “you build, you run it”
• Aprenda a manter o ecossistema no ar e acelere
• Consequências graves para a operação no ecossistema
• O mecanismo de autenticação e autorização à recursos levado a sério
14. Copyright 2015 Google Inc
Ecossistema e Desafios
• https://martinfowler.com/bliki/MonolithFirst.html - Strangler Pattern
17. Copyright 2015 Google Inc
Linhas de Pesquisa - Futuro :D
Referência: https://xebialabs.com/periodic-table-of-devops-tools/
18. Copyright 2015 Google Inc
Meu muito obrigado!
“Quando você descobre algo,
você se sente como se estivesse
apaixonado”. Wozniak
19. Copyright 2015 Google Inc
Referências
• https://martinfowler.com/articles/microservices.html
• http://microservices.io/index.html
• Building Microservices, Sam Newman
• Microservices for Java Developers, Christian Posta.
• Migrating to Microservices Databases, Edson Yanaga
• Reactive Microservices Architecture, Jonas Bonér
• Microservices from Theory to Practice, IBM Redbooks
• InfoQ eMag: Microservices, Issue 16
• Architectural Styles and the Design of Network-based Software
Architectures, Roy Fielding