SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
B e m - v i n d o s
ANÁLISE EFETIVA DE
MICROSSERVIÇOS EM 3 PASSOS
Taíse Dias da Silva
BACKGROUND
2
Testes de software
20092006
Ciência da Computação, UFPE
Metodologias ágeis
Web services
2013
Times distribuídos
Microsserviços
2014
Análise de
Microsserviços em
times distribuídos
FALAREMOS SOBRE
3
Análise
Microsserviços
Contexto & Desafios
3 passos para análise
4
ANÁLISE
Fonte: The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan.
O QUE É FAZER ANÁLISE?
5
“Deixa que a gente se preocupa
com os detalhes.”
Conta com
a gente pra
fazermos nossa
tarefa de casa,
pra toda e cada
iteração!
Ajudar a definir histórias do usuário
Fazer a análise detalhada
Garantir que fizemos nosso
trabalho
Sei o que
quero, mas como
descrevo isso?
Fazer web site
3 meses
Artefatos de análise
O que? Por quê? Pra quem?
HISTÓRIA DO USUÁRIO
6
Como palestrante do MTC que não mora
em BH
Eu quero listar nome, preço e localização
de hotéis de BH disponíveis em 18 de
junho
Para que eu possa escolher um hotel
perto do local do evento
I
N
V
E
S
T
Independente
Negociável
Valiosa
Estimável
Pequena (small)
Testável
Interface com o usuário (HTML, CSS)
Camada do meio (C#, Java, Python)
Camada de dados (Oracle, SQL Server)
Fonte: The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan.
BACKLOG
▫︎Conjunto das histórias para features do produto
▫︎Geralmente com épicos que agrupam histórias de
mesma área do domínio
▫︎Exemplo de épico: cadastro de cliente
▫︎Cadastro manual: nome, email, etc.
▫︎Cadastro via facebook
7
E quando as histórias são
implementadas por microsserviços?
8
9
MICROSSERVIÇOS
O QUE SÃO MICROSSERVIÇOS?
10
Arquitetura monolítica: várias features
em um único executável
Arquitetura de microsserviços: conjunto
de serviços, cada um sendo um executável
e responsável por uma feature
Problemas:
-Implantação de uma feature requer
implantação de todas
-Difícil de manter a modularização
-Escalar horizontalmente requer mais
infra
Soluções:
-Implantação de uma feature
independente de outras
-Comunicação simples, protege
módulos
-Escalar horizontalmente requer
menos infra
BOAS PRÁTICAS
▫︎Testes automatizados em todos os níveis
▫︎Unitários, integração, contratos, jornadas de usuários
▫︎Integração contínua
▫︎Implantação automatizada
▫︎Monitoração
▫︎Times cuidando de feature
▫︎Times mantendo os microsserviços independentes
11
Mas e quando não se consegue adotar
todas as boas práticas?
12
13
CONTEXTO &
DESAFIOS
ORGANIZAÇÃO DOS TIMES
14
Versus
Produto'B'
Web$Service$A$
Produto'A'
Web$Service$B$
Portal$
Web$Service$C$ Web$Service$D$
Time'4'Time'3'
Aplicação$$$$$Cliente$
Time'2'
Time'1'
Produto'B'
Web$Service$A$
Produto'A'
Web$Service$B$
Portal$
Web$Service$C$ Web$Service$D$
Time'4'Time'3'
Aplicação$$$$$Cliente$
Time'2'Time'1'
ORGANIZAÇÃO DO BACKLOG
15
Produto'B'
Web$Service$A$
Produto'A'
Web$Service$B$
Portal$
Web$Service$C$ Web$Service$D$
Backlog'4'Backlog'3'
Aplicação$$$$$Cliente$
Backlog'2'
Backlog'1'
Produto'B'
Web$Service$A$
Produto'A'
Web$Service$B$
Portal$
Web$Service$C$ Web$Service$D$
Backlog'4'Backlog'3'
Aplicação$$$$$Cliente$
Backlog'2'Backlog'1'
Versus
V
DESAFIOS
▫︎Quando times perdem a visão do todo
▫︎Escopo das histórias delimitado por endpoints
▫︎Pode perder o benefício das características INVEST
16
I
T
dependentes das histórias do cliente
endpoints podem ser são features incompletas
usuários não testam endpoints
DESAFIOS
▫︎Quando times ficam bloqueados por dependência em
histórias de outros times
▫︎Difícil de alinhar prioridades entre times
▫︎Time do cliente dependendo do time de serviços
▫︎Velocidades por histórias em vez de por features
podem dar uma falsa visão de progresso
17
DESAFIOS
▫︎Quando demora pra surgirem problemas de integrações
▫︎mau funcionamento do produto
▫︎pode atrasar ou abortar entregas
18
TIMES DISTRIBUÍDOS
19
▫︎Escalando desafios
Como conseguir fazer uma análise
efetiva nesse contexto?
20
21
3 PASSOS PARA ANÁLISE
3 PASSOS PARA ANÁLISE
1. Mapear features em épicos
2. Mapear dependências entre histórias do épico
3. Definir critérios de aceitação para integrações
22
1. MAPEAR FEATURES EM ÉPICOS
▫︎Problema: falta de visão do todo
▫︎Solução: tratar épico como cidadão de primeira classe
▫︎O que? Por quê? Pra quem?
▫︎Usar épico na priorização e velocidade
23
[ÉPICO] Visualizar margem de lucro
Como planejador de compras
Eu preciso saber qual a margem de
lucro do meu plano de compras
Para que eu possa tomar decisões
de planejamento de acordo com
meu orçamento
▫︎Problema: bloqueios por conta de dependências
▫︎Solução: colaborar para identificar quais as capacidades
que cada serviço precisa ter
▫︎Identificar as possíveis dependências entre elas para
que o usuário consiga atingir seu objetivo
▫︎Usar como base a arquitetura definida pelos times
para a feature
▫︎Priorização baseada nas dependências
2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO
24
EXEMPLO
25
[ÉPICO] Visualizar margem de lucro
Como planejador de inventário
Eu preciso saber qual a margem de
lucro do meu plano de compras
Para que eu possa tomar decisões
de planejamento de acordo com
meu orçamento
[Custo] Listar
custo do
produto
[Plano] Calcular
margem de
lucro
[Preço] Listar
preço do
produto
Objetivo do
ponto de vista
do usuário
Histórias de
serviços para
atingir o objetivo
3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES
▫︎Problema: integração causa mau funcionamento dos
produtos e possíveis atrasos de entrega
▫︎Usar jornadas de usuário pra definir critérios de
aceitação no nível de épico
▫︎Considerar os produtos impactados
▫︎Definir critérios de aceitação pros serviços com foco em
regras de negócio, independente de interface
▫︎Feedback mais rápido sobre os problemas de integração
26
EXEMPLO: CRITÉRIO DE ACEITAÇÃO PRO ÉPICO
27
[ÉPICO] Visualizar margem de lucro
Como planejador de inventário
Eu preciso saber qual a margem de
lucro do meu plano de compras
Para que eu possa tomar decisões
de planejamento de acordo com
meu orçamento
Jornada passando por múltiplos
produtos
1. Usuário do produto de gerenciar custo
define o custo do produto
2. Usuário do produto de gerenciar
preços define o preço do produto
3. Planejador acessa produto de plano de
compras do produto e visualiza a
margem de lucro
Teste de sistemas, de ponta a ponta, entre diferentes produtos. Lento pra ser
executado, mas de alto valor de negócio. Deve cobrir jornadas de mais alto nível.
EXEMPLO: CRITÉRIO DE ACEITAÇÃO PRAS HISTÓRIAS
28
Serviço que
gerencia
custo
[Custo] Listar custo do produto
Dado que camisas regatas brancas
pro verão de 2016 custa 2 dólares
Quando eu listo custo de camisa
regata branca do verão de 2016
Então vejo que o custo é 2 dólares
[Preço] Listar preço do produto
Dado que camisas regatas brancas
pro verão de 2016 valem 20 dólares
Quando eu listo preço de camisa
regata branca do verão de 2016
Então vejo que o preço é 20 dólares
Serviço que
gerencia
preço
Serviço que
gerencia
plano
[Lucro] Calcular margem de lucro
Dado que camisas regatas brancas
pro verão de 2016 custam 2 dólares
e valem 20 dólares
Quando eu visualizo a margem de
lucro do meu plano de compras
Então vejo a margem é de 18 dólares
29
RESUMO
RESUMO
Para o contexto em que:
▫︎times distribuídos não são organizados por features
▫︎cuidam de serviços que são utilizados por múltiplos produtos
▫︎não conseguem usar todas as boas práticas pra se trabalhar
com microsserviços
A análise dos microsserviços podem ser feita como segue:
▫︎mapeando features em épicos para os times não perderem a
visão do todo
▫︎mapeando dependências entre histórias de um mesmo épico
pra que um time não fique bloqueado
▫︎planejando critérios de aceitação nos níveis de épicos e
histórias para não agir apenas reativamente aos problemas de
integração
30
Perguntas?
OBRIGADA
@taisedias
github.com/taisedias
linkedin.com/in/taisedias
REFERÊNCIAS
▫︎The Agile Samurai: How Agile Masters Deliver Great
Software. Rasmusson, Jonathan.
▫︎Microservices. Martin Fowler.
▫︎MicroservicePrerequisites. Martin Fowler.
▫︎Microservice trade offs. Martin Fowler.
▫︎Enterprise Integration Using REST. Martin Fowler.
32

Mais conteúdo relacionado

Destaque

Selling Through Online Marketplaces - Advanced
Selling Through Online Marketplaces - AdvancedSelling Through Online Marketplaces - Advanced
Selling Through Online Marketplaces - AdvancedInvest Northern Ireland
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)Júlio de Lima
 
