SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
ARQUITETURA
EVOLUTIVA
Construindo uma
Arquitetura de Forma Ágil
SOBRE MIM
Consultora de
Desenvolvimento de
Software
EDLAINE ZAMORA
Onde eu trabalho: ThoughtWorks
O que já fui/fiz: Líder Técnica, Desenvolvedora,
Análise de Qualidade, Análise de Negócio…
O que estou fazendo agora: Treinadora na
ThoughtWorks University
2
ESSA APRESENTAÇÃO NÃO VAI
● Ensinar microserviços
● Falar sobre MVC
● Ajudar a escolher um framework JavaScript
● Ensinar uma arquitetura que resolve todos os problemas
3
“Arquitetura de Software é
sobre coisas importantes.
(seja lá o que forem).”
—RALPH JOHNSON
4
“O trabalho de pessoas
arquitetas de software é
entender e balancear todas
essas coisas importantes (o
que quer que elas sejam)”
—NEAL FORD, REBECCA PARSONS E PATRICK KUA
5
ARQUITETURA
DE SOFTWARE
O ESCOPO DE ARQUITETURA
DE SOFTWARE ABRANGE
REQUISITOS + "ILITIES" +
DIMENSÕES.
6
OS "ILITIES" DA ARQUITETURA
7
ALTO CUSTO
DE
MUDANÇA
Escolha bem o seu processo de
desenvolvimento de software
com foco em diminuir o custo
de mudança.
8
ALTO CUSTO DE
MUDANÇA
+
TUDO
MUDANDO O
TEMPO TODO...
9
A MUDANÇA É CONSTANTE
1999 2000 2004 2007 2010 2013 2014
SEM CONTAR AS
BIBLIOTECAS E
FRAMEWORKS JAVASCRIPT
198* 2017 ...
2001
MANIFESTO ÁGIL
10
AFINAL
O QUE É
ARQUITETURA
EVOLUTIVA?
11
—MARTIN FOWLER
“O coração da arquitetura evolutiva é fazer
pequenas mudanças e coletar feedbacks que
permitam que todos aprendam como o
sistema está se desenvolvendo.
A entrega contínua tem sido um fator crucial
para isso."
12
—EDLAINE ZAMORA
“A arquitetura evolutiva é construída com a
cultura do ágil, possui evolução constante
através de colaboração e permite mudanças
de negócio e do ecossistema com o menor
custo possível."
13
—NEAL FORD, REBECCA PARSONS E PATRICK KUA
“A arquitetura evolutiva suporta
mudanças guiadas e incrementais
através de múltiplas dimensões."
14
LEI DE CONWAY
"Organizações que projetam
sistemas ... são obrigadas a
produzir projetos que são cópias
das estruturas de comunicação
dessas organizações."
—MELVIN CONWAY
15
MANOBRA DE
CONWAY INVERSA
"Recomenda a evolução de
sua equipe e estrutura
organizacional para atingir a
arquitetura desejada"
16
CARACTERÍSTICAS PRINCIPAIS DA
ARQUITETURA EVOLUTIVA
01
Fazer mudanças
incrementais ao
longo do tempo
Tomar decisões no
último momento
responsável
02
Arquitetar para a
evolução03
Desenvolver para a
evolução04
Arquitetar para
testabilidade05
17
POR ONDE
COMEÇAR?
18
Classificar o que é mais
importante de acordo
com as necessidades de
negócio do produto.
DEFINA AS
CARACTERÍSTICAS
ARQUITETURAIS MAIS
IMPORTANTES PARA O
NEGÓCIO
19
Qual o tipo de arquitetura,
qual a arquitetura de
dados, quais tecnologias e
como isso tudo vai se
comunicar.
DEFINA O
DESENHO INICIAL
DE SUA
ARQUITETURA
20
CRIE FITNESS
FUNCTIONS
PARA ELAS
Fitness Functions vão dirigir
decisões arquiteturais, guiando
a arquitetura enquanto
permite alterações para
suportar mudanças de negócio
e de tecnologias.
21
Técnicas de
desenvolvimento de
software que podem
ajudar na construção e
manutenção de uma
arquitetura evolutiva
22
CI/CD: Integração,
Deploy e Entrega
Contínua
01
Automatizar a integração do
código, execução de testes,
construção e deploy da aplicação
facilitam a evolução constante da
arquitetura através de feedbacks
rápidos.
23
Feature Toggle/
Feature Flag02
Ter a habilidade de habilitar ou
desabilitar uma funcionalidade na
aplicação auxilia na integração e
deploy contínuos e testes em
diferentes ambientes.
24
Migração de
Banco de Dados03
Utilizar mecanismos que
controlam as mudanças no banco
de dados torna a dimensão de
dados também evolutiva.
25
Teste de Contrato
04 Usar o teste de contrato para testar
a interface da integração entre os
diferentes componentes da
arquitetura ajuda na documentação
de suposições que um serviço faz
com relação ao outro e a manter a
integração funcionando.
26
Coreografia
05 Usar coreografia pode
flexibilizar a comunicação entre
os diferentes serviços e
fornecer mais autonomia sobre
o fluxo principal de negócio.
27
Monitoramento
Mensurar o impacto que as
mudanças contínuas têm no
negócio e na arquitetura ajuda a
evoluir com mais segurança e
para o caminho certo.
06
28
UM CASO
REAL
Erros e Acertos na
implementação de
uma arquitetura.
29
CONTEXTO DO PRODUTO
Principais objetivos de negócio
● Ser uma plataforma de venda independente do tipo
do produto ou serviço a ser ofertado
● Time to market - possibilitar a inserção do produto
ou serviço no mercado de forma rápida
● Escalabilidade de desenvolvimento - prover
mecanismos para que os times de produtos ou
serviços sejam autônomos com relação ao time da
plataforma
30
ABORDAGEM
Definição de uma arquitetura de
serviços, síncrona e separada por
3 domínios: produtos,
pagamentos e pedidos/ofertas
em forma de serviços.
31
PRINCIPAIS ERROS
Falta de priorização das
características
arquiteturais
Tentativa de definição da
arquitetura completa no
início do projeto
Não exploração das
possibilidades
arquiteturais
Aplicação da Lei de
Conway
32
CONSEQUENCIAS
O que descobrimos com a arquitetura construída:
● Não suportava especificidades dos produtos
● Time to market era alto por dependência entre times
● Não escalava o desenvolvimento por dependência de times
específicos
33
COMO FIZEMOS
PARA
CONSERTAR AS
COISAS?
34
FLUXO DO
TRABALHO
35
RESULTADO
Após a mudança da arquitetura
● A plataforma conseguiu aceitar diferentes tipos de produtos e
serviços porque não era acoplada a eles
● Time to market ficou razoável porque havia pouca dependência
entre times (mas ainda havia complexidade de integração)
● Passou a escalar o desenvolvimento devido a independência entre
times específicos
36
EXEMPLOS DE FITNESS FUNCTIONS
Teste a Performance de sua Aplicação
37
EXEMPLOS DE FITNESS FUNCTIONS
Teste os Padrões de Codificação de sua Aplicação
38
EXEMPLOS DE FITNESS FUNCTIONS
Teste a Resiliência de sua Aplicação
39
EXEMPLOS DE FITNESS FUNCTIONS
Teste a Resiliência de sua Aplicação
40
EXEMPLOS DE FITNESS FUNCTIONS
Teste a Resiliência de sua Aplicação
41
ARQUITETURA EVOLUTIVA
EM RESUMO
Identifique suas
características
arquiteturais mais
importantes.
Identifique fitness function
para elas e automatize o
que for possível e viável.
Adie suas decisões o
máximo que puder (com
responsabilidade)
Crie e mantenha um
ecossistema de testes para
manter a evolução segura.
42
REPRESENTATIVIDADE IMPORTA
Camilla Crispim Roberta Arcoverde Paula Santana Luiza Guerra Juliana Helena Thalita Pinheiro Gabriela Mattos Beda
Érika Silva Thais Freitas
(Manola)
Beatriz Herculano Nayara Souza Yasminn Vaz Dani Marinho
Daniela Araujo Lais Gomes Manu Schiavon Angie Jones Zhamak Dehghani
Rebecca Parsons
43
Ana Ludmila
OBRIGADA
@edlainezamora
edlainezamora
44

