SlideShare una empresa de Scribd logo
1 de 42
Microserviços - Desafios para
lidar com a qualidade
André Abe Vicente
Especialista de Qualidade –
Encontro Regional de Engenharia de Software – ERES 2018
/Who is André?
• Eng. de Requisitos [Unioeste – Cascavel]
• Testes e Agile [Msc. ICMC – USP]
• QA @ PagSeguro UOL [2012 – Atual]
Sumário
1. Microserviços - Novos desafios
2. Testes em Microserviços
3. Delivery Contínuo e Testes em Produção
4. Monitorações, Logs e Troubleshoot
Monolito vs Microserviços
https://www.redhat.com/en/topics/microservices/what-are-microservices
Monolito vs Microserviços
http://knowyourmeme.com/memes/blue-ball-machine
Migração e Novos Serviços
Benefícios Microserviços
• Heterogeneidade de Tecnologias
• Resiliência e Escalabilidade
• Facilidade de Deploy
• Alinhamento Organizacional (Times)
• Componibilidade / Reuso
• Facilidade para Substituir / Migrar
Nossa Jornada até agora...
2007 2012 2014-17 2018
http://bit.ly/ps-mesos
http://bit.ly/ps-constelacao
• Agile
• Melhoria Ambiente
• UX, Mobile, Cloud ...
Perfomance do time, confiança na
entrega, manutenção e evolução
Migração e Novos Serviços
• Convivência com o Monolito
• Evolução do Ambiente e Monitoramento
• Novas Tecnologias
• Banco de Dados
- Integrações com o Monolito (Legado)
- Kafka (tráfego e armazenamento de mensagens
de domínio)
• Excelência QA (Negócios + Técnico)
Desafios
https://www.instagram.com/augmentedrealityimages
2. Testes em Microserviços
Pirâmide de Teste?
• Testes de Contrato
• End-to-End
• Exploratórios
• Testes em Produção
Sam Newman - https://www.oreilly.com/learning/building-microservices-
testing
Testes End-to-End
Atendimento
E-commerce
Programa de
Pontuação
Gateway
Pagamento
(Sam Newman, 2015) - Building Microservices
End-to-End (Containers)A
Infra
- Serviços, Filas,
Banco, Massa de
Dados...
- Infra as code
(Docker, Puppet,
Jenkins ...)
Testes End-to-End
End-to-End (Containers) Mock Services
Recursos Confiável Estabilidade
A B
Jornadas
Pequeno número de
testes (core),
restante coberto por
serviços testados de
forma isolada
Recursos Confiável Estabilidade
*
* http://bit.ly/microservice-testing-mf
Mocks / Stubs
• Desenvolvimento e Testes UI
• Wiremock - http://wiremock.org
• Versionamento dos stubs (GIT)
• Expressão regular
• Simular respostas incorretas
• Exemplos: DELAY, CONNECTION_RESET_BY_PEER
• Record/Play e Proxy para Serviço Real
• Outras: ...
Testes de Contrato
• Praticamente impossível saber todas as formas que o
consumidores irão utilizar os nossos serviços.
• "Quando fazemos o deploy de um novo serviço em produção,
nossas mudanças não podem quebrar os consumidores”
2006 - Consumer Driven Contract
https://martinfowler.com/articles/consumerDrivenContracts.html
2015 - Technology Radar ThoughtWorks
Deploys independentes (microserviços)
Testes de Contrato
http://bit.ly/microservice-testing-mf
Documentação
https://swagger.io
https://specto.io/blog/2016/11/16/spring-cloud-contract
Consumidor API
(Request/Resp)
1
Spring Cloud Contract
Contrato Consumidor1
https://specto.io/blog/2016/11/16/spring-cloud-contract
Consumidor API
(Request/Resp)
Produtor API
3
2
Spring Cloud Contract
1
Testes de Contrato - Produtor
2
https://specto.io/blog/2016/11/16/spring-cloud-contract
Consumidor API
(Request/Resp)
Produtor API
Pipeline
Consumidor
3
1
4
2
Spring Cloud Contract
Testes de Contrato - Consumidor
4
Spring Cloud Contract
https://cloud.spring.io/spring-cloud-contract
https://specto.io/blog/2016/11/16/spring-cloud-contract
Objetivos
• Contratos entre aplicações não
são para simular todas as regras
de negócio
Ex.: Verificar Fraude (100 razões >
2 contratos)
• Contratos visíveis dos dois lados
(Produtor e Consumidor)
• Stubs utilizados do lado do cliente
representam o comportamento do
Produtor
Testes de Contrato
https://pact.io
3. Delivery Contínuo e Testes em Produção
Pipeline de Entregas (e os testes exploratórios?)
• Feedback automático (do commit à produção)
• Pipeline as code e criação sob demanda de infra-estrutura
• Pre-Commit: Pull Request (código e migrations), Testes Manuais /
Automatizados, Segurança, Review (UI e PO)
Testes em Produção (Chaveamentos)
• Feature Toggles: Liga/Desliga
• Testes A/B: Experimentos UI e Backend
• Controle de Usuários: Beta Testing (%) e Dog Fooding (Internos)
• Delivery Contínuo
• Não estocar código / small batchs
• Código incompleto ou não testado em produção (Release Toggle)
• Encontrar erros em produção com menos risco
Feature Toggle - Motivações e Usos
• Liga/Desliga de uma funcionalidade
• Tipos: Release Toggles , Experiment Toggles, OPs Toogles,
Permission Toogles
• Testes com Toggles
• Ligados / Desligados
• Regra dinâmica: testar usuários dentro e fora desse grupo
• Experimental: consistência entre sessões do usuário (comportamento
igual)
• Operações ou Permissões: explorar combinações para ver como a
nova configuração interage com as opções já existentes.
Testes A/B
• Criar duas ou mais variações do seu software, para apresentar
para cada usuário uma das variações em um experimento
controlado
https://www.kameleoon.com/en/ab-testing
Testes A/B
• Cuidados: Subjetividade e decisões somente baseadas em dados
(data/metric oriented)
Testes A/B e Smart Routing ...
• Java: FF4J, Tooglez
• Mobile: Firebase + Remote
Config + Analytics, mixpanel,
TestFlight, Wasabi (API)
• Smart Routing (API Gateway)
https://github.com/Netflix/zuul
• Microservices
https://istio.io
Ferramentas
Controle de Usuários (Beta Testing)
• Nova versão para um conjunto restrito de usuários
• Foco geral: aspectos funcionais da aplicação
• Time: usabilidade, acessibilidade, performance, segurança
• Oportunidade: testes de alarmes, monitorações, logs, métricas...
• Staged rollout
Dogfooding
• Dogfooding: beta testing para quem desenvolve
• Nem sempre são representativos em relação aos usuários
• Percepções de qualidade diferentes e prioridades problemas
Testes de Usabilidade + PesquisaDoogfooding Avaliações APPs
4. Monitorações, Logs e Troubleshoot
Pirâmide de Testes - DevOps Bugfilter
• Bugs podem aparecer sem ter passado
previamente pelos filtros
• Testes unitários (código-fonte)
• Testes de integração (banco, serviços
externos)
• Testes End-To-End (irão cobrir a arquitetura
como um todo)
• Produção: Alertas, Monitorações, Logs
(Katrina Clokie, 2017) - A Practical Guide to Testing in DevOps
Ambiente Produção - Ferramentas
LOGs | Negócios Notificações| IncidentesGráficos | Ambiente
Disponibilidade
Lib Monitoração
Mobile
Ambiente | Desempenho | Capacidade
Ambiente Produção - Monitoração
Como escalar?
• Muitos Desenvolvedores
• Poucos Operações
• Muitos Serviços (+ 300)
Monitor
Descrição
Severidade
Documentação
Ambiente Produção - Monitoração
• Lib de Monitoração: Monitorações de Negócio e Dependências
Execução Métodos
• Tempo de Resposta
• Taxa de Sucesso
• Idle Period
Monitor de Negócio (Personalizado)
Exemplos:
• Recebimento de Arquivos
• Pagamentos sem sincronizar por x
minutos
@Annotations
OK
CRITICAL
Ambiente Produção - Monitoração
• Lib de Monitoração: Monitorações de Negócio e Dependências
IntegraçõesFilas (Limite Msgs e Cluster)
Documentação
• Diagnóstico
• Solução
Ambiente Produção - Logs
• Informação em baixo nível para análise de problemas
• Microserviços (Logs Distribuídos)
• Cloud Sleuth +
• Referências
• https://dzone.com/articles/centralized-logging
• https://dzone.com/articles/monitoring-microservices-with-spring-cloud-sleuth
Perguntas?
https://www.linkedin.com/company/pagseguro-uol
https://about.me/andvicente
andvicente
Referências - Microserviços
• (Katrina Clokie, 2017) - A Practical Guide to Testing in DevOps
• (Sam Newman, 2015) - Building Microservices
• (Toby Clemson, 2014) - Testing Strategies in Microservice Architecture -
https://martinfowler.com/articles/microservice-testing/
Referências – Testes de Contrato
• Technology Radar – Deploys independentes (microserviços)
https://www.thoughtworks.com/radar/techniques/consumer-driven-contract-
testing
• Pact: Verifying Microservice Integrations with Contract Testing - Atlassian Summit
2016
• Spring Cloud Contract: Consumer Driven Contracts and Your Microservice
Architecture - Marcin Grzejszczak, Adib Saikali