Palestra de como testar sua API Rest no Grupo de Teste Carioca
Palestra de como testar sua API Rest no Grupo de Teste CariocaPalestra de como testar sua API Rest no Grupo de Teste Carioca
Palestra de como testar sua API Rest no Grupo de Teste CariocaFrederico Augusto Do Carmo Moreira
 
Top ten caracteristicas del lider
Top ten caracteristicas del liderTop ten caracteristicas del lider
Top ten caracteristicas del liderBalbino Rodriguez
 
EJERCICIOS DE Excel avanzado
EJERCICIOS DE Excel avanzadoEJERCICIOS DE Excel avanzado
EJERCICIOS DE Excel avanzadoANDREA OCHOA
 
Нехай квітне моя україна,як єдина і мирна сім´я
Нехай квітне моя україна,як єдина і мирна сім´я Нехай квітне моя україна,як єдина і мирна сім´я
Нехай квітне моя україна,як єдина і мирна сім´я Anthony Ivaniuk
 
Agronegócio familiarmg apresentação_2015.05.16
Agronegócio familiarmg apresentação_2015.05.16Agronegócio familiarmg apresentação_2015.05.16
Agronegócio familiarmg apresentação_2015.05.16equipeagroplus
 
"Hackeando el algoritmo: innovación en redes sociales". Presentación del #CW16
"Hackeando el algoritmo: innovación en redes sociales". Presentación del #CW16"Hackeando el algoritmo: innovación en redes sociales". Presentación del #CW16
"Hackeando el algoritmo: innovación en redes sociales". Presentación del #CW16Inma Ferragud
 