Mais conteúdo relacionado

Mais procurados

Gestão da Comunicação em Projetos
Gestão da Comunicação em ProjetosGestão da Comunicação em Projetos
Gestão da Comunicação em ProjetosBarbara Benedetti
 
Kanban, o Método - Melhorando seu fluxo de trabalho de forma realmente eficiente
Kanban, o Método - Melhorando seu fluxo de trabalho de forma realmente eficienteKanban, o Método - Melhorando seu fluxo de trabalho de forma realmente eficiente
Kanban, o Método - Melhorando seu fluxo de trabalho de forma realmente eficientethiagodacosta
 
Bim challenges and potential
Bim challenges and potentialBim challenges and potential
Bim challenges and potentialThomas Goubau
 
The Transition from CAD to BIM
The Transition from CAD to BIMThe Transition from CAD to BIM
The Transition from CAD to BIMShadaab Sayyed
 
PALESTRA - PESSOAS, PROCESSOS, AGILIDADE E RESULTADOS
PALESTRA - PESSOAS, PROCESSOS, AGILIDADE E RESULTADOSPALESTRA - PESSOAS, PROCESSOS, AGILIDADE E RESULTADOS
PALESTRA - PESSOAS, PROCESSOS, AGILIDADE E RESULTADOSCarlos Silva Júnior
 
