• Nenhum resultado encontrado

TESTANDO ARQUITETURAS DE MICRO-SERVIÇOS

N/A
N/A
Protected

Academic year: 2021

Share "TESTANDO ARQUITETURAS DE MICRO-SERVIÇOS"

Copied!
109
0
0

Texto

(1)

TESTANDO

ARQUITETURAS DE

MICRO-SERVIÇOS

(2)
(3)

#TWnaMTC2015

(4)
(5)

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

(6)

DEFINIÇÃO

“Micro-serviços são

pequenos

,

autônomos

serviços que

trabalham em

conjunto

"

(7)

PEQUENOS

Focados em fazer apenas uma coisa

bem feita!

(8)

AUTÔNOMOS

Podem ser modificados independente um dos outros. E podem ser implantados sem demandar mudanças em

(9)

ESTOU FAZENDO CORRETAMENTE?

É possível mudar um serviço e

implantá-lo sem efeitos colaterais em

outros serviços?

(10)

VANTAGENS DAS

ARQUITETURAS DE

MICRO-SERVIÇOS

(11)

HETEROGENEIDADE TECNOLÓGICA

A tecnologia correta para cada

problema

POSTS

(12)

RESILIÊNCIA

Podemos construir sistemas capazes de lidar com falhas totais de serviços e apenas degradar apropriadamente

(13)

ESCALAR

PICTURES POSTS

(14)

FACILIDADE DE IMPLANTAÇÃO

Implantações são mais rápidas e

independentes. Os problemas podem

ser isolados mais facilmente.

(15)

ALINHAMENTO ORGANIZACIONAL

INVOICING SERVICE

Times e repositórios de código

menores!

(16)
(17)

COMPONIBILIDADE E SUBSTITUIBILIDADE

(18)

COMPONIBILIDADE E SUBSTITUIBILIDADE

MONOLITHIC ECOM SYSTEM

PROFILE MODULE

(19)

COMPONIBILIDADE E SUBSTITUIBILIDADE

MONOLITHIC ECOM SYSTEM

PROFILE MODULE

(20)

COMPONIBILIDADE E SUBSTITUIBILIDADE

MONOLITHIC ECOM SYSTEM

PROFILE MODULE

(21)

COMPONIBILIDADE E SUBSTITUIBILIDADE

MONOLITHIC ECOM SYSTEM

PROFILE MODULE

New Point of Sale

(22)

COMPONIBILIDADE E SUBSTITUIBILIDADE

MONOLITHIC ECOM SYSTEM

PROFILE MODULE

New Point of Sale

HTTPS

(23)

COMPONIBILIDADE E SUBSTITUIBILIDADE

MONOLITHIC ECOM SYSTEM

PROFILE MODULE

New Point of Sale

HTTPS

HTTP

(24)
(25)
(26)

MONOLÍTICOS PRIMEIRO…

(27)
(28)

TEST AUTOMATION

CLOSER TO THE USER CLOSER TO THE DEVELOPER $$$ SLOWER / FEWER $ FASTER / MORE USER JOURNEY UI INTEGRATION UNIT

Connection 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

(29)

CÓDIGO Unit, Integration, end to end tests, smoke PRODUÇÃO

tests, etc..

(30)

COMO ISSO SE

APLICA AS

ARQUITETURAS DE

MICRO-SERVIÇOS ?

(31)
(32)

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)

(33)
(34)

TESTES DE COMPONENTE - IN PROCESS

27

(35)
(36)

TESTES DE COMPONENTE - COMO SIMULAR SERVIÇOS EXTERNOS ?

mountebank - over the

wire test doubles

(37)
(38)

TESTES DE COMPONENTE - COMO SIMULAR SERVIÇOS EXTERNOS ?

(39)

TESTES DE COMPONENTE - COMO SIMULAR SERVIÇOS EXTERNOS ?

teste

(40)

TESTES DE COMPONENTE - COMO SIMULAR SERVIÇOS EXTERNOS ?