Digital Business Transformation: a uberização do futuro Coleção Mundo 3.0
Digital Business Transformation:  a uberização do futuro Coleção Mundo 3.0Digital Business Transformation:  a uberização do futuro Coleção Mundo 3.0
Digital Business Transformation: a uberização do futuro Coleção Mundo 3.0Carlos Nepomuceno (Nepô)
 
Ejercicios Excel 2010
Ejercicios Excel 2010Ejercicios Excel 2010
Ejercicios Excel 2010Ismael Fanlo
 
A transição de um QA tradicional para um Agile Tester
A transição de um QA tradicional para um Agile TesterA transição de um QA tradicional para um Agile Tester
A transição de um QA tradicional para um Agile TesterJéssica Mollo
 
FOTOS CURIOSAS
FOTOS CURIOSASFOTOS CURIOSAS
FOTOS CURIOSAShagi
 
Marketing e Publicidade e Propaganda
Marketing e Publicidade e PropagandaMarketing e Publicidade e Propaganda
Marketing e Publicidade e PropagandaCiro Gusatti
 

Destaque (13)

Selling Through Online Marketplaces - Advanced
Selling Through Online Marketplaces - AdvancedSelling Through Online Marketplaces - Advanced
Selling Through Online Marketplaces - Advanced
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
 