Shift Left - Approach and practices with IBM
Shift Left - Approach and practices with IBMShift Left - Approach and practices with IBM
Shift Left - Approach and practices with IBMIBM UrbanCode Products
 
Liderança impulsionadora de Agilidade e Diversidade
Liderança impulsionadora de Agilidade e DiversidadeLiderança impulsionadora de Agilidade e Diversidade
Liderança impulsionadora de Agilidade e DiversidadeMariana Zaparolli Martins
 
Gerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxGerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxRoberto Nunes
 
Planilha 1: Avaliação de Maturidade
Planilha 1:  Avaliação de MaturidadePlanilha 1:  Avaliação de Maturidade
Planilha 1: Avaliação de MaturidadeValéria Brito
 
Agile QA and Testing process
Agile QA and Testing processAgile QA and Testing process
Agile QA and Testing processGloria Stoilova
 
Diferenças tcc
Diferenças tccDiferenças tcc
Diferenças tccalexweb13
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IJoão Lourenço
 
Objetivos de desempenho prova
Objetivos de desempenho provaObjetivos de desempenho prova
Objetivos de desempenho provanigr0 s
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágilClaudia Melo
 
Shift Left Quality Assurance: How to do it. Why it matters.
Shift Left Quality Assurance: How to do it. Why it matters.Shift Left Quality Assurance: How to do it. Why it matters.
Shift Left Quality Assurance: How to do it. Why it matters.Worksoft
 

Mais procurados (20)

V model
V modelV model
V model
 
Gestão da Comunicação em Projetos
Gestão da Comunicação em ProjetosGestão da Comunicação em Projetos
Gestão da Comunicação em Projetos
 
Kanban, o Método - Melhorando seu fluxo de trabalho de forma realmente eficiente
Kanban, o Método - Melhorando seu fluxo de trabalho de forma realmente eficienteKanban, o Método - Melhorando seu fluxo de trabalho de forma realmente eficiente
Kanban, o Método - Melhorando seu fluxo de trabalho de forma realmente eficiente
 
Bim challenges and potential
Bim challenges and potentialBim challenges and potential
Bim challenges and potential
 
The Transition from CAD to BIM
The Transition from CAD to BIMThe Transition from CAD to BIM
The Transition from CAD to BIM
 
PALESTRA - PESSOAS, PROCESSOS, AGILIDADE E RESULTADOS
PALESTRA - PESSOAS, PROCESSOS, AGILIDADE E RESULTADOSPALESTRA - PESSOAS, PROCESSOS, AGILIDADE E RESULTADOS
PALESTRA - PESSOAS, PROCESSOS, AGILIDADE E RESULTADOS
 
4.2 diagnóstico estratégico
4.2   diagnóstico estratégico4.2   diagnóstico estratégico
4.2 diagnóstico estratégico
 