Más contenido relacionado

La actualidad más candente

MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingSamanta Cicilia
 
TDC2018SP | Trilha Testes - Testes de Acessibilidade - Qualidade para Todos
TDC2018SP | Trilha Testes - Testes de Acessibilidade - Qualidade para TodosTDC2018SP | Trilha Testes - Testes de Acessibilidade - Qualidade para Todos
TDC2018SP | Trilha Testes - Testes de Acessibilidade - Qualidade para Todostdc-globalcode
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous deliveryMarco Valtas
 
Visual Regression Testing: mais um tipo de teste pra sua pipeline
Visual Regression Testing: mais um tipo de teste pra sua pipelineVisual Regression Testing: mais um tipo de teste pra sua pipeline
Visual Regression Testing: mais um tipo de teste pra sua pipelineSamanta Cicilia
 
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horasSamanta Cicilia
 
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de ValorSamanta Cicilia
 
[TDC - Testes] Estratégia de automação dos testes em microserviços
[TDC - Testes] Estratégia de automação dos testes em microserviços [TDC - Testes] Estratégia de automação dos testes em microserviços
[TDC - Testes] Estratégia de automação dos testes em microserviços Rodrigo Stefani Domingues
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes AutomatizadosSamanta Cicilia
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
 
Aula 2 modelo de processo de software1
Aula 2   modelo de processo de software1Aula 2   modelo de processo de software1
Aula 2 modelo de processo de software1Tiago Vizoto
 
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...Samanta Cicilia
 