Palestra de como testar sua API Rest no Grupo de Teste Carioca
Palestra de como testar sua API Rest no Grupo de Teste CariocaPalestra de como testar sua API Rest no Grupo de Teste Carioca
Palestra de como testar sua API Rest no Grupo de Teste Carioca
 
Top ten caracteristicas del lider
Top ten caracteristicas del liderTop ten caracteristicas del lider
Top ten caracteristicas del lider
 
EJERCICIOS DE Excel avanzado
EJERCICIOS DE Excel avanzadoEJERCICIOS DE Excel avanzado
EJERCICIOS DE Excel avanzado
 
Нехай квітне моя україна,як єдина і мирна сім´я
Нехай квітне моя україна,як єдина і мирна сім´я Нехай квітне моя україна,як єдина і мирна сім´я
Нехай квітне моя україна,як єдина і мирна сім´я
 
Agronegócio familiarmg apresentação_2015.05.16
Agronegócio familiarmg apresentação_2015.05.16Agronegócio familiarmg apresentação_2015.05.16
Agronegócio familiarmg apresentação_2015.05.16
 
"Hackeando el algoritmo: innovación en redes sociales". Presentación del #CW16
"Hackeando el algoritmo: innovación en redes sociales". Presentación del #CW16"Hackeando el algoritmo: innovación en redes sociales". Presentación del #CW16
"Hackeando el algoritmo: innovación en redes sociales". Presentación del #CW16
 
Digital Business Transformation: a uberização do futuro Coleção Mundo 3.0
Digital Business Transformation:  a uberização do futuro Coleção Mundo 3.0Digital Business Transformation:  a uberização do futuro Coleção Mundo 3.0
Digital Business Transformation: a uberização do futuro Coleção Mundo 3.0
 
Ejercicios Excel 2010
Ejercicios Excel 2010Ejercicios Excel 2010
Ejercicios Excel 2010
 
A transição de um QA tradicional para um Agile Tester
A transição de um QA tradicional para um Agile TesterA transição de um QA tradicional para um Agile Tester
A transição de um QA tradicional para um Agile Tester
 
FOTOS CURIOSAS
FOTOS CURIOSASFOTOS CURIOSAS
FOTOS CURIOSAS
 
Marketing e Publicidade e Propaganda
Marketing e Publicidade e PropagandaMarketing e Publicidade e Propaganda
Marketing e Publicidade e Propaganda
 

Semelhante a MTC_2016-analise_efetiva_de_microsservicos

Controlando o Ciclo de Software e porque você deveria usar o VSTS
Controlando o Ciclo de Software e porque você deveria usar o VSTSControlando o Ciclo de Software e porque você deveria usar o VSTS
Controlando o Ciclo de Software e porque você deveria usar o VSTSRodrigo Kono
 
Requisitos no Processo Iterativo
Requisitos no Processo IterativoRequisitos no Processo Iterativo
Requisitos no Processo IterativoFatec
 
GSAN: Reunião do Comitê Gestor Mai/15
GSAN: Reunião do Comitê Gestor Mai/15GSAN: Reunião do Comitê Gestor Mai/15
GSAN: Reunião do Comitê Gestor Mai/15Consenso Tecnologia
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservicestdc-globalcode
 
TheDevConf 2016 - Análise efetiva de microservices em 3 passos
TheDevConf 2016 - Análise efetiva de microservices em 3 passosTheDevConf 2016 - Análise efetiva de microservices em 3 passos
TheDevConf 2016 - Análise efetiva de microservices em 3 passosTaise Dias da Silva
 
Best2bee Business Model
Best2bee Business ModelBest2bee Business Model
Best2bee Business ModelMiguel Vilaca
 
[GetNinjas] Business Intelligence Workshop @ Google Campus SP
[GetNinjas] Business Intelligence Workshop @ Google Campus SP[GetNinjas] Business Intelligence Workshop @ Google Campus SP
[GetNinjas] Business Intelligence Workshop @ Google Campus SPBernardo Srulzon
 