Shift Left - Approach and practices with IBM
Shift Left - Approach and practices with IBMShift Left - Approach and practices with IBM
Shift Left - Approach and practices with IBM
 
What is an RTM?
What is an RTM?What is an RTM?
What is an RTM?
 
Liderança impulsionadora de Agilidade e Diversidade
Liderança impulsionadora de Agilidade e DiversidadeLiderança impulsionadora de Agilidade e Diversidade
Liderança impulsionadora de Agilidade e Diversidade
 
Gerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxGerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptx
 
Apresentação comissionamento
Apresentação comissionamentoApresentação comissionamento
Apresentação comissionamento
 
Planilha 1: Avaliação de Maturidade
Planilha 1:  Avaliação de MaturidadePlanilha 1:  Avaliação de Maturidade
Planilha 1: Avaliação de Maturidade
 
Agile QA and Testing process
Agile QA and Testing processAgile QA and Testing process
Agile QA and Testing process
 
Diferenças tcc
Diferenças tccDiferenças tcc
Diferenças tcc
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
 
ISO/IEC 15504 SPICE + 33000
ISO/IEC 15504 SPICE + 33000ISO/IEC 15504 SPICE + 33000
ISO/IEC 15504 SPICE + 33000
 
Objetivos de desempenho prova
Objetivos de desempenho provaObjetivos de desempenho prova
Objetivos de desempenho prova
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágil
 
Shift Left Quality Assurance: How to do it. Why it matters.
Shift Left Quality Assurance: How to do it. Why it matters.Shift Left Quality Assurance: How to do it. Why it matters.
Shift Left Quality Assurance: How to do it. Why it matters.
 

Semelhante a Arquitetura evolutiva

Ágil e Arquitetura-Os Opostos se Atraem
Ágil e Arquitetura-Os Opostos se AtraemÁgil e Arquitetura-Os Opostos se Atraem
Ágil e Arquitetura-Os Opostos se AtraemCentus Consultoria
 
WBMA2013 - Método Ágil para desenvolvimento de software confiável
WBMA2013 - Método Ágil para desenvolvimento de software confiávelWBMA2013 - Método Ágil para desenvolvimento de software confiável
WBMA2013 - Método Ágil para desenvolvimento de software confiávelAlan Braz
 
Arquitetura Ágil 2.0
Arquitetura Ágil 2.0Arquitetura Ágil 2.0
Arquitetura Ágil 2.0Denis Santos
 
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...tdc-globalcode
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Rennan Martini
 
Desafios de implantar uma arquitetura de microservices
Desafios de implantar uma arquitetura de microservicesDesafios de implantar uma arquitetura de microservices
Desafios de implantar uma arquitetura de microservicesleopoa
 
Application Insights
Application InsightsApplication Insights
Application InsightsCDS
 
Workshop - The DevOps Cookbook
Workshop - The DevOps Cookbook   Workshop - The DevOps Cookbook
Workshop - The DevOps Cookbook Marcio Sete
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Renato Groff
 
Sprint Zero com mais Valor (TDC-2015)
Sprint Zero com mais Valor (TDC-2015)Sprint Zero com mais Valor (TDC-2015)
Sprint Zero com mais Valor (TDC-2015)Alex Magalhaes
 
T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascatawilsonguns
 
Introdução ao ALM e a visão da Plataforma Microsoft para developers.
Introdução ao ALM e a visão da Plataforma Microsoft para developers.Introdução ao ALM e a visão da Plataforma Microsoft para developers.
Introdução ao ALM e a visão da Plataforma Microsoft para developers.Gustavo Malheiros
 
Arquitetura de Software 101
Arquitetura de Software 101Arquitetura de Software 101
Arquitetura de Software 101Leandro Silva
 
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 1/2
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 1/2Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 1/2
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 1/2André Dias
 
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixModelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixCris Fidelix
 

Semelhante a Arquitetura evolutiva (20)

Startups e DevOps
Startups e DevOpsStartups e DevOps
Startups e DevOps
 
Ágil e Arquitetura-Os Opostos se Atraem
Ágil e Arquitetura-Os Opostos se AtraemÁgil e Arquitetura-Os Opostos se Atraem
Ágil e Arquitetura-Os Opostos se Atraem
 