teste

(41)

TESTES DE COMPONENTE - COMO SIMULAR SERVIÇOS EXTERNOS ?

teste

(42)

TESTES DE COMPONENTE - COMO SIMULAR SERVIÇOS EXTERNOS ? teste SMTP TCP IMPOSTOR HTTP Configura os impostores

(43)

TESTES DE COMPONENTE - COMO SIMULAR SERVIÇOS EXTERNOS ? teste SUA APLICAÇÃO SMTP TCP IMPOSTOR HTTP Configura os impostores

(44)

TESTES DE COMPONENTE - COMO SIMULAR SERVIÇOS EXTERNOS ? teste SUA APLICAÇÃO SMTP TCP IMPOSTOR HTTP Configura os impostores

(45)
(46)

TESTES DE COMPONENTE - PROBLEMAS COM STUBS

SUA APLICAÇÃO IMPOSTOR

(47)

TESTES DE COMPONENTE - PROBLEMAS COM STUBS

SERVIÇO REAL EM CONSTANTE

MUDANÇA

SUA APLICAÇÃO IMPOSTOR

(48)

TESTES DE COMPONENTE - PROBLEMAS COM STUBS

SERVIÇO REAL EM CONSTANTE

MUDANÇA

SUA APLICAÇÃO IMPOSTOR

(49)

TESTES DE COMPONENTE - PROBLEMAS COM STUBS

SERVIÇO REAL EM CONSTANTE

MUDANÇA

SUA APLICAÇÃO IMPOSTOR

Test

SE TORNA INVÁLIDO!!

(50)

TESTES DE COMPONENTE - PROBLEMAS COM STUBS

SERVIÇO REAL EM CONSTANTE

MUDANÇA

SUA APLICAÇÃO IMPOSTOR

Test

SE TORNA INVÁLIDO!!

(51)

TESTES DE COMPONENTE - PROBLEMAS COM STUBS SERVIÇO REAL EM CONSTANTE MUDANÇA BECOMES INVALID!

SUA APLICAÇÃO IMPOSTOR

Test

SE TORNA INVÁLIDO!!

(52)

TESTES DE COMPONENTE - PROBLEMAS COM STUBS SERVIÇO REAL EM CONSTANTE MUDANÇA BECOMES INVALID!

SUA APLICAÇÃO IMPOSTOR

Test

SE TORNA INVÁLIDO!!

(53)

TESTES DE COMPONENTE - PROBLEMAS COM STUBS SERVIÇO REAL EM CONSTANTE MUDANÇA BECOMES INVALID!

SUA APLICAÇÃO IMPOSTOR

Test

SE TORNA INVÁLIDO!!

(54)

TESTES DE COMPONENTE - PROBLEMAS COM STUBS SERVIÇO REAL EM CONSTANTE MUDANÇA BECOMES INVALID!

SUA APLICAÇÃO IMPOSTOR

Test

SE TORNA INVÁLIDO!!

(55)

TESTES DE COMPONENTE - PROBLEMAS COM STUBS SERVIÇO REAL EM CONSTANTE MUDANÇA BECOMES INVALID!

SUA APLICAÇÃO IMPOSTOR

Test

SE TORNA INVÁLIDO!!

(56)

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!!

(57)

TESTES DE CONTRATO

SERVIÇO REAL EM CONSTANTE

(58)

CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS)

(59)

CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA

(60)

CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA CI PIPELINE DO SERVIÇO

(61)

CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA CI PIPELINE DO SERVIÇO

(62)

CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT CI PIPELINE DO SERVIÇO

(63)

CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION CI PIPELINE DO SERVIÇO

(64)

CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CI PIPELINE DO SERVIÇO

(65)

CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO

(66)

CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO

(67)

CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO

(68)

CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO

(69)

CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO

(70)

CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO

(71)

CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO

(72)

CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO

(73)