TDC2016SP - Trilha UX Design
TDC2016SP - Trilha UX DesignTDC2016SP - Trilha UX Design
TDC2016SP - Trilha UX Designtdc-globalcode
 
Cloud, já migrei e agora?
Cloud, já migrei e agora?Cloud, já migrei e agora?
Cloud, já migrei e agora?Sara Barbosa
 
Testes automatizados com alto valor de negócio e baixo custo de manutenção
Testes automatizados com alto valor de negócio e baixo custo de manutençãoTestes automatizados com alto valor de negócio e baixo custo de manutenção
Testes automatizados com alto valor de negócio e baixo custo de manutençãoTaise Dias da Silva
 
Intensivo de UX para Agências e Startups
Intensivo de UX para Agências e Startups Intensivo de UX para Agências e Startups
Intensivo de UX para Agências e Startups Tuia
 
Estruturando time, dados e processos para tomar decisões de produto mais inte...
Estruturando time, dados e processos para tomar decisões de produto mais inte...Estruturando time, dados e processos para tomar decisões de produto mais inte...
Estruturando time, dados e processos para tomar decisões de produto mais inte...Product Camp Brasil
 
Continuous Delivery com TFS e Release Management for Visual Studio 2013
Continuous Delivery com TFS e Release Management for Visual Studio 2013Continuous Delivery com TFS e Release Management for Visual Studio 2013
Continuous Delivery com TFS e Release Management for Visual Studio 2013André Dias
 
Workshop SLA Aplicado aos Negócios
Workshop SLA Aplicado aos NegóciosWorkshop SLA Aplicado aos Negócios
Workshop SLA Aplicado aos NegóciosCompanyWeb
 
Gostar de métricas é melhor do que não gostar de métricas
Gostar de métricas é melhor do que não gostar de métricasGostar de métricas é melhor do que não gostar de métricas
Gostar de métricas é melhor do que não gostar de métricasWill Sertório
 
MVP ShowCast IT Produtividade e colaboração Construindo indicadores e dashboa...
MVP ShowCast IT Produtividade e colaboração Construindo indicadores e dashboa...MVP ShowCast IT Produtividade e colaboração Construindo indicadores e dashboa...
MVP ShowCast IT Produtividade e colaboração Construindo indicadores e dashboa...Carlos Carvalho Citrangulo Junior
 
TESTE TESTE TESTE.pptx
TESTE TESTE TESTE.pptxTESTE TESTE TESTE.pptx
TESTE TESTE TESTE.pptxkiara106494
 
Analista de Negócios & Gestão de Requisitos via Web
Analista de Negócios & Gestão de Requisitos via WebAnalista de Negócios & Gestão de Requisitos via Web
Analista de Negócios & Gestão de Requisitos via WebCompanyWeb
 
Logística, transporte, infra-estrutura e aspectos gerais do setor de base flo...
Logística, transporte, infra-estrutura e aspectos gerais do setor de base flo...Logística, transporte, infra-estrutura e aspectos gerais do setor de base flo...
Logística, transporte, infra-estrutura e aspectos gerais do setor de base flo...Instituto Besc
 

Semelhante a MTC_2016-analise_efetiva_de_microsservicos (20)

Controlando o Ciclo de Software e porque você deveria usar o VSTS
Controlando o Ciclo de Software e porque você deveria usar o VSTSControlando o Ciclo de Software e porque você deveria usar o VSTS
Controlando o Ciclo de Software e porque você deveria usar o VSTS
 
Requisitos no Processo Iterativo
Requisitos no Processo IterativoRequisitos no Processo Iterativo
Requisitos no Processo Iterativo
 
AWS re:Invent 2019
AWS re:Invent 2019AWS re:Invent 2019
AWS re:Invent 2019
 
GSAN: Reunião do Comitê Gestor Mai/15
GSAN: Reunião do Comitê Gestor Mai/15GSAN: Reunião do Comitê Gestor Mai/15
GSAN: Reunião do Comitê Gestor Mai/15
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservices
 
TheDevConf 2016 - Análise efetiva de microservices em 3 passos
TheDevConf 2016 - Análise efetiva de microservices em 3 passosTheDevConf 2016 - Análise efetiva de microservices em 3 passos
TheDevConf 2016 - Análise efetiva de microservices em 3 passos
 