WBMA2013 - Método Ágil para desenvolvimento de software confiável
WBMA2013 - Método Ágil para desenvolvimento de software confiávelWBMA2013 - Método Ágil para desenvolvimento de software confiável
WBMA2013 - Método Ágil para desenvolvimento de software confiável
 
Arquitetura Ágil 2.0
Arquitetura Ágil 2.0Arquitetura Ágil 2.0
Arquitetura Ágil 2.0
 
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
 
Desafios de implantar uma arquitetura de microservices
Desafios de implantar uma arquitetura de microservicesDesafios de implantar uma arquitetura de microservices
Desafios de implantar uma arquitetura de microservices
 
Métodos Ágeis - Aula 01
Métodos Ágeis - Aula 01Métodos Ágeis - Aula 01
Métodos Ágeis - Aula 01
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
 
DevOps Exame.com
DevOps Exame.comDevOps Exame.com
DevOps Exame.com
 
Application Insights
Application InsightsApplication Insights
Application Insights
 
Workshop - The DevOps Cookbook
Workshop - The DevOps Cookbook   Workshop - The DevOps Cookbook
Workshop - The DevOps Cookbook
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016
 
Proposta de Inovação (1)
Proposta de Inovação (1)Proposta de Inovação (1)
Proposta de Inovação (1)
 
Sprint Zero com mais Valor (TDC-2015)
Sprint Zero com mais Valor (TDC-2015)Sprint Zero com mais Valor (TDC-2015)
Sprint Zero com mais Valor (TDC-2015)
 
T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascata
 
Introdução ao ALM e a visão da Plataforma Microsoft para developers.
Introdução ao ALM e a visão da Plataforma Microsoft para developers.Introdução ao ALM e a visão da Plataforma Microsoft para developers.
Introdução ao ALM e a visão da Plataforma Microsoft para developers.
 
Arquitetura de Software 101
Arquitetura de Software 101Arquitetura de Software 101
Arquitetura de Software 101
 
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 1/2
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 1/2Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 1/2
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 1/2
 
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixModelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
 

Mais de Edlaine Zamora

ArchUnit-Garantindo a Integridade dos seus Padrões Arquiteturais em Java
ArchUnit-Garantindo a Integridade dos seus Padrões Arquiteturais em JavaArchUnit-Garantindo a Integridade dos seus Padrões Arquiteturais em Java
ArchUnit-Garantindo a Integridade dos seus Padrões Arquiteturais em JavaEdlaine Zamora
 
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...Edlaine Zamora
 
TDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua APITDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua APIEdlaine Zamora
 
Escreva código para pessoas além de máquinas
Escreva código para pessoas além de máquinasEscreva código para pessoas além de máquinas
Escreva código para pessoas além de máquinasEdlaine Zamora
 
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?Edlaine Zamora
 
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Edlaine Zamora
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterEdlaine Zamora
 
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxEdlaine Zamora
 
Testes de Performance com JMeter
Testes de Performance com JMeterTestes de Performance com JMeter
Testes de Performance com JMeterEdlaine Zamora
 
Tomada de Decisão baseada em testes de carga - The Developer`s Conference Sã...
Tomada de Decisão baseada em testes de carga - The Developer`s Conference Sã...Tomada de Decisão baseada em testes de carga - The Developer`s Conference Sã...
Tomada de Decisão baseada em testes de carga - The Developer`s Conference Sã...Edlaine Zamora
 

Mais de Edlaine Zamora (12)

ArchUnit-Garantindo a Integridade dos seus Padrões Arquiteturais em Java
ArchUnit-Garantindo a Integridade dos seus Padrões Arquiteturais em JavaArchUnit-Garantindo a Integridade dos seus Padrões Arquiteturais em Java
ArchUnit-Garantindo a Integridade dos seus Padrões Arquiteturais em Java
 
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
 
Microsoft Xamarin
Microsoft XamarinMicrosoft Xamarin
Microsoft Xamarin
 
TDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua APITDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua API
 
Escreva código para pessoas além de máquinas
Escreva código para pessoas além de máquinasEscreva código para pessoas além de máquinas
Escreva código para pessoas além de máquinas
 
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
 
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
 
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
 