Implementação de PCs, parte 1 de 4: Compatibilidade de Aplicações
Implementação de PCs, parte 1 de 4: Compatibilidade de AplicaçõesImplementação de PCs, parte 1 de 4: Compatibilidade de Aplicações
Implementação de PCs, parte 1 de 4: Compatibilidade de AplicaçõesMarcelo Matias
 
Alcançando qualidade de software através de entrega contínua
Alcançando qualidade de software através de entrega contínuaAlcançando qualidade de software através de entrega contínua
Alcançando qualidade de software através de entrega contínuaSamanta Cicilia
 
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosContinuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosSamanta Cicilia
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous DeliverySamanta Cicilia
 
Coders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile TestingCoders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile TestingSamanta Cicilia
 
Qa ops mtc 2020 - mayara fernandes
Qa ops   mtc 2020 - mayara fernandesQa ops   mtc 2020 - mayara fernandes
Qa ops mtc 2020 - mayara fernandesMayara Fernandes
 

La actualidad más candente (20)

WTM - Entrega Contínua
WTM - Entrega ContínuaWTM - Entrega Contínua
WTM - Entrega Contínua
 
MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression Testing
 
TDC2018SP | Trilha Testes - Testes de Acessibilidade - Qualidade para Todos
TDC2018SP | Trilha Testes - Testes de Acessibilidade - Qualidade para TodosTDC2018SP | Trilha Testes - Testes de Acessibilidade - Qualidade para Todos
TDC2018SP | Trilha Testes - Testes de Acessibilidade - Qualidade para Todos
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
Visual Regression Testing: mais um tipo de teste pra sua pipeline
Visual Regression Testing: mais um tipo de teste pra sua pipelineVisual Regression Testing: mais um tipo de teste pra sua pipeline
Visual Regression Testing: mais um tipo de teste pra sua pipeline
 
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
 
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
 
[TDC - Testes] Estratégia de automação dos testes em microserviços
[TDC - Testes] Estratégia de automação dos testes em microserviços [TDC - Testes] Estratégia de automação dos testes em microserviços
[TDC - Testes] Estratégia de automação dos testes em microserviços
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
Aula 2 modelo de processo de software1
Aula 2   modelo de processo de software1Aula 2   modelo de processo de software1
Aula 2 modelo de processo de software1
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
QAOps - Agile Trends 2021
QAOps - Agile Trends 2021QAOps - Agile Trends 2021
QAOps - Agile Trends 2021
 
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
 