Best2bee Business Model
Best2bee Business ModelBest2bee Business Model
Best2bee Business Model
 
[GetNinjas] Business Intelligence Workshop @ Google Campus SP
[GetNinjas] Business Intelligence Workshop @ Google Campus SP[GetNinjas] Business Intelligence Workshop @ Google Campus SP
[GetNinjas] Business Intelligence Workshop @ Google Campus SP
 
TDC2016SP - Trilha UX Design
TDC2016SP - Trilha UX DesignTDC2016SP - Trilha UX Design
TDC2016SP - Trilha UX Design
 
Cloud, já migrei e agora?
Cloud, já migrei e agora?Cloud, já migrei e agora?
Cloud, já migrei e agora?
 
Testes automatizados com alto valor de negócio e baixo custo de manutenção
Testes automatizados com alto valor de negócio e baixo custo de manutençãoTestes automatizados com alto valor de negócio e baixo custo de manutenção
Testes automatizados com alto valor de negócio e baixo custo de manutenção
 
Intensivo de UX para Agências e Startups
Intensivo de UX para Agências e Startups Intensivo de UX para Agências e Startups
Intensivo de UX para Agências e Startups
 
Estruturando time, dados e processos para tomar decisões de produto mais inte...
Estruturando time, dados e processos para tomar decisões de produto mais inte...Estruturando time, dados e processos para tomar decisões de produto mais inte...
Estruturando time, dados e processos para tomar decisões de produto mais inte...
 
Continuous Delivery com TFS e Release Management for Visual Studio 2013
Continuous Delivery com TFS e Release Management for Visual Studio 2013Continuous Delivery com TFS e Release Management for Visual Studio 2013
Continuous Delivery com TFS e Release Management for Visual Studio 2013
 
Workshop SLA Aplicado aos Negócios
Workshop SLA Aplicado aos NegóciosWorkshop SLA Aplicado aos Negócios
Workshop SLA Aplicado aos Negócios
 
Gostar de métricas é melhor do que não gostar de métricas
Gostar de métricas é melhor do que não gostar de métricasGostar de métricas é melhor do que não gostar de métricas
Gostar de métricas é melhor do que não gostar de métricas
 
MVP ShowCast IT Produtividade e colaboração Construindo indicadores e dashboa...
MVP ShowCast IT Produtividade e colaboração Construindo indicadores e dashboa...MVP ShowCast IT Produtividade e colaboração Construindo indicadores e dashboa...
MVP ShowCast IT Produtividade e colaboração Construindo indicadores e dashboa...
 
TESTE TESTE TESTE.pptx
TESTE TESTE TESTE.pptxTESTE TESTE TESTE.pptx
TESTE TESTE TESTE.pptx
 
Analista de Negócios & Gestão de Requisitos via Web
Analista de Negócios & Gestão de Requisitos via WebAnalista de Negócios & Gestão de Requisitos via Web
Analista de Negócios & Gestão de Requisitos via Web
 
Logística, transporte, infra-estrutura e aspectos gerais do setor de base flo...
Logística, transporte, infra-estrutura e aspectos gerais do setor de base flo...Logística, transporte, infra-estrutura e aspectos gerais do setor de base flo...
Logística, transporte, infra-estrutura e aspectos gerais do setor de base flo...
 