Testes de Performance com JMeter
Testes de Performance com JMeterTestes de Performance com JMeter
Testes de Performance com JMeter
 
Jhipster
JhipsterJhipster
Jhipster
 
Tomada de Decisão baseada em testes de carga - The Developer`s Conference Sã...
Tomada de Decisão baseada em testes de carga - The Developer`s Conference Sã...Tomada de Decisão baseada em testes de carga - The Developer`s Conference Sã...
Tomada de Decisão baseada em testes de carga - The Developer`s Conference Sã...
 

Arquitetura evolutiva

  • 2. SOBRE MIM Consultora de Desenvolvimento de Software EDLAINE ZAMORA Onde eu trabalho: ThoughtWorks O que já fui/fiz: Líder Técnica, Desenvolvedora, Análise de Qualidade, Análise de Negócio… O que estou fazendo agora: Treinadora na ThoughtWorks University 2
  • 3. ESSA APRESENTAÇÃO NÃO VAI ● Ensinar microserviços ● Falar sobre MVC ● Ajudar a escolher um framework JavaScript ● Ensinar uma arquitetura que resolve todos os problemas 3
  • 4. “Arquitetura de Software é sobre coisas importantes. (seja lá o que forem).” —RALPH JOHNSON 4
  • 5. “O trabalho de pessoas arquitetas de software é entender e balancear todas essas coisas importantes (o que quer que elas sejam)” —NEAL FORD, REBECCA PARSONS E PATRICK KUA 5
  • 6. ARQUITETURA DE SOFTWARE O ESCOPO DE ARQUITETURA DE SOFTWARE ABRANGE REQUISITOS + "ILITIES" + DIMENSÕES. 6
  • 7. OS "ILITIES" DA ARQUITETURA 7
  • 8. ALTO CUSTO DE MUDANÇA Escolha bem o seu processo de desenvolvimento de software com foco em diminuir o custo de mudança. 8
  • 10. A MUDANÇA É CONSTANTE 1999 2000 2004 2007 2010 2013 2014 SEM CONTAR AS BIBLIOTECAS E FRAMEWORKS JAVASCRIPT 198* 2017 ... 2001 MANIFESTO ÁGIL 10
  • 12. —MARTIN FOWLER “O coração da arquitetura evolutiva é fazer pequenas mudanças e coletar feedbacks que permitam que todos aprendam como o sistema está se desenvolvendo. A entrega contínua tem sido um fator crucial para isso." 12
  • 13. —EDLAINE ZAMORA “A arquitetura evolutiva é construída com a cultura do ágil, possui evolução constante através de colaboração e permite mudanças de negócio e do ecossistema com o menor custo possível." 13
  • 14. —NEAL FORD, REBECCA PARSONS E PATRICK KUA “A arquitetura evolutiva suporta mudanças guiadas e incrementais através de múltiplas dimensões." 14
  • 15. LEI DE CONWAY "Organizações que projetam sistemas ... são obrigadas a produzir projetos que são cópias das estruturas de comunicação dessas organizações." —MELVIN CONWAY 15
  • 16. MANOBRA DE CONWAY INVERSA "Recomenda a evolução de sua equipe e estrutura organizacional para atingir a arquitetura desejada" 16
  • 17. CARACTERÍSTICAS PRINCIPAIS DA ARQUITETURA EVOLUTIVA 01 Fazer mudanças incrementais ao longo do tempo Tomar decisões no último momento responsável 02 Arquitetar para a evolução03 Desenvolver para a evolução04 Arquitetar para testabilidade05 17
  • 19. Classificar o que é mais importante de acordo com as necessidades de negócio do produto. DEFINA AS CARACTERÍSTICAS ARQUITETURAIS MAIS IMPORTANTES PARA O NEGÓCIO 19
  • 20. Qual o tipo de arquitetura, qual a arquitetura de dados, quais tecnologias e como isso tudo vai se comunicar. DEFINA O DESENHO INICIAL DE SUA ARQUITETURA 20
  • 21. CRIE FITNESS FUNCTIONS PARA ELAS Fitness Functions vão dirigir decisões arquiteturais, guiando a arquitetura enquanto permite alterações para suportar mudanças de negócio e de tecnologias. 21
  • 22. Técnicas de desenvolvimento de software que podem ajudar na construção e manutenção de uma arquitetura evolutiva 22
  • 23. CI/CD: Integração, Deploy e Entrega Contínua 01 Automatizar a integração do código, execução de testes, construção e deploy da aplicação facilitam a evolução constante da arquitetura através de feedbacks rápidos. 23
  • 24. Feature Toggle/ Feature Flag02 Ter a habilidade de habilitar ou desabilitar uma funcionalidade na aplicação auxilia na integração e deploy contínuos e testes em diferentes ambientes. 24
  • 25. Migração de Banco de Dados03 Utilizar mecanismos que controlam as mudanças no banco de dados torna a dimensão de dados também evolutiva. 25
  • 26. Teste de Contrato 04 Usar o teste de contrato para testar a interface da integração entre os diferentes componentes da arquitetura ajuda na documentação de suposições que um serviço faz com relação ao outro e a manter a integração funcionando. 26
  • 27. Coreografia 05 Usar coreografia pode flexibilizar a comunicação entre os diferentes serviços e fornecer mais autonomia sobre o fluxo principal de negócio. 27
  • 28. Monitoramento Mensurar o impacto que as mudanças contínuas têm no negócio e na arquitetura ajuda a evoluir com mais segurança e para o caminho certo. 06 28
  • 29. UM CASO REAL Erros e Acertos na implementação de uma arquitetura. 29
  • 30. CONTEXTO DO PRODUTO Principais objetivos de negócio ● Ser uma plataforma de venda independente do tipo do produto ou serviço a ser ofertado ● Time to market - possibilitar a inserção do produto ou serviço no mercado de forma rápida ● Escalabilidade de desenvolvimento - prover mecanismos para que os times de produtos ou serviços sejam autônomos com relação ao time da plataforma 30
  • 31. ABORDAGEM Definição de uma arquitetura de serviços, síncrona e separada por 3 domínios: produtos, pagamentos e pedidos/ofertas em forma de serviços. 31
  • 32. PRINCIPAIS ERROS Falta de priorização das características arquiteturais Tentativa de definição da arquitetura completa no início do projeto Não exploração das possibilidades arquiteturais Aplicação da Lei de Conway 32
  • 33. CONSEQUENCIAS O que descobrimos com a arquitetura construída: ● Não suportava especificidades dos produtos ● Time to market era alto por dependência entre times ● Não escalava o desenvolvimento por dependência de times específicos 33
  • 36. RESULTADO Após a mudança da arquitetura ● A plataforma conseguiu aceitar diferentes tipos de produtos e serviços porque não era acoplada a eles ● Time to market ficou razoável porque havia pouca dependência entre times (mas ainda havia complexidade de integração) ● Passou a escalar o desenvolvimento devido a independência entre times específicos 36
  • 37. EXEMPLOS DE FITNESS FUNCTIONS Teste a Performance de sua Aplicação 37
  • 38. EXEMPLOS DE FITNESS FUNCTIONS Teste os Padrões de Codificação de sua Aplicação 38
  • 39. EXEMPLOS DE FITNESS FUNCTIONS Teste a Resiliência de sua Aplicação 39
  • 40. EXEMPLOS DE FITNESS FUNCTIONS Teste a Resiliência de sua Aplicação 40
  • 41. EXEMPLOS DE FITNESS FUNCTIONS Teste a Resiliência de sua Aplicação 41
  • 42. ARQUITETURA EVOLUTIVA EM RESUMO Identifique suas características arquiteturais mais importantes. Identifique fitness function para elas e automatize o que for possível e viável. Adie suas decisões o máximo que puder (com responsabilidade) Crie e mantenha um ecossistema de testes para manter a evolução segura. 42
  • 43. REPRESENTATIVIDADE IMPORTA Camilla Crispim Roberta Arcoverde Paula Santana Luiza Guerra Juliana Helena Thalita Pinheiro Gabriela Mattos Beda Érika Silva Thais Freitas (Manola) Beatriz Herculano Nayara Souza Yasminn Vaz Dani Marinho Daniela Araujo Lais Gomes Manu Schiavon Angie Jones Zhamak Dehghani Rebecca Parsons 43 Ana Ludmila