TESTANDO
ARQUITETURAS DE
MICRO-SERVIÇOS
#TWnaMTC2015
1. O que são micro-serviços?
2. Vantagens e Desvantagens das arquiteturas de micro-serviços 3. Testando arquiteturas de micro-serviços
DEFINIÇÃO
“Micro-serviços são
pequenos
,
autônomos
serviços que
trabalham em
conjunto
"
PEQUENOS
Focados em fazer apenas uma coisa
bem feita!
AUTÔNOMOS
Podem ser modificados independente um dos outros. E podem ser implantados sem demandar mudanças em
ESTOU FAZENDO CORRETAMENTE?
É possível mudar um serviço e
implantá-lo sem efeitos colaterais em
outros serviços?
VANTAGENS DAS
ARQUITETURAS DE
MICRO-SERVIÇOS
HETEROGENEIDADE TECNOLÓGICA
A tecnologia correta para cada
problema
POSTS
RESILIÊNCIA
Podemos construir sistemas capazes de lidar com falhas totais de serviços e apenas degradar apropriadamente
ESCALAR
PICTURES POSTS
FACILIDADE DE IMPLANTAÇÃO
Implantações são mais rápidas e
independentes. Os problemas podem
ser isolados mais facilmente.
ALINHAMENTO ORGANIZACIONAL
INVOICING SERVICE
Times e repositórios de código
menores!
COMPONIBILIDADE E SUBSTITUIBILIDADE
COMPONIBILIDADE E SUBSTITUIBILIDADE
MONOLITHIC ECOM SYSTEM
PROFILE MODULE
COMPONIBILIDADE E SUBSTITUIBILIDADE
MONOLITHIC ECOM SYSTEM
PROFILE MODULE
COMPONIBILIDADE E SUBSTITUIBILIDADE
MONOLITHIC ECOM SYSTEM
PROFILE MODULE
COMPONIBILIDADE E SUBSTITUIBILIDADE
MONOLITHIC ECOM SYSTEM
PROFILE MODULE
New Point of Sale
COMPONIBILIDADE E SUBSTITUIBILIDADE
MONOLITHIC ECOM SYSTEM
PROFILE MODULE
New Point of Sale
HTTPS
COMPONIBILIDADE E SUBSTITUIBILIDADE
MONOLITHIC ECOM SYSTEM
PROFILE MODULE
New Point of Sale
HTTPS
HTTP
MONOLÍTICOS PRIMEIRO…
TEST AUTOMATION
CLOSER TO THE USER CLOSER TO THE DEVELOPER $$$ SLOWER / FEWER $ FASTER / MORE USER JOURNEY UI INTEGRATION UNITConnection of UI tests to a persona like flow through the system
Testing on the level of the users - incl. browser, network, databases, external systems, …
Tests of multiple integrated method
CÓDIGO Unit, Integration, end to end tests, smoke PRODUÇÃO
tests, etc..
COMO ISSO SE
APLICA AS
ARQUITETURAS DE
MICRO-SERVIÇOS ?
TESTES UNITÁRIOS EM MICRO-SERVIÇOS
25 Domain - Devemos focar em
testar o comportamento, observando mudanças de
estado.
Gateways, Resources and Persistence - Devemos focar
em testar as interações e colaborações (Mocks, test
doubles)
TESTES DE COMPONENTE - IN PROCESS
27
TESTES DE COMPONENTE - COMO SIMULAR SERVIÇOS EXTERNOS ?
mountebank - over the
wire test doubles
TESTES DE COMPONENTE - COMO SIMULAR SERVIÇOS EXTERNOS ?
TESTES DE COMPONENTE - COMO SIMULAR SERVIÇOS EXTERNOS ?
teste
TESTES DE COMPONENTE - COMO SIMULAR SERVIÇOS EXTERNOS ?
teste
TESTES DE COMPONENTE - COMO SIMULAR SERVIÇOS EXTERNOS ?
teste
TESTES DE COMPONENTE - COMO SIMULAR SERVIÇOS EXTERNOS ? teste SMTP TCP IMPOSTOR HTTP Configura os impostores
TESTES DE COMPONENTE - COMO SIMULAR SERVIÇOS EXTERNOS ? teste SUA APLICAÇÃO SMTP TCP IMPOSTOR HTTP Configura os impostores
TESTES DE COMPONENTE - COMO SIMULAR SERVIÇOS EXTERNOS ? teste SUA APLICAÇÃO SMTP TCP IMPOSTOR HTTP Configura os impostores
TESTES DE COMPONENTE - PROBLEMAS COM STUBS
SUA APLICAÇÃO IMPOSTOR
TESTES DE COMPONENTE - PROBLEMAS COM STUBS
SERVIÇO REAL EM CONSTANTE
MUDANÇA
SUA APLICAÇÃO IMPOSTOR
TESTES DE COMPONENTE - PROBLEMAS COM STUBS
SERVIÇO REAL EM CONSTANTE
MUDANÇA
SUA APLICAÇÃO IMPOSTOR
TESTES DE COMPONENTE - PROBLEMAS COM STUBS
SERVIÇO REAL EM CONSTANTE
MUDANÇA
SUA APLICAÇÃO IMPOSTOR
Test
SE TORNA INVÁLIDO!!
TESTES DE COMPONENTE - PROBLEMAS COM STUBS
SERVIÇO REAL EM CONSTANTE
MUDANÇA
SUA APLICAÇÃO IMPOSTOR
Test
SE TORNA INVÁLIDO!!
TESTES DE COMPONENTE - PROBLEMAS COM STUBS SERVIÇO REAL EM CONSTANTE MUDANÇA BECOMES INVALID!
SUA APLICAÇÃO IMPOSTOR
Test
SE TORNA INVÁLIDO!!
TESTES DE COMPONENTE - PROBLEMAS COM STUBS SERVIÇO REAL EM CONSTANTE MUDANÇA BECOMES INVALID!
SUA APLICAÇÃO IMPOSTOR
Test
SE TORNA INVÁLIDO!!
TESTES DE COMPONENTE - PROBLEMAS COM STUBS SERVIÇO REAL EM CONSTANTE MUDANÇA BECOMES INVALID!
SUA APLICAÇÃO IMPOSTOR
Test
SE TORNA INVÁLIDO!!
TESTES DE COMPONENTE - PROBLEMAS COM STUBS SERVIÇO REAL EM CONSTANTE MUDANÇA BECOMES INVALID!
SUA APLICAÇÃO IMPOSTOR
Test
SE TORNA INVÁLIDO!!
TESTES DE COMPONENTE - PROBLEMAS COM STUBS SERVIÇO REAL EM CONSTANTE MUDANÇA BECOMES INVALID!
SUA APLICAÇÃO IMPOSTOR
Test
SE TORNA INVÁLIDO!!
TESTES DE COMPONENTE - PROBLEMAS COM STUBS
SERVIÇO REAL EM CONSTANTE
MUDANÇA
SUPOSIÇÕES - Quão frequentemente você altera seus testes e stubs ? BECOMES
INVALID!
SUA APLICAÇÃO IMPOSTOR
Test
SE TORNA INVÁLIDO!!
TESTES DE CONTRATO
SERVIÇO REAL EM CONSTANTE
CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS)
CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA
CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA CI PIPELINE DO SERVIÇO
CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA CI PIPELINE DO SERVIÇO
CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT CI PIPELINE DO SERVIÇO
CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION CI PIPELINE DO SERVIÇO
CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CI PIPELINE DO SERVIÇO
CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO
CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO
CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO
CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO
CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO
CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO
CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO
CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO
CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO
CONSUMER DRIVEN CONTRACTS - IMPLEMENTAÇÕES
TESTES PONTA A PONTA - CAIXA PRETA 1 4 2 5 7
TESTES PONTA A PONTA - CAIXA PRETA 1 4 2 3 5 6 7 8
TESTES PONTA A PONTA - CAIXA PRETA 1 4 2 5 7
TESTES PONTA A PONTA - CAIXA PRETA 1 4 2 3 5 6 7 8 BOA SORTE!
TESTES DE PONTA A PONTA EM ARQUITETURAS DE MICRO-SERVIÇOS
Escreva o menor número de testes
ponta a ponta possível!
TESTES DE PONTA A PONTA EM ARQUITETURAS DE MICRO-SERVIÇOS
TESTES DE PONTA A PONTA EM ARQUITETURAS DE MICRO-SERVIÇOS
Certifique-se que seus testes ponta a
ponta são
independente de dados
CI PIPELINE - FEEDBACK RÁPIDO VS CUSTO
UNIT INTEGRATION CONTRACT
FALAMOS SOBRE TODA A PIRÂMIDE - ACABAMOS?
FALAMOS SOBRE TODA A PIRÂMIDE - ACABAMOS?
Não.
TESTANDO EM PRODUÇÃO
Diferenciar
Implantação
de
Release
BLUE GREEN
TESTANDO EM PRODUÇÃO
Diferenciar
Implantação
de
Release
BLUE GREEN
TESTANDO EM PRODUÇÃO
Diferenciar
Implantação
de
Release
BLUE GREEN
DEPLOYMENT
SERVICE V1
TESTANDO EM PRODUÇÃO
Diferenciar
Implantação
de
Release
BLUE GREEN
DEPLOYMENT
SERVICE V1
TESTANDO EM PRODUÇÃO
Diferenciar
Implantação
de
Release
BLUE GREEN DEPLOYMENT SERVICE V1 SERVICE V2
TESTANDO EM PRODUÇÃO
Diferenciar
Implantação
de
Release
BLUE GREEN
DEPLOYMENT
SERVICE V1
TESTANDO EM PRODUÇÃO
Diferenciar
Implantação
de
Release
BLUE GREEN DEPLOYMENT SERVICE V1 SERVICE V2
TESTANDO EM PRODUÇÃO
Diferenciar
Implantação
de
Release
BLUE GREEN
DEPLOYMENT
SERVICE V1
CANARY RELEASE
SERVICE V1
CANARY RELEASE
SERVICE V1
CANARY RELEASE
SERVICE V1
SERVICE V2
CANARY RELEASE
SERVICE V1
SERVICE V2
CANARY RELEASE
SERVICE V1
SERVICE V2
CANARY RELEASE
SERVICE V1
SERVICE V2
CANARY RELEASE SERVICE V1 SERVICE V2 15% 85%
TEMPO MÉDIO PARA SE RECUPERAR
Não há dúvidas que os testes reduzem a quantidade de defeitos, mas é importante reconhecer que eles
FALAMOS SOBRE