MTC_2016-analise_efetiva_de_microsservicos

  • 1. B e m - v i n d o s ANÁLISE EFETIVA DE MICROSSERVIÇOS EM 3 PASSOS Taíse Dias da Silva
  • 2. BACKGROUND 2 Testes de software 20092006 Ciência da Computação, UFPE Metodologias ágeis Web services 2013 Times distribuídos Microsserviços 2014 Análise de Microsserviços em times distribuídos
  • 3. FALAREMOS SOBRE 3 Análise Microsserviços Contexto & Desafios 3 passos para análise
  • 5. Fonte: The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan. O QUE É FAZER ANÁLISE? 5 “Deixa que a gente se preocupa com os detalhes.” Conta com a gente pra fazermos nossa tarefa de casa, pra toda e cada iteração! Ajudar a definir histórias do usuário Fazer a análise detalhada Garantir que fizemos nosso trabalho Sei o que quero, mas como descrevo isso? Fazer web site 3 meses Artefatos de análise
  • 6. O que? Por quê? Pra quem? HISTÓRIA DO USUÁRIO 6 Como palestrante do MTC que não mora em BH Eu quero listar nome, preço e localização de hotéis de BH disponíveis em 18 de junho Para que eu possa escolher um hotel perto do local do evento I N V E S T Independente Negociável Valiosa Estimável Pequena (small) Testável Interface com o usuário (HTML, CSS) Camada do meio (C#, Java, Python) Camada de dados (Oracle, SQL Server) Fonte: The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan.
  • 7. BACKLOG ▫︎Conjunto das histórias para features do produto ▫︎Geralmente com épicos que agrupam histórias de mesma área do domínio ▫︎Exemplo de épico: cadastro de cliente ▫︎Cadastro manual: nome, email, etc. ▫︎Cadastro via facebook 7
  • 8. E quando as histórias são implementadas por microsserviços? 8
  • 10. O QUE SÃO MICROSSERVIÇOS? 10 Arquitetura monolítica: várias features em um único executável Arquitetura de microsserviços: conjunto de serviços, cada um sendo um executável e responsável por uma feature Problemas: -Implantação de uma feature requer implantação de todas -Difícil de manter a modularização -Escalar horizontalmente requer mais infra Soluções: -Implantação de uma feature independente de outras -Comunicação simples, protege módulos -Escalar horizontalmente requer menos infra
  • 11. BOAS PRÁTICAS ▫︎Testes automatizados em todos os níveis ▫︎Unitários, integração, contratos, jornadas de usuários ▫︎Integração contínua ▫︎Implantação automatizada ▫︎Monitoração ▫︎Times cuidando de feature ▫︎Times mantendo os microsserviços independentes 11
  • 12. Mas e quando não se consegue adotar todas as boas práticas? 12
  • 14. ORGANIZAÇÃO DOS TIMES 14 Versus Produto'B' Web$Service$A$ Produto'A' Web$Service$B$ Portal$ Web$Service$C$ Web$Service$D$ Time'4'Time'3' Aplicação$$$$$Cliente$ Time'2' Time'1' Produto'B' Web$Service$A$ Produto'A' Web$Service$B$ Portal$ Web$Service$C$ Web$Service$D$ Time'4'Time'3' Aplicação$$$$$Cliente$ Time'2'Time'1'
  • 15. ORGANIZAÇÃO DO BACKLOG 15 Produto'B' Web$Service$A$ Produto'A' Web$Service$B$ Portal$ Web$Service$C$ Web$Service$D$ Backlog'4'Backlog'3' Aplicação$$$$$Cliente$ Backlog'2' Backlog'1' Produto'B' Web$Service$A$ Produto'A' Web$Service$B$ Portal$ Web$Service$C$ Web$Service$D$ Backlog'4'Backlog'3' Aplicação$$$$$Cliente$ Backlog'2'Backlog'1' Versus
  • 16. V DESAFIOS ▫︎Quando times perdem a visão do todo ▫︎Escopo das histórias delimitado por endpoints ▫︎Pode perder o benefício das características INVEST 16 I T dependentes das histórias do cliente endpoints podem ser são features incompletas usuários não testam endpoints
  • 17. DESAFIOS ▫︎Quando times ficam bloqueados por dependência em histórias de outros times ▫︎Difícil de alinhar prioridades entre times ▫︎Time do cliente dependendo do time de serviços ▫︎Velocidades por histórias em vez de por features podem dar uma falsa visão de progresso 17
  • 18. DESAFIOS ▫︎Quando demora pra surgirem problemas de integrações ▫︎mau funcionamento do produto ▫︎pode atrasar ou abortar entregas 18
  • 20. Como conseguir fazer uma análise efetiva nesse contexto? 20
  • 21. 21 3 PASSOS PARA ANÁLISE
  • 22. 3 PASSOS PARA ANÁLISE 1. Mapear features em épicos 2. Mapear dependências entre histórias do épico 3. Definir critérios de aceitação para integrações 22
  • 23. 1. MAPEAR FEATURES EM ÉPICOS ▫︎Problema: falta de visão do todo ▫︎Solução: tratar épico como cidadão de primeira classe ▫︎O que? Por quê? Pra quem? ▫︎Usar épico na priorização e velocidade 23 [ÉPICO] Visualizar margem de lucro Como planejador de compras Eu preciso saber qual a margem de lucro do meu plano de compras Para que eu possa tomar decisões de planejamento de acordo com meu orçamento
  • 24. ▫︎Problema: bloqueios por conta de dependências ▫︎Solução: colaborar para identificar quais as capacidades que cada serviço precisa ter ▫︎Identificar as possíveis dependências entre elas para que o usuário consiga atingir seu objetivo ▫︎Usar como base a arquitetura definida pelos times para a feature ▫︎Priorização baseada nas dependências 2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO 24
  • 25. EXEMPLO 25 [ÉPICO] Visualizar margem de lucro Como planejador de inventário Eu preciso saber qual a margem de lucro do meu plano de compras Para que eu possa tomar decisões de planejamento de acordo com meu orçamento [Custo] Listar custo do produto [Plano] Calcular margem de lucro [Preço] Listar preço do produto Objetivo do ponto de vista do usuário Histórias de serviços para atingir o objetivo
  • 26. 3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES ▫︎Problema: integração causa mau funcionamento dos produtos e possíveis atrasos de entrega ▫︎Usar jornadas de usuário pra definir critérios de aceitação no nível de épico ▫︎Considerar os produtos impactados ▫︎Definir critérios de aceitação pros serviços com foco em regras de negócio, independente de interface ▫︎Feedback mais rápido sobre os problemas de integração 26
  • 27. EXEMPLO: CRITÉRIO DE ACEITAÇÃO PRO ÉPICO 27 [ÉPICO] Visualizar margem de lucro Como planejador de inventário Eu preciso saber qual a margem de lucro do meu plano de compras Para que eu possa tomar decisões de planejamento de acordo com meu orçamento Jornada passando por múltiplos produtos 1. Usuário do produto de gerenciar custo define o custo do produto 2. Usuário do produto de gerenciar preços define o preço do produto 3. Planejador acessa produto de plano de compras do produto e visualiza a margem de lucro Teste de sistemas, de ponta a ponta, entre diferentes produtos. Lento pra ser executado, mas de alto valor de negócio. Deve cobrir jornadas de mais alto nível.
  • 28. EXEMPLO: CRITÉRIO DE ACEITAÇÃO PRAS HISTÓRIAS 28 Serviço que gerencia custo [Custo] Listar custo do produto Dado que camisas regatas brancas pro verão de 2016 custa 2 dólares Quando eu listo custo de camisa regata branca do verão de 2016 Então vejo que o custo é 2 dólares [Preço] Listar preço do produto Dado que camisas regatas brancas pro verão de 2016 valem 20 dólares Quando eu listo preço de camisa regata branca do verão de 2016 Então vejo que o preço é 20 dólares Serviço que gerencia preço Serviço que gerencia plano [Lucro] Calcular margem de lucro Dado que camisas regatas brancas pro verão de 2016 custam 2 dólares e valem 20 dólares Quando eu visualizo a margem de lucro do meu plano de compras Então vejo a margem é de 18 dólares
  • 30. RESUMO Para o contexto em que: ▫︎times distribuídos não são organizados por features ▫︎cuidam de serviços que são utilizados por múltiplos produtos ▫︎não conseguem usar todas as boas práticas pra se trabalhar com microsserviços A análise dos microsserviços podem ser feita como segue: ▫︎mapeando features em épicos para os times não perderem a visão do todo ▫︎mapeando dependências entre histórias de um mesmo épico pra que um time não fique bloqueado ▫︎planejando critérios de aceitação nos níveis de épicos e histórias para não agir apenas reativamente aos problemas de integração 30
  • 32. REFERÊNCIAS ▫︎The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan. ▫︎Microservices. Martin Fowler. ▫︎MicroservicePrerequisites. Martin Fowler. ▫︎Microservice trade offs. Martin Fowler. ▫︎Enterprise Integration Using REST. Martin Fowler. 32