Este documento apresenta uma palestra sobre microsserviços. Ele discute as motivações para a adoção de microsserviços, como problemas com sistemas tradicionais monolíticos e a necessidade de modernização. Também descreve a arquitetura de microsserviços, seus benefícios como escalabilidade e resiliência, e desafios como a complexidade da programação distribuída. Por fim, lista referências sobre o tema.
Computação em Nuvem, Serviços Cognitivos e Mercado de Trabalho
Panorâmica sobre Microsserviços
1. 08 NOV ‘18
Panorâmica sobre Microsserviços
1 Meetup - Digital Architecture
Características, arquiteturas e tendências.
2. Adriano Gomes Batista dos Santos
2
Arquiteto do time de Digital Architecture da everis:
Profissional de TI desde 2001, participou de projetos utilizando arquiteturas e
tecnologias: Microservices, Big Data, Continuous integration, Continuous Delivery,
SOA e Java.
Bacharel em Ciência da Computação (PUC-SP), Especialista em Arquitetura de
Software (UNICAMP), Orientação a Objetos (UNICAMP), MBA (USP) e técnico em
Processamento de Dados (Flamingo).
adriano.batista.santos@everis.com
adriano.arquiteto.ti@gmail.com
https://www.linkedin.com/in/adrianoarquitetoti/
#everiskids2018
4. Panorâmica sobre Microsserviços
4
"Em vez de um moedor de bits saqueando e violentando estruturas de dados
indefesas, temos um universo de objetos bem comportados que educadamente
solicitam uns aos outros a realização de seus desejos",
Ingals (Smalltalk). Citação de 1972.
5. Problemas comuns em sistemas tradicionais
o Deploy
o Escalabilidade limitada
o Manutenção e evolução
o Confiabilidade
o Indisponibilidade
o Tecnologia obsoleta
o Fortemente acoplado
5
Você também vive isso?
Fonte: microservices.io
Monolitico
Motivação
Aplicação monolítica é sempre construída como uma unidade única e autônoma.
6. • Pessoas no mundo
• Usuários de internet no mundo
• Usuários mobile no mundo
• Usuários mobile em redes sociais
7.5bi
48k
4bi
6
Indicadores de uso de tecnologias
Fonte: https://wearesocial.com/blog/2018/01/global-digital-report-2018
35dias
24horas
38anos
13anos
4anos
3anos
2anos
1ano
75anos
Tempo para alcançar 50 milhões de usuários no mundo.
4.0bi
5.1bi
3.0bi
Motivação
Necessidade de modernização para ter Time to Market e escalabilidade elástica.
Como será nos próximos anos?
Fonte: everis Baking
Quantidade de usuários no mundo.
7. Microsserviços
É um estilo de arquitetura de software onde uma aplicação é construída como um conjunto de
pequenos serviços de negócios independentes. São mantidos, implantados e executados
individualmente.
• Alta coesão
• Autonomia
• Resiliência
• Observável
• Automatização
• Elasticidade
7
Arquitetura
9. 9
Evolução
Monolítica Microsserviços
Arquitetura
o Alto custo $
o Escalabilidade limitada
o Aumento dos recursos de infra da máquina
o Equipes separadas: negócio, dev, operação
o Melhor custo $
o Escalabilidade automática
o Adição de máquinas ao cluster
o Equipe multidisciplinar: negócio, dev, operação
Fonte: desenhos adaptados
de www.martinfowler.com
14. 14
Arquitetura de Referência
Canais e Backoffice
API Management
Service Discovery
Microservice
Message Channels
DevOps
Load Balancer
Chatbot
Smartphone
Desktop
URA
Governance & Security
SPAMobile Tradicional
API Gateway
Discovery Balancer
SOABroker
Framework
Persistence
NoSQL
ACCESS CONTROL
Container e PaaS
AUTOMATION
CONTINUOUS DELIVERY
CONTINUOUS
INTEGRATION
.NETCobol
Service BUS
Hystrix Circuit Breaker Ribbon Client Load Balancer
Identity Management
Identify
MBS
Top Secret
US
Arquitetura
Cliente everis
15. 15
Aumento do time to market
Escalabilidade elástica: independente por
serviço.
Resiliência
Serviços com monitoramento ponta a ponta
Sistemas com tecnologias distintas
segmentadas por serviços autônomos
Evolução do sistema é progressivo
Atualização e retenção de profissionais
Desafios e investimentos Ganhos
Contratação de profissionais experientes
Capacitação de profissionais
Governança
Processos
Coexistência entre aplicações
Complexidade da programação distribuída
Poucos cases avançados no mercado
Aquisição de novas infraestruturas e ferramentas
Mudança cultural
DevSecOps
Investimentos, desafios e ganhos
16. Referências
16
Arquitetura e Padrões
• Martin Fowler
• Reactive manifest
• Twelve Factors
• Design Patterns
Modelagem
Devops
Teste
Cucumber
Stack e ferramentas
• Net Flix OSS
• Nginx
Frameworks
• Net Flix OSS
• Spring Boot
• Project Reactor
• Lightbend