Implementação de PCs, parte 1 de 4: Compatibilidade de Aplicações
Implementação de PCs, parte 1 de 4: Compatibilidade de AplicaçõesImplementação de PCs, parte 1 de 4: Compatibilidade de Aplicações
Implementação de PCs, parte 1 de 4: Compatibilidade de Aplicações
 
Alcançando qualidade de software através de entrega contínua
Alcançando qualidade de software através de entrega contínuaAlcançando qualidade de software através de entrega contínua
Alcançando qualidade de software através de entrega contínua
 
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosContinuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous Delivery
 
Coders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile TestingCoders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile Testing
 
Qa ops mtc 2020 - mayara fernandes
Qa ops   mtc 2020 - mayara fernandesQa ops   mtc 2020 - mayara fernandes
Qa ops mtc 2020 - mayara fernandes
 

Similar a Desafios de qualidade em microserviços

Brateste 2013: Testes Agile em Processos Agile
Brateste 2013:  Testes Agile em Processos AgileBrateste 2013:  Testes Agile em Processos Agile
Brateste 2013: Testes Agile em Processos Agileananegrello
 
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...GUTS-RS
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSFabrício Campos
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devopsDiego Pacheco
 
Teste Contínuo de Integração e Virtualização de Serviços
Teste Contínuo de Integração e Virtualização de ServiçosTeste Contínuo de Integração e Virtualização de Serviços
Teste Contínuo de Integração e Virtualização de ServiçosRationalBrasil
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasKleitor Franklint Correa Araujo
 
Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Anderson Silveira
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Renato Groff
 
TDC 2013 7 Dicas para acelerar os testes
TDC 2013  7 Dicas para acelerar os testesTDC 2013  7 Dicas para acelerar os testes
TDC 2013 7 Dicas para acelerar os testesFelipe Freire
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareNorberto Santos
 
Brateste 2103: Virtualização de Serviços para uma Nova Abordagem em testes
Brateste 2103:  Virtualização de Serviços para uma Nova Abordagem em testesBrateste 2103:  Virtualização de Serviços para uma Nova Abordagem em testes
Brateste 2103: Virtualização de Serviços para uma Nova Abordagem em testesananegrello
 
Testes de usabilidade
Testes de usabilidade Testes de usabilidade
Testes de usabilidade Laís Berlatto
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = ProdutividadeAdriano Bertucci
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsRicardo Martins ☁
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
 
Visao geraldorup 20slides
Visao geraldorup 20slidesVisao geraldorup 20slides
Visao geraldorup 20slideshoraciosila
 
Microservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosMicroservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosRyan Padilha
 

Similar a Desafios de qualidade em microserviços (20)

Brateste 2013: Testes Agile em Processos Agile
Brateste 2013:  Testes Agile em Processos AgileBrateste 2013:  Testes Agile em Processos Agile
Brateste 2013: Testes Agile em Processos Agile
 
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATS
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
 
Falando sobre DevOps no azure
Falando sobre DevOps no azureFalando sobre DevOps no azure
Falando sobre DevOps no azure
 
Teste Contínuo de Integração e Virtualização de Serviços
Teste Contínuo de Integração e Virtualização de ServiçosTeste Contínuo de Integração e Virtualização de Serviços
Teste Contínuo de Integração e Virtualização de Serviços
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégias
 
Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito
 
Webinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros ÁgeisWebinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros Ágeis
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016
 
TDC 2013 7 Dicas para acelerar os testes
TDC 2013  7 Dicas para acelerar os testesTDC 2013  7 Dicas para acelerar os testes
TDC 2013 7 Dicas para acelerar os testes
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
Brateste 2103: Virtualização de Serviços para uma Nova Abordagem em testes
Brateste 2103:  Virtualização de Serviços para uma Nova Abordagem em testesBrateste 2103:  Virtualização de Serviços para uma Nova Abordagem em testes
Brateste 2103: Virtualização de Serviços para uma Nova Abordagem em testes
 
Testes de usabilidade
Testes de usabilidade Testes de usabilidade
Testes de usabilidade
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = Produtividade
 
DevOps e App Insights
DevOps e App InsightsDevOps e App Insights
DevOps e App Insights
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deployments
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
Visao geraldorup 20slides
Visao geraldorup 20slidesVisao geraldorup 20slides
Visao geraldorup 20slides
 
Microservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosMicroservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e Desafios
 

Último

Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfWagnerCamposCEA
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxedelon1
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasSocorro Machado
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxLusGlissonGud
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 

Último (20)

Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 

Desafios de qualidade em microserviços

  • 1. Microserviços - Desafios para lidar com a qualidade André Abe Vicente Especialista de Qualidade – Encontro Regional de Engenharia de Software – ERES 2018
  • 2. /Who is André? • Eng. de Requisitos [Unioeste – Cascavel] • Testes e Agile [Msc. ICMC – USP] • QA @ PagSeguro UOL [2012 – Atual]
  • 3. Sumário 1. Microserviços - Novos desafios 2. Testes em Microserviços 3. Delivery Contínuo e Testes em Produção 4. Monitorações, Logs e Troubleshoot
  • 6. Migração e Novos Serviços Benefícios Microserviços • Heterogeneidade de Tecnologias • Resiliência e Escalabilidade • Facilidade de Deploy • Alinhamento Organizacional (Times) • Componibilidade / Reuso • Facilidade para Substituir / Migrar
  • 7. Nossa Jornada até agora... 2007 2012 2014-17 2018 http://bit.ly/ps-mesos http://bit.ly/ps-constelacao • Agile • Melhoria Ambiente • UX, Mobile, Cloud ... Perfomance do time, confiança na entrega, manutenção e evolução
  • 8. Migração e Novos Serviços • Convivência com o Monolito • Evolução do Ambiente e Monitoramento • Novas Tecnologias • Banco de Dados - Integrações com o Monolito (Legado) - Kafka (tráfego e armazenamento de mensagens de domínio) • Excelência QA (Negócios + Técnico) Desafios https://www.instagram.com/augmentedrealityimages
  • 9. 2. Testes em Microserviços
  • 10. Pirâmide de Teste? • Testes de Contrato • End-to-End • Exploratórios • Testes em Produção Sam Newman - https://www.oreilly.com/learning/building-microservices- testing
  • 11. Testes End-to-End Atendimento E-commerce Programa de Pontuação Gateway Pagamento (Sam Newman, 2015) - Building Microservices End-to-End (Containers)A
  • 12. Infra - Serviços, Filas, Banco, Massa de Dados... - Infra as code (Docker, Puppet, Jenkins ...) Testes End-to-End End-to-End (Containers) Mock Services Recursos Confiável Estabilidade A B Jornadas Pequeno número de testes (core), restante coberto por serviços testados de forma isolada Recursos Confiável Estabilidade * * http://bit.ly/microservice-testing-mf
  • 13. Mocks / Stubs • Desenvolvimento e Testes UI • Wiremock - http://wiremock.org • Versionamento dos stubs (GIT) • Expressão regular • Simular respostas incorretas • Exemplos: DELAY, CONNECTION_RESET_BY_PEER • Record/Play e Proxy para Serviço Real • Outras: ...
  • 14. Testes de Contrato • Praticamente impossível saber todas as formas que o consumidores irão utilizar os nossos serviços. • "Quando fazemos o deploy de um novo serviço em produção, nossas mudanças não podem quebrar os consumidores” 2006 - Consumer Driven Contract https://martinfowler.com/articles/consumerDrivenContracts.html 2015 - Technology Radar ThoughtWorks Deploys independentes (microserviços)
  • 19. Testes de Contrato - Produtor 2
  • 21. Testes de Contrato - Consumidor 4
  • 22. Spring Cloud Contract https://cloud.spring.io/spring-cloud-contract https://specto.io/blog/2016/11/16/spring-cloud-contract Objetivos • Contratos entre aplicações não são para simular todas as regras de negócio Ex.: Verificar Fraude (100 razões > 2 contratos) • Contratos visíveis dos dois lados (Produtor e Consumidor) • Stubs utilizados do lado do cliente representam o comportamento do Produtor
  • 24. 3. Delivery Contínuo e Testes em Produção
  • 25. Pipeline de Entregas (e os testes exploratórios?) • Feedback automático (do commit à produção) • Pipeline as code e criação sob demanda de infra-estrutura • Pre-Commit: Pull Request (código e migrations), Testes Manuais / Automatizados, Segurança, Review (UI e PO)
  • 26. Testes em Produção (Chaveamentos) • Feature Toggles: Liga/Desliga • Testes A/B: Experimentos UI e Backend • Controle de Usuários: Beta Testing (%) e Dog Fooding (Internos) • Delivery Contínuo • Não estocar código / small batchs • Código incompleto ou não testado em produção (Release Toggle) • Encontrar erros em produção com menos risco
  • 27. Feature Toggle - Motivações e Usos • Liga/Desliga de uma funcionalidade • Tipos: Release Toggles , Experiment Toggles, OPs Toogles, Permission Toogles • Testes com Toggles • Ligados / Desligados • Regra dinâmica: testar usuários dentro e fora desse grupo • Experimental: consistência entre sessões do usuário (comportamento igual) • Operações ou Permissões: explorar combinações para ver como a nova configuração interage com as opções já existentes.
  • 28. Testes A/B • Criar duas ou mais variações do seu software, para apresentar para cada usuário uma das variações em um experimento controlado https://www.kameleoon.com/en/ab-testing
  • 29. Testes A/B • Cuidados: Subjetividade e decisões somente baseadas em dados (data/metric oriented)
  • 30. Testes A/B e Smart Routing ... • Java: FF4J, Tooglez • Mobile: Firebase + Remote Config + Analytics, mixpanel, TestFlight, Wasabi (API) • Smart Routing (API Gateway) https://github.com/Netflix/zuul • Microservices https://istio.io Ferramentas
  • 31. Controle de Usuários (Beta Testing) • Nova versão para um conjunto restrito de usuários • Foco geral: aspectos funcionais da aplicação • Time: usabilidade, acessibilidade, performance, segurança • Oportunidade: testes de alarmes, monitorações, logs, métricas... • Staged rollout
  • 32. Dogfooding • Dogfooding: beta testing para quem desenvolve • Nem sempre são representativos em relação aos usuários • Percepções de qualidade diferentes e prioridades problemas Testes de Usabilidade + PesquisaDoogfooding Avaliações APPs
  • 33. 4. Monitorações, Logs e Troubleshoot
  • 34. Pirâmide de Testes - DevOps Bugfilter • Bugs podem aparecer sem ter passado previamente pelos filtros • Testes unitários (código-fonte) • Testes de integração (banco, serviços externos) • Testes End-To-End (irão cobrir a arquitetura como um todo) • Produção: Alertas, Monitorações, Logs (Katrina Clokie, 2017) - A Practical Guide to Testing in DevOps
  • 35. Ambiente Produção - Ferramentas LOGs | Negócios Notificações| IncidentesGráficos | Ambiente Disponibilidade Lib Monitoração Mobile Ambiente | Desempenho | Capacidade
  • 36. Ambiente Produção - Monitoração Como escalar? • Muitos Desenvolvedores • Poucos Operações • Muitos Serviços (+ 300)
  • 37. Monitor Descrição Severidade Documentação Ambiente Produção - Monitoração • Lib de Monitoração: Monitorações de Negócio e Dependências Execução Métodos • Tempo de Resposta • Taxa de Sucesso • Idle Period Monitor de Negócio (Personalizado) Exemplos: • Recebimento de Arquivos • Pagamentos sem sincronizar por x minutos @Annotations OK CRITICAL
  • 38. Ambiente Produção - Monitoração • Lib de Monitoração: Monitorações de Negócio e Dependências IntegraçõesFilas (Limite Msgs e Cluster) Documentação • Diagnóstico • Solução
  • 39. Ambiente Produção - Logs • Informação em baixo nível para análise de problemas • Microserviços (Logs Distribuídos) • Cloud Sleuth + • Referências • https://dzone.com/articles/centralized-logging • https://dzone.com/articles/monitoring-microservices-with-spring-cloud-sleuth
  • 41. Referências - Microserviços • (Katrina Clokie, 2017) - A Practical Guide to Testing in DevOps • (Sam Newman, 2015) - Building Microservices • (Toby Clemson, 2014) - Testing Strategies in Microservice Architecture - https://martinfowler.com/articles/microservice-testing/
  • 42. Referências – Testes de Contrato • Technology Radar – Deploys independentes (microserviços) https://www.thoughtworks.com/radar/techniques/consumer-driven-contract- testing • Pact: Verifying Microservice Integrations with Contract Testing - Atlassian Summit 2016 • Spring Cloud Contract: Consumer Driven Contracts and Your Microservice Architecture - Marcin Grzejszczak, Adib Saikali

Notas del editor

  1. Agradecer Organização: Profs. da Comissão Organizadora e Comitê Local Evolução da Apresentação do TDC 2018
  2. Mestrado em Agile, Métricas e Testes QA PagSeguro: equipe de infra (testes automatizados e negócios) Atualmente Emissão de Cartões Fintech (inclusão de desbancarizados, spread bancário ...) Tecnologia (Internet das Coisas, Assistentes de Voz, Apple)
  3. 1: Novos desafios e Benefícios de trabalhar em projetos com Microserviços 2: Algumas técnicas e ferramentas que ajudam nos testes de microserviços 3 e 4: Itens relacionados DevOPs que são consequência da alta quantidade de Microserviços, mas que temos que nos preocupar na qualidade do que está funcionando e o que acabou de ser entregue Microserviços - Novos desafios (14 min) Testes em Microserviços (13 min) Delivery Contínuo e Testes em Produção (13 min) Monitorações, Logs e Troubleshoot (10 min)
  4. Microserviços são pequenos serviços autônomos que trabalham juntos. Origem: DDD, Continuous Delivery, Automação de Infra, Escalabilidade e pequenos times autônomos
  5. Focados em fazer uma coisa bem (DDD) Não é sobre tamanho, mas fatalmente você vai pensar em um monstro bem gordo, difícil de entregar Cada um com seu domínio específico com uma interface de comunicação entre eles
  6. Alinhamento de vários times trabalhando separadamente e não precisam compartilhar uma mesma base de código Deploy Contínuo, Escalabilidade Reuso (aproveitar um componente de autenticação, cadastro ou de movimentações financeiras) Consulta e Operações de Cartão que podem ser feitos pelo App ou URA
  7. 2007: PagSeguro adquire BR-Pay (foco em Pagamentos Web) 2012: NFC e primeiras experiências com deploy separado e um componente separado 2014 – 2017: Começamos a ver grandes dificuldades de manutenção e performance dos times 2018: Mobile First, Foco no usuário, melhoria contínua com o Ágil.
  8. Precisamos consultar muita informação do Monolito Monitoração e Gerenciamento de vários microserviços desafiador. Impacto se o sistema legado (monolito cair), ou se um serviço dependente cair continuamos funcionando? Novas tecnologias (podem ser problema) Trazer dados do Monolito para relatórios de negócio ou simplesmente para utilizarem algum microserviço Negócios: Entender o Domínio – existe/novo (fatiamento dos microserviços) QA Técnico – Importante (filas,logs,disponibilidade...)
  9. Vamos falar sobre Técnicas/Ferramentas que ajudam a dar apoio quando falamos de microserviços (13 min)
  10. Pirâmede de Testes (Sam Newman) Q1: Testes de Contrato (Acordo entre Cliente e Fornecedores de uma API interna) Q3: Testes End-to-End / Exploratórios e focamos em equipes DevOPS Beta, A/B, Feature Toggle...
  11. Duas abordagens para testar além das fronteiras: End-to-End ou Mock Sofrer com estabilidades (que logicamente podem ser tratadas, por exemplo com Mocks) Apesar de facilidade para fazer o deploy de vários microserviços isso gera um alto custo Confiável porque está utilizando o serviço real End-to-End + Mocks pode não ser confiável O que acontece se um fornecedor de uma API muda a assinatura e o mock de quem utiliza não é atualizado?
  12. Infra-estrutura é mais fácil, mas depender de infra pode gerar muita instabilidade Poucos testes e Testes com Mocks Mock com Wiremock, Apiary, Mock API Confiabilidade: remoção/alteração de um campo de resposta de uma API Atualizar Mock
  13. Apiary: para documentação e facilitar desenvolvimento Mobile (antes do BE) Wiremock: utilizar stubs bem escritos para os testes Pode simular problemas e pode gravar respostas
  14. Produtor não quebrar os consumidores Como saber como e quais são todos os clientes que utilizam o serviço Antigo (desde 2006 pelo MartinFownler) e em 2015 foco em microserviços
  15. Contrato: Mudança de Name para User (name + lastname) Swagger: Documentação e Execução de End-Points
  16. Consumidor faz os contratos em groovy e gera testes integrados para o provider Gerado o Stub baseados nos contratos Client executa testes contra o servidor de stubs PACT: Suporte a diversas linguagens, UI para gerenciar os contratos e grafo de dependência
  17. Consumidor faz os contratos em groovy e gera testes integrados para o provider Gerado o Stub baseados nos contratos Client executa testes contra o servidor de stubs PACT: Suporte a diversas linguagens, UI para gerenciar os contratos e grafo de dependência
  18. Consumidor faz os contratos em groovy e gera testes integrados para o provider Gerado o Stub baseados nos contratos Client executa testes contra o servidor de stubs PACT: Suporte a diversas linguagens, UI para gerenciar os contratos e grafo de dependência
  19. Consumidor faz os contratos em groovy e gera testes integrados para o provider Gerado o Stub baseados nos contratos Client executa testes contra o servidor de stubs PACT: Suporte a diversas linguagens, UI para gerenciar os contratos e grafo de dependência
  20. Consumidor faz os contratos em groovy e gera testes integrados para o provider Gerado o Stub baseados nos contratos Client executa testes contra o servidor de stubs PACT: Suporte a diversas linguagens, UI para gerenciar os contratos e grafo de dependência
  21. Agora iremos falar sobre delivery contínuo, pipelines e testes exploratórios Também temos testes em produção que podem abordar Feature Toggle, Beta-Testing e Testes A/B 16 min
  22. Pipeline é um ponto importante para entrega contínua E os Testes como ficam? Temos que fazer testes exploratórios mas como? Processos pré-commit: PR, Sec, Review e Testes Evoluções: Validar em máquinas isoladas e usar o mesmo artefato
  23. Esconder funcionalidades incompletas ou com risco de todos ou de parte dos usuários, experimentar e controlar o sistema Release toggles: permite que códigos incompletos e com caminhos não testados sejam entregues em produção Experiment toggles: utilizados para fazer testes A/B ou multivariados. Ops toggles: utilizados para controlar aspectos operacionais de comportamento do sistema Ex.: desabilitição intencional de features não críticas durante perído de uso pesado (black Friday) Permissioning toggles: utilizado para modificar funcionalidades ou experência que certos usuários recebem. Ex.: ativar funcionalidades premium para programa de pontos (fidelidade) Ajuda no delivery contínuo, mas não podemos estocar código e Não devemos fazer delivery de código não testado
  24. - Dividir o tráfego ou separar em grupos
  25. Testes A/B não deve se tornar a única forma de se tomar uma decisão. Não remover autonomia da equipe de desenvolvimento Comportamento pode fornecer insight para melhoria, mas as pessoas podem reagir mal a inovações que desafiem ele. Henry Ford (Se perguntasse o que as pessoas queriam, eles diriam cavalos mais rápidos) Steve Jobs (Pessoas não sabem o que querem até você mostrar isso a elas)
  26. Testes A/B no PagSeguro: Ordem dos meios de pagamento, deixar pagamentos oculto Home: O que converte mais moderninhas? Hypothesis driven development
  27. Diferente dos Testes A/B eles são para detectar bugs! Limitações nos testes de desenvolvimento (devices, ou conhecimento mais profundo da funcionalidade) Time testar com ambiente de produção, várias oportunidades de teste
  28. No PagSeguro para alguns produtos conseguimos fazer dogfooding Não representa os usuários que utilizam efetivamente o produto Percepção de qualidade diferente do usuário final Ele pode ser complementado pelas avaliações dos APPs Sugestões, Problemas e Elogios E um trabalho feito entre o pessoal de UX+UI com POs
  29. Por fim vamos falar de um aspecto muito importante em Microserviços A monitoração, com uma grande quantidade de microserviços a gente precisa fazer com que as equipes assumam essa responsabilidade e ajudem a equipe de operações a monitorar os nossos sistemas em produção 13 min
  30. - Bugs de diferentes tamanhos e que podem ser detectados em produção
  31. Um dos desafios que enfrentamos depois de sofremos algumas vezes com problemas em produção Monitoração: como conseguir escalar isso para que todo microserviço tenha monitorações de infra-estrutura e negócio que facilitem a atuação da equipe de operações
  32. A biblioteca java gera um arquivo JSON com o status das monitorações da aplicação Script lê esse arquivo e toma as ações necessárias caso haja algum problema Idle Period (Periodo sem executar)
  33. Podemos também monitorar filas rabbit ou integações com outros sistemas É importante documentarmos para em caso de alarme operações saiba o que fazer Notificações via Slack e abertura de chamados
  34. Para análise de problemas em produção é muito importate termos logs Quando tratamos de microserviços para uma jornada do usuário é importante a gente conseguir ter uma rastreabilidade Sleuth para gerar os logs e Zipkin para consolidar esses logs
  35. - Vagas no PagSeguro (QA, Dev FE e BE, Banco, Infra...)