CONTRATOS GUIADOS POR CONSUMIDORES (CONSUMER DRIVEN CONTRACTS) 33 SERVIÇO REAL EM CONSTANTE MUDANÇA UNIT INTEGRATION COMPONENT CONTRACT CI PIPELINE DO SERVIÇO

(74)

CONSUMER DRIVEN CONTRACTS - IMPLEMENTAÇÕES

(75)
(76)
(77)

TESTES PONTA A PONTA - CAIXA PRETA 1 4 2 5 7

(78)

TESTES PONTA A PONTA - CAIXA PRETA 1 4 2 3 5 6 7 8

(79)

TESTES PONTA A PONTA - CAIXA PRETA 1 4 2 5 7

(80)

TESTES PONTA A PONTA - CAIXA PRETA 1 4 2 3 5 6 7 8 BOA SORTE!

(81)

TESTES DE PONTA A PONTA EM ARQUITETURAS DE MICRO-SERVIÇOS

Escreva o menor número de testes

ponta a ponta possível!

(82)

TESTES DE PONTA A PONTA EM ARQUITETURAS DE MICRO-SERVIÇOS

(83)

TESTES DE PONTA A PONTA EM ARQUITETURAS DE MICRO-SERVIÇOS

Certifique-se que seus testes ponta a

ponta são

independente de dados

(84)

CI PIPELINE - FEEDBACK RÁPIDO VS CUSTO

UNIT INTEGRATION CONTRACT

(85)
(86)

FALAMOS SOBRE TODA A PIRÂMIDE - ACABAMOS?

(87)

FALAMOS SOBRE TODA A PIRÂMIDE - ACABAMOS?

Não.

(88)

TESTANDO EM PRODUÇÃO

Diferenciar

Implantação

de

Release

BLUE GREEN

(89)

TESTANDO EM PRODUÇÃO

Diferenciar

Implantação

de

Release

BLUE GREEN

(90)

TESTANDO EM PRODUÇÃO

Diferenciar

Implantação

de

Release

BLUE GREEN

DEPLOYMENT

SERVICE V1

(91)

TESTANDO EM PRODUÇÃO

Diferenciar

Implantação

de

Release

BLUE GREEN

DEPLOYMENT

SERVICE V1

(92)

TESTANDO EM PRODUÇÃO

Diferenciar

Implantação

de

Release

BLUE GREEN DEPLOYMENT SERVICE V1 SERVICE V2

(93)

TESTANDO EM PRODUÇÃO

Diferenciar

Implantação

de

Release

BLUE GREEN

DEPLOYMENT

SERVICE V1

(94)

TESTANDO EM PRODUÇÃO

Diferenciar

Implantação

de

Release

BLUE GREEN DEPLOYMENT SERVICE V1 SERVICE V2

(95)

TESTANDO EM PRODUÇÃO

Diferenciar

Implantação

de

Release

BLUE GREEN

DEPLOYMENT

SERVICE V1

(96)
(97)
(98)
(99)

CANARY RELEASE

SERVICE V1

(100)

CANARY RELEASE

SERVICE V1

(101)

CANARY RELEASE

SERVICE V1

SERVICE V2

(102)

CANARY RELEASE

SERVICE V1

SERVICE V2

(103)

CANARY RELEASE

SERVICE V1

SERVICE V2

(104)

CANARY RELEASE

SERVICE V1

SERVICE V2

(105)

CANARY RELEASE SERVICE V1 SERVICE V2 15% 85%

(106)

TEMPO MÉDIO PARA SE RECUPERAR

Não há dúvidas que os testes reduzem a quantidade de defeitos, mas é importante reconhecer que eles

(107)
(108)

FALAMOS SOBRE

microservices

meanTimeToRecover

canaryRelease

blueGreenDeploy

CIPipelines testAutomation

testJourneys

consumerDrivenContracts

contractTests

componentTests

mountebank

pact

noSilverBullet

technologyHeterogeneity

resilience

scaling

easeOfDeployment

(109)

Referências

Documentos relacionados