SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Mais procurados

WTM - Entrega Contínua
WTM - Entrega ContínuaWTM - Entrega Contínua
WTM - Entrega Contínua
Samanta Cicilia
 
MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression Testing
Samanta 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 Todos
tdc-globalcode
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
Marco 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 pipeline
Samanta 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 horas
Samanta 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 Valor
Samanta 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 Automatizados
Samanta 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 & DevOps
Samanta 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 software1
Tiago Vizoto
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
Carlos Wagner Costa
 
QAOps - Agile Trends 2021
QAOps - Agile Trends 2021QAOps - Agile Trends 2021
QAOps - Agile Trends 2021
Mayara Fernandes
 
[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ções
Marcelo 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ínua
Samanta 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ços
Samanta Cicilia
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous Delivery
Samanta 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 Testing
Samanta Cicilia
 
Qa ops mtc 2020 - mayara fernandes
Qa ops   mtc 2020 - mayara fernandesQa ops   mtc 2020 - mayara fernandes
Qa ops mtc 2020 - mayara fernandes
Mayara Fernandes
 

Mais procurados (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
 

Semelhante a ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade

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
ananegrello
 
[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 ALATS
Fabrício Campos
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
Diego Pacheco
 
Falando sobre DevOps no azure
Falando sobre DevOps no azureFalando sobre DevOps no azure
Falando sobre DevOps no azure
Ricardo Martins ☁
 
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
RationalBrasil
 
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
Kleitor 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
 
Webinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros ÁgeisWebinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros Ágeis
Rodrigo R Garcia, PMP
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016
Renato 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 testes
Felipe 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 Software
Norberto 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 testes
ananegrello
 
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 = Produtividade
Adriano Bertucci
 
DevOps e App Insights
DevOps e App InsightsDevOps e App Insights
DevOps e App Insights
Guilherme Cardoso
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deployments
Ricardo 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 20slides
horaciosila
 
Microservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosMicroservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e Desafios
Ryan Padilha
 

Semelhante a ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade (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

Apostila em LIBRAS - Curso Básico ENAP 2019.pdf
Apostila em LIBRAS - Curso Básico ENAP 2019.pdfApostila em LIBRAS - Curso Básico ENAP 2019.pdf
Apostila em LIBRAS - Curso Básico ENAP 2019.pdf
pattyhsilva271204
 
Oficina de bases de dados - Dimensions.pdf
Oficina de bases de dados - Dimensions.pdfOficina de bases de dados - Dimensions.pdf
Oficina de bases de dados - Dimensions.pdf
beathrizalves131
 
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
Sandra Pratas
 
A perspectiva colaborativa e as novas práticas de inclusão. (1).pptx
A perspectiva colaborativa e as novas práticas de inclusão. (1).pptxA perspectiva colaborativa e as novas práticas de inclusão. (1).pptx
A perspectiva colaborativa e as novas práticas de inclusão. (1).pptx
marcos oliveira
 
Acróstico - Bullying é crime!
Acróstico - Bullying é crime!Acróstico - Bullying é crime!
Acróstico - Bullying é crime!
Mary Alvarenga
 
Plano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docx
Plano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docxPlano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docx
Plano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docx
IsaiasJohaneSimango
 
Relatório de Atividades 2009 CENSIPAM
Relatório de Atividades 2009 CENSIPAM Relatório de Atividades 2009 CENSIPAM
Relatório de Atividades 2009 CENSIPAM
Falcão Brasil
 
Relatório de Atividades 2017 CENSIPAM.pdf
Relatório de Atividades 2017 CENSIPAM.pdfRelatório de Atividades 2017 CENSIPAM.pdf
Relatório de Atividades 2017 CENSIPAM.pdf
Falcão Brasil
 
Texto e atividade - Fontes alternativas de energia
Texto e atividade -  Fontes alternativas de energiaTexto e atividade -  Fontes alternativas de energia
Texto e atividade - Fontes alternativas de energia
Mary Alvarenga
 
1°ao5°ano_HISTÓRIA_ORGANIZADOR CURRICULAR BIMESTRAL (1) educação infantil fu...
1°ao5°ano_HISTÓRIA_ORGANIZADOR CURRICULAR BIMESTRAL (1)  educação infantil fu...1°ao5°ano_HISTÓRIA_ORGANIZADOR CURRICULAR BIMESTRAL (1)  educação infantil fu...
1°ao5°ano_HISTÓRIA_ORGANIZADOR CURRICULAR BIMESTRAL (1) educação infantil fu...
antonio carlos
 
Texto e atividade - O que fazemos com a água que usamos.
Texto e atividade -  O que fazemos com a água que usamos.Texto e atividade -  O que fazemos com a água que usamos.
Texto e atividade - O que fazemos com a água que usamos.
Mary Alvarenga
 
Guerra de reconquista da Península ibérica
Guerra de reconquista da Península ibéricaGuerra de reconquista da Península ibérica
Guerra de reconquista da Península ibérica
felipescherner
 
Relatório de Atividades 2021/2022 CENSIPAM.pdf
Relatório de Atividades 2021/2022 CENSIPAM.pdfRelatório de Atividades 2021/2022 CENSIPAM.pdf
Relatório de Atividades 2021/2022 CENSIPAM.pdf
Falcão Brasil
 
Noite Alva! José Ernesto Ferraresso.ppsx
Noite Alva! José Ernesto Ferraresso.ppsxNoite Alva! José Ernesto Ferraresso.ppsx
Noite Alva! José Ernesto Ferraresso.ppsx
Luzia Gabriele
 
Relatório de Atividades 2016 CENSIPAM.pdf
Relatório de Atividades 2016 CENSIPAM.pdfRelatório de Atividades 2016 CENSIPAM.pdf
Relatório de Atividades 2016 CENSIPAM.pdf
Falcão Brasil
 
As Ideias Têm Consequências - Richard M. Weaver
As Ideias Têm Consequências - Richard M. WeaverAs Ideias Têm Consequências - Richard M. Weaver
As Ideias Têm Consequências - Richard M. Weaver
C4io99
 
SEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantilil
SEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantililSEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantilil
SEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantilil
menesabi
 
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
LuizHenriquedeAlmeid6
 
Caça - palavras e cruzadinha com dígrafos
Caça - palavras  e cruzadinha   com  dígrafosCaça - palavras  e cruzadinha   com  dígrafos
Caça - palavras e cruzadinha com dígrafos
Mary Alvarenga
 
Caça-palavras e cruzadinha - Encontros consonantais.
Caça-palavras e cruzadinha -  Encontros consonantais.Caça-palavras e cruzadinha -  Encontros consonantais.
Caça-palavras e cruzadinha - Encontros consonantais.
Mary Alvarenga
 

Último (20)

Apostila em LIBRAS - Curso Básico ENAP 2019.pdf
Apostila em LIBRAS - Curso Básico ENAP 2019.pdfApostila em LIBRAS - Curso Básico ENAP 2019.pdf
Apostila em LIBRAS - Curso Básico ENAP 2019.pdf
 
Oficina de bases de dados - Dimensions.pdf
Oficina de bases de dados - Dimensions.pdfOficina de bases de dados - Dimensions.pdf
Oficina de bases de dados - Dimensions.pdf
 
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
EBOOK_HORA DO CONTO_O MONSTRO DAS CORES_ANGELINA & MÓNICA_22_23
 
A perspectiva colaborativa e as novas práticas de inclusão. (1).pptx
A perspectiva colaborativa e as novas práticas de inclusão. (1).pptxA perspectiva colaborativa e as novas práticas de inclusão. (1).pptx
A perspectiva colaborativa e as novas práticas de inclusão. (1).pptx
 
Acróstico - Bullying é crime!
Acróstico - Bullying é crime!Acróstico - Bullying é crime!
Acróstico - Bullying é crime!
 
Plano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docx
Plano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docxPlano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docx
Plano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docx
 
Relatório de Atividades 2009 CENSIPAM
Relatório de Atividades 2009 CENSIPAM Relatório de Atividades 2009 CENSIPAM
Relatório de Atividades 2009 CENSIPAM
 
Relatório de Atividades 2017 CENSIPAM.pdf
Relatório de Atividades 2017 CENSIPAM.pdfRelatório de Atividades 2017 CENSIPAM.pdf
Relatório de Atividades 2017 CENSIPAM.pdf
 
Texto e atividade - Fontes alternativas de energia
Texto e atividade -  Fontes alternativas de energiaTexto e atividade -  Fontes alternativas de energia
Texto e atividade - Fontes alternativas de energia
 
1°ao5°ano_HISTÓRIA_ORGANIZADOR CURRICULAR BIMESTRAL (1) educação infantil fu...
1°ao5°ano_HISTÓRIA_ORGANIZADOR CURRICULAR BIMESTRAL (1)  educação infantil fu...1°ao5°ano_HISTÓRIA_ORGANIZADOR CURRICULAR BIMESTRAL (1)  educação infantil fu...
1°ao5°ano_HISTÓRIA_ORGANIZADOR CURRICULAR BIMESTRAL (1) educação infantil fu...
 
Texto e atividade - O que fazemos com a água que usamos.
Texto e atividade -  O que fazemos com a água que usamos.Texto e atividade -  O que fazemos com a água que usamos.
Texto e atividade - O que fazemos com a água que usamos.
 
Guerra de reconquista da Península ibérica
Guerra de reconquista da Península ibéricaGuerra de reconquista da Península ibérica
Guerra de reconquista da Península ibérica
 
Relatório de Atividades 2021/2022 CENSIPAM.pdf
Relatório de Atividades 2021/2022 CENSIPAM.pdfRelatório de Atividades 2021/2022 CENSIPAM.pdf
Relatório de Atividades 2021/2022 CENSIPAM.pdf
 
Noite Alva! José Ernesto Ferraresso.ppsx
Noite Alva! José Ernesto Ferraresso.ppsxNoite Alva! José Ernesto Ferraresso.ppsx
Noite Alva! José Ernesto Ferraresso.ppsx
 
Relatório de Atividades 2016 CENSIPAM.pdf
Relatório de Atividades 2016 CENSIPAM.pdfRelatório de Atividades 2016 CENSIPAM.pdf
Relatório de Atividades 2016 CENSIPAM.pdf
 
As Ideias Têm Consequências - Richard M. Weaver
As Ideias Têm Consequências - Richard M. WeaverAs Ideias Têm Consequências - Richard M. Weaver
As Ideias Têm Consequências - Richard M. Weaver
 
SEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantilil
SEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantililSEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantilil
SEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantilil
 
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
 
Caça - palavras e cruzadinha com dígrafos
Caça - palavras  e cruzadinha   com  dígrafosCaça - palavras  e cruzadinha   com  dígrafos
Caça - palavras e cruzadinha com dígrafos
 
Caça-palavras e cruzadinha - Encontros consonantais.
Caça-palavras e cruzadinha -  Encontros consonantais.Caça-palavras e cruzadinha -  Encontros consonantais.
Caça-palavras e cruzadinha - Encontros consonantais.
 

ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade

  • 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 do 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...)