SlideShare uma empresa Scribd logo
1 de 85
Baixar para ler offline
Qualidade de Software
Micro Serviços
Agenda de hoje
• Arquitetura de Micro Serviços
• Relevância da pirâmide de testes em micro serviços?
• Como garantir comunicação em micro serviços?
• Ambiente de testes em micro serviços
• Testes em produção, blue green e etc
• As 4 métricas fundamentais
Rafael Lima
Quem Sou
• Desde 2003 na área de TI.
Rafael Lima
Quem Sou
• Desde 2003 na área de TI.
• Dev → QA → Líder de Equipe de QA → Dev → QA → Líder de Equipe Dev → QA/Dev
Rafael Lima
Quem Sou
• Desde 2003 na área de TI.
• Dev → QA → Líder de Equipe de QA → Dev → QA → Líder de Equipe Dev → QA/Dev
• Bacharel em Ciências da Computação
Rafael Lima
Quem Sou
• Desde 2003 na área de TI.
• Dev → QA → Líder de Equipe de QA → Dev → QA → Líder de Equipe Dev → QA/Dev
• Bacharel em Ciências da Computação
• Desde 2010 com automação de testes
Rafael Lima
Quem Sou
• Desde 2003 na área de TI.
• Dev → QA → Líder de Equipe de QA → Dev → QA → Líder de Equipe Dev → QA/Dev
• Bacharel em Ciências da Computação
• Desde 2010 com automação de testes
• 7 anos na ThoughtWorks Brasil (Consultor Sênior e Lead)
• 4 anos trabalhando para um cliente no Vale do Silício
• 1 ano a frente de um programa de capacitação para consultores juniores
Rafael Lima
Quem Sou
• Desde 2003 na área de TI.
• Dev → QA → Líder de Equipe de QA → Dev → QA → Líder de Equipe Dev → QA/Dev
• Bacharel em Ciências da Computação
• Desde 2010 com automação de testes
• 7 anos na ThoughtWorks Brasil (Consultor Sênior e Lead)
• 4 anos trabalhando para um cliente no Vale do Silício
• 1 ano a frente de um programa de capacitação para consultores juniores
• 1+ ano na TransferWise em Londres como Desenvolvedor de Software em Testes
• Micro Serviços
• Times autônomos com cultura devops
• Média de 100+ deploys para produção por dia
Rafael Lima
Contato
https://github.com/rafalima/
https://github.com/qa-ops
https://br.linkedin.com/in/rafaelplima
https://youtube.com/c/QaOps
Micro Serviços
Monolito
Serviços
BD BD BD
REST API
Serviços
BD
REST API
Serviços
REST API
Micro Serviços
Serviços
BD
REST API
Serviços
REST API
Serviços
REST API
BD
Micro Serviços
Serviços
BD
REST API
Serviços
REST API
Serviços
REST API
Serviços
REST API
BD
BD
Micro Serviços
Serviços
BD
REST API
Serviços
REST API
Serviços
REST API
Serviços
REST API
BD
BD
Micro Serviços
Fila
Serviços
REST API
Serviços
Micro Serviços
Micro Serviços
Micro Serviços
https://martinfowler.com/bliki/MicroservicePrerequisites.html
• Provisionamento rápido
Micro Serviços
https://martinfowler.com/bliki/MicroservicePrerequisites.html
• Provisionamento rápido

• Monitoração e Observação
Micro Serviços
https://martinfowler.com/bliki/MicroservicePrerequisites.html
• Provisionamento rápido

• Monitoração e Observação

• Instalações(Deploys) rápidas
As 4 métricas fundamentais
https://cloud.google.com/devops/state-of-devops
1. Deployment Frequency
2. Lead Time for Changes
3. Change Failure Rate
4. Time to Restore Service
Pirâmide de Testes
Pirâmide de Testes
Pirâmide Ideal
- Mesma imagem do primeiro slide da Pirâmide Ideal
Pirâmide de Testes
Pirâmide Ideal
+int
+iso
$$$
¢
- Mesma imagem do primeiro slide da Pirâmide Ideal
Será que a pirâmide é relevante
para micro serviços?
Qual objetivo da pirâmide de
testes?
Parecer (feedback) rápido
Preciso me preocupar em qual camada
da pirâmide de testes escrever meus
testes em micro serviços?
Escrever o teste que julga necessário, independente
da pirâmide.
Se importar somente com o tempo total da suite.
Comunicação entre Micro
Serviços
Teste de Contrato
{
"id": 10,
"nome": "Lela",
"categoria": {
"id": 1,
"nome": "Cachorro"
},
"fotoUrls": [
“www.foto.com“
],
"estado": "disponível"
}
Teste de Contrato
public class Animal {
private int id;
private String nome;
private Categoria categoria;
private String estado;
private List<String> fotoUrls;
public class Categoria {
private int id;
private String nome;
}
}
{
"id": 10,
"nome": "Lela",
"categoria": {
"id": 1,
"nome": "Cachorro"
},
"fotoUrls": [
“www.foto.com“
],
"estado": "disponível"
}
Teste de Contrato
A
Teste de Contrato
C
Teste de Contrato
Teste de Contrato Teste de Contrato
B
D
Teste de Contrato Baseado no Consumidor
Teste de Contrato Baseado no Consumidor
Repo
Provedor
Teste de Contrato Baseado no Consumidor
Repo
Provedor
Consumidor 1
Teste de Contrato Baseado no Consumidor
Repo
Provedor
Consumidor 1 Consumidor 2
Teste de Contrato Baseado no Consumidor
Repo
Provedor
Consumidor 1 Consumidor 2 Provedor
Teste de Contrato Baseado no Consumidor
Repo
Provedor
Consumidor 1 Consumidor 2 Provedor
Consumidor 100
Qual o problema dessa
abordagem?
Que outras formas de
comunicação posso usar?
gRPC
Biblioteca
Biblioteca
List<Animal> animais = lojaAnimais.pegarAnimais('disponível')
Biblioteca
List<Animal> animais = lojaAnimais.pegarAnimais('disponível')
public enum EstadoAnimal {
DISPONIVEL,
DELETADO,
EM_ESPERA;
}
public enum EstadoAnimal {
DISPONIVEL,
DELETADO,
EM_ESPERA
EM_TRANSITO;
}
V2 V3
Como garantir as versões da
biblioteca ou classe de parse?
Ambiente de testes em
micro serviços
Quantos ambientes uma equipe
precisa?
Ambientes de Testes
DEV
Ambientes de Testes
DEV QA
Ambientes de Testes
DEV QA ShowCase
Ambientes de Testes
DEV QA ShowCase Pre-Prod
Ambientes de Testes
DEV QA ShowCase Pre-Prod Prod
É sustentável todos esses
ambientes?
E quando você tem 400+ micro
serviços e 500+ engenheiros?
Solução Antiga
Staging
Sistema A
Solução Antiga
Staging
Sistema A
Sistema B
Solução Antiga
Staging
Sistema A
Sistema B Sistema C
Solução Antiga
Staging
Sistema A
Sistema B Sistema C
Sistema A
Staging tava sempre quebrado
Criamos uma solução própria,
chamada Custom Environment
Staging ainda é usado hoje em
dia
Testes em Produção
Devemos fazer testes em Prod?
Smoke Testes com dinheiro real
Também fazemos Canary
Releases
Canary Release
100%
Canary Release
75%
25%
Canary Release
100%
Qual a diferença entre Canary
Release e Blue Green ?
Blue Green
Blue Green
Mínimo de 25% é muito alto já
Melhoria do Canary Release
E as feature toggle?
Feature Toggle (Alternar funcionalidades)
IF (PromocaoPascoa.ON)
Preço = R$5,00
ELSE
Preço = R$15,00
Teste A/B
IF (Cidade == BH)
Testa Nova UI
ELSE
Mantém UI antiga
Obrigado
• Youtube: https://www.youtube.com/c/qaops
• Linkedin: https://www.linkedin.com/in/rafaelplima/
Referências
• http://martinfowler.com/bliki/MicroservicePrerequisites.html
• https://cloud.google.com/devops/state-of-devops
• https://www.oreilly.com/library/view/accelerate/9781457191435/
• https://learning.oreilly.com/library/view/continuous-delivery-reliable/9780321670250/
• https://samnewman.io/books/building_microservices/

Mais conteúdo relacionado

Mais procurados

BDD e TDD na prática com SpecFlow e Visual Studio 2012
BDD e TDD na prática com SpecFlow e Visual Studio 2012BDD e TDD na prática com SpecFlow e Visual Studio 2012
BDD e TDD na prática com SpecFlow e Visual Studio 2012Igor Abade
 
Meetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por ExemploMeetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por ExemploSamanta Cicilia
 
Agile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fimAgile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fimElias Nogueira
 
Improve Yourself -- Learn the Skills, Join the Community - Tests
Improve Yourself -- Learn the Skills, Join the Community - TestsImprove Yourself -- Learn the Skills, Join the Community - Tests
Improve Yourself -- Learn the Skills, Join the Community - TestsElias Nogueira
 
Como se tornar Agile Tester
Como se tornar Agile TesterComo se tornar Agile Tester
Como se tornar Agile TesterElias Nogueira
 
Testes em ambiente agil - TechTalks ADP Labs
Testes em ambiente agil - TechTalks ADP LabsTestes em ambiente agil - TechTalks ADP Labs
Testes em ambiente agil - TechTalks ADP LabsElias Nogueira
 
Testes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeterTestes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeterQualister
 
Certificação de processos e gestão da qualidade de software nas organizações
Certificação de processos e gestão da qualidade de software nas organizaçõesCertificação de processos e gestão da qualidade de software nas organizações
Certificação de processos e gestão da qualidade de software nas organizaçõesRafael Pires
 
Mindset de QA em Diferentes Contextos
Mindset de QA em Diferentes ContextosMindset de QA em Diferentes Contextos
Mindset de QA em Diferentes ContextosJúlio de Lima
 
Java+DDD+BDD+TDD=Sucesso Total
Java+DDD+BDD+TDD=Sucesso TotalJava+DDD+BDD+TDD=Sucesso Total
Java+DDD+BDD+TDD=Sucesso TotalEduardo Bregaida
 
Automacao testes automatizados
Automacao testes automatizadosAutomacao testes automatizados
Automacao testes automatizadosCristiano Caetano
 
Como integrar um Agile Tester no seu time
Como integrar um Agile Tester no seu timeComo integrar um Agile Tester no seu time
Como integrar um Agile Tester no seu timeElias Nogueira
 
Como tornar o testador parte da equipe
Como tornar o testador parte da equipeComo tornar o testador parte da equipe
Como tornar o testador parte da equipeElias Nogueira
 
Perspectivas em teste de software
Perspectivas em teste de softwarePerspectivas em teste de software
Perspectivas em teste de softwareQualister
 
Nunca foi tao facil testar
Nunca foi tao facil testarNunca foi tao facil testar
Nunca foi tao facil testarElias Nogueira
 
Automacao de testes mitos e verdades
Automacao de testes mitos e verdadesAutomacao de testes mitos e verdades
Automacao de testes mitos e verdadesCristiano Caetano
 
Como testar aplicativos ios e android
Como testar aplicativos ios e androidComo testar aplicativos ios e android
Como testar aplicativos ios e androidQualister
 
Revisitando as Práticas de Engenharia Ágil
Revisitando as Práticas de Engenharia ÁgilRevisitando as Práticas de Engenharia Ágil
Revisitando as Práticas de Engenharia ÁgilDanilo Sato
 
Testes de Performance na Nuvem com JMeter e Blazemeter
Testes de Performance na Nuvem com JMeter e BlazemeterTestes de Performance na Nuvem com JMeter e Blazemeter
Testes de Performance na Nuvem com JMeter e BlazemeterElias Nogueira
 

Mais procurados (20)

BDD e TDD na prática com SpecFlow e Visual Studio 2012
BDD e TDD na prática com SpecFlow e Visual Studio 2012BDD e TDD na prática com SpecFlow e Visual Studio 2012
BDD e TDD na prática com SpecFlow e Visual Studio 2012
 
Meetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por ExemploMeetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por Exemplo
 
Agile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fimAgile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fim
 
Improve Yourself -- Learn the Skills, Join the Community - Tests
Improve Yourself -- Learn the Skills, Join the Community - TestsImprove Yourself -- Learn the Skills, Join the Community - Tests
Improve Yourself -- Learn the Skills, Join the Community - Tests
 
Como se tornar Agile Tester
Como se tornar Agile TesterComo se tornar Agile Tester
Como se tornar Agile Tester
 
Testes em ambiente agil - TechTalks ADP Labs
Testes em ambiente agil - TechTalks ADP LabsTestes em ambiente agil - TechTalks ADP Labs
Testes em ambiente agil - TechTalks ADP Labs
 
Testes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeterTestes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeter
 
Certificação de processos e gestão da qualidade de software nas organizações
Certificação de processos e gestão da qualidade de software nas organizaçõesCertificação de processos e gestão da qualidade de software nas organizações
Certificação de processos e gestão da qualidade de software nas organizações
 
Mindset de QA em Diferentes Contextos
Mindset de QA em Diferentes ContextosMindset de QA em Diferentes Contextos
Mindset de QA em Diferentes Contextos
 
Java+DDD+BDD+TDD=Sucesso Total
Java+DDD+BDD+TDD=Sucesso TotalJava+DDD+BDD+TDD=Sucesso Total
Java+DDD+BDD+TDD=Sucesso Total
 
Automacao testes automatizados
Automacao testes automatizadosAutomacao testes automatizados
Automacao testes automatizados
 
Como integrar um Agile Tester no seu time
Como integrar um Agile Tester no seu timeComo integrar um Agile Tester no seu time
Como integrar um Agile Tester no seu time
 
Como tornar o testador parte da equipe
Como tornar o testador parte da equipeComo tornar o testador parte da equipe
Como tornar o testador parte da equipe
 
Perspectivas em teste de software
Perspectivas em teste de softwarePerspectivas em teste de software
Perspectivas em teste de software
 
Apresentação inícial testes ágeis
Apresentação inícial testes ágeisApresentação inícial testes ágeis
Apresentação inícial testes ágeis
 
Nunca foi tao facil testar
Nunca foi tao facil testarNunca foi tao facil testar
Nunca foi tao facil testar
 
Automacao de testes mitos e verdades
Automacao de testes mitos e verdadesAutomacao de testes mitos e verdades
Automacao de testes mitos e verdades
 
Como testar aplicativos ios e android
Como testar aplicativos ios e androidComo testar aplicativos ios e android
Como testar aplicativos ios e android
 
Revisitando as Práticas de Engenharia Ágil
Revisitando as Práticas de Engenharia ÁgilRevisitando as Práticas de Engenharia Ágil
Revisitando as Práticas de Engenharia Ágil
 
Testes de Performance na Nuvem com JMeter e Blazemeter
Testes de Performance na Nuvem com JMeter e BlazemeterTestes de Performance na Nuvem com JMeter e Blazemeter
Testes de Performance na Nuvem com JMeter e Blazemeter
 

Semelhante a Qualidade de Software em Micro Serviços

Cloud e DevOps, como o Zabbix pode contribuir para este cenário - Zabbix Conf...
Cloud e DevOps, como o Zabbix pode contribuir para este cenário - Zabbix Conf...Cloud e DevOps, como o Zabbix pode contribuir para este cenário - Zabbix Conf...
Cloud e DevOps, como o Zabbix pode contribuir para este cenário - Zabbix Conf...Robert Silva
 
Como funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de softwareComo funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de softwareElvis Lima
 
Palestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnitPalestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnitQualister
 
Palestra sobre automação de testes em APIs Rest com Rest-Assured
Palestra sobre automação de testes em APIs Rest com Rest-AssuredPalestra sobre automação de testes em APIs Rest com Rest-Assured
Palestra sobre automação de testes em APIs Rest com Rest-AssuredJúlio de Lima
 
[GUTS-RS] GUTS Universitário - UNISINOS Campus POA
[GUTS-RS] GUTS Universitário - UNISINOS Campus POA[GUTS-RS] GUTS Universitário - UNISINOS Campus POA
[GUTS-RS] GUTS Universitário - UNISINOS Campus POAGUTS-RS
 
TDC2015: Testes em APIs REST com Rest-Assured
TDC2015: Testes em APIs REST com Rest-AssuredTDC2015: Testes em APIs REST com Rest-Assured
TDC2015: Testes em APIs REST com Rest-AssuredJúlio de Lima
 
Palestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-AssuredPalestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-AssuredQualister
 
Falando de Testes de Desempenho - por Evandro Grezeli
Falando de Testes de Desempenho - por Evandro GrezeliFalando de Testes de Desempenho - por Evandro Grezeli
Falando de Testes de Desempenho - por Evandro GrezeliJoao Galdino Mello de Souza
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?Rafael Salerno de Oliveira
 
Indo além dos testes de classes com BDD (Behavior-Driven Development) - DevOp...
Indo além dos testes de classes com BDD (Behavior-Driven Development) - DevOp...Indo além dos testes de classes com BDD (Behavior-Driven Development) - DevOp...
Indo além dos testes de classes com BDD (Behavior-Driven Development) - DevOp...Renato Groff
 
Microsoft Azure Overview
Microsoft Azure OverviewMicrosoft Azure Overview
Microsoft Azure OverviewCDS
 
Cmg falando de testes de desempenho
Cmg falando de testes de desempenhoCmg falando de testes de desempenho
Cmg falando de testes de desempenhoEvandro Grezeli
 

Semelhante a Qualidade de Software em Micro Serviços (20)

Webinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros ÁgeisWebinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros Ágeis
 
Computação em nuvem e Windows Azure
Computação em nuvem e Windows AzureComputação em nuvem e Windows Azure
Computação em nuvem e Windows Azure
 
Cloud e DevOps, como o Zabbix pode contribuir para este cenário - Zabbix Conf...
Cloud e DevOps, como o Zabbix pode contribuir para este cenário - Zabbix Conf...Cloud e DevOps, como o Zabbix pode contribuir para este cenário - Zabbix Conf...
Cloud e DevOps, como o Zabbix pode contribuir para este cenário - Zabbix Conf...
 
Metralhando sua API
 Metralhando sua API Metralhando sua API
Metralhando sua API
 
Service Design Patterns - Study Case
Service Design Patterns - Study Case  Service Design Patterns - Study Case
Service Design Patterns - Study Case
 
Como funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de softwareComo funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de software
 
Palestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnitPalestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnit
 
Palestra sobre automação de testes em APIs Rest com Rest-Assured
Palestra sobre automação de testes em APIs Rest com Rest-AssuredPalestra sobre automação de testes em APIs Rest com Rest-Assured
Palestra sobre automação de testes em APIs Rest com Rest-Assured
 
[GUTS-RS] GUTS Universitário - UNISINOS Campus POA
[GUTS-RS] GUTS Universitário - UNISINOS Campus POA[GUTS-RS] GUTS Universitário - UNISINOS Campus POA
[GUTS-RS] GUTS Universitário - UNISINOS Campus POA
 
TDC2015: Testes em APIs REST com Rest-Assured
TDC2015: Testes em APIs REST com Rest-AssuredTDC2015: Testes em APIs REST com Rest-Assured
TDC2015: Testes em APIs REST com Rest-Assured
 
Palestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-AssuredPalestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-Assured
 
Falando de Testes de Desempenho - por Evandro Grezeli
Falando de Testes de Desempenho - por Evandro GrezeliFalando de Testes de Desempenho - por Evandro Grezeli
Falando de Testes de Desempenho - por Evandro Grezeli
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
BDD com Xamarin UI Test e Specflow
BDD com Xamarin UI Test e SpecflowBDD com Xamarin UI Test e Specflow
BDD com Xamarin UI Test e Specflow
 
TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?TDC - Qual o tamanho adequado de um micro serviço?
TDC - Qual o tamanho adequado de um micro serviço?
 
Indo além dos testes de classes com BDD (Behavior-Driven Development) - DevOp...
Indo além dos testes de classes com BDD (Behavior-Driven Development) - DevOp...Indo além dos testes de classes com BDD (Behavior-Driven Development) - DevOp...
Indo além dos testes de classes com BDD (Behavior-Driven Development) - DevOp...
 
Criando uma Arquitetura Testável
Criando uma Arquitetura TestávelCriando uma Arquitetura Testável
Criando uma Arquitetura Testável
 
Microsoft Azure Overview
Microsoft Azure OverviewMicrosoft Azure Overview
Microsoft Azure Overview
 
Cmg falando de testes de desempenho
Cmg falando de testes de desempenhoCmg falando de testes de desempenho
Cmg falando de testes de desempenho
 
Metralhando sua API
Metralhando sua APIMetralhando sua API
Metralhando sua API
 

Qualidade de Software em Micro Serviços