SlideShare uma empresa Scribd logo

O comparativo de arquiteturas de software monolíticas em relação a arquitetura de micro serviços em ambientes corporativos

Qualificação mestrado

1 de 51
Baixar para ler offline
O comparativo de
arquiteturas de software
monolíticas em relação a
arquitetura de micro
serviços em ambientes
corporativos
Emmanuel Neri de Souza
Dr. Sebastião Ribeiro Junior
Dr. Rodrigo Clemente Thom de Souza
Introdução
• Aumento da informatização proporcionando
um crescimento na abrangência dos softwares
• Adoção a mobilidade dos softwares
• Surgimento de novos modelos de negócios
baseados em computação em nuvem, como
os softwares como serviços (SaaS)
24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT2
Objetivo Geral
• O objetivo geral do trabalho é a
aplicação da arquitetura de micro
serviços, para que possa se analisado os
benefícios e limitações da construção de
softwares corporativos utilizando esse
conceito e suas possíveis variações de
estilos arquiteturais em comparação aos
monólitos.
3 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT
Objetivos Específicos
• Contextualização dos temas de arquitetura de
softwares
• Implementação de um cenário corporativo na
estrutura monolítica, micro serviços síncrona e
assíncrona
• Aplicação de método de avaliação de
arquiteturas
• Análise comparativa entre as soluções
• Conclusão dos resultados
4 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT
Justificativa
• Redução do tamanho dos projetos de
software
• Redução do acoplamento e aumento de
flexibilidade
• A necessidade de escalar os softwares
• Melhor gerenciamento de recursos
• Aumento da disponibilidade
5 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT
Softwares Corporativos
• São aqueles que automatizam processos de
natureza administrativa, financeira, contábil e
outros relacionados a gestão empresarial.
• Pode-se dizer que as aplicações corporativas
são a espinha dorsal de muitos processos.
Brunnet A., Wischer K., Krcmar (2014)
• “Complexidades voltada a expressivo volume
de dados, grande número de usuários e
extensa quantidade de linhas de códigos.”
Fowler (2008)
6 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT

Recomendados

Microservices: Mais que uma arquitetura de software, uma filosofia de desenvo...
Microservices: Mais que uma arquitetura de software, uma filosofia de desenvo...Microservices: Mais que uma arquitetura de software, uma filosofia de desenvo...
Microservices: Mais que uma arquitetura de software, uma filosofia de desenvo...Emmanuel Neri
 
Aula 2. frameworks js
Aula 2. frameworks jsAula 2. frameworks js
Aula 2. frameworks jsandreluizlc
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de MicroserviçosNorberto Enomoto
 
Conceitos básicos de usabilidade e acessibilidade
Conceitos básicos de usabilidade e acessibilidadeConceitos básicos de usabilidade e acessibilidade
Conceitos básicos de usabilidade e acessibilidadeNécio de Lima Veras
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareAricelio Souza
 
Aula 1. apresentação + frameworks
Aula 1. apresentação + frameworksAula 1. apresentação + frameworks
Aula 1. apresentação + frameworksandreluizlc
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 

Mais conteúdo relacionado

Mais procurados

Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareUFPA
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To MicroservicesLalit Kale
 
eServices-Chp6: WOA
eServices-Chp6: WOAeServices-Chp6: WOA
eServices-Chp6: WOALilia Sfaxi
 
Engenharia de Software Baseada em Componentes
Engenharia de Software Baseada em ComponentesEngenharia de Software Baseada em Componentes
Engenharia de Software Baseada em Componenteselliando dias
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Arthur Emanuel
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento MobileElton Minetto
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em JavaDenis L Presciliano
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitoselliando dias
 
Banco de questões qualidade de software
Banco de questões qualidade de softwareBanco de questões qualidade de software
Banco de questões qualidade de softwareBruno Nascimento
 
Sistemas Multimídia - Aula 01 - Apresentação
Sistemas Multimídia - Aula 01 - ApresentaçãoSistemas Multimídia - Aula 01 - Apresentação
Sistemas Multimídia - Aula 01 - ApresentaçãoLeinylson Fontinele
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Luís Fernando Richter
 
Aula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoAula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoInstituto CENTEC
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2Carlos Eugenio Torres
 

Mais procurados (20)

Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de Software
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To Microservices
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Usabilidade - Metas, Principios e Heuristicas
Usabilidade -  Metas, Principios e HeuristicasUsabilidade -  Metas, Principios e Heuristicas
Usabilidade - Metas, Principios e Heuristicas
 
eServices-Chp6: WOA
eServices-Chp6: WOAeServices-Chp6: WOA
eServices-Chp6: WOA
 
Engenharia de Software Baseada em Componentes
Engenharia de Software Baseada em ComponentesEngenharia de Software Baseada em Componentes
Engenharia de Software Baseada em Componentes
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Programacao para Web I Plano de Ensinodoc
Programacao para Web I Plano de EnsinodocProgramacao para Web I Plano de Ensinodoc
Programacao para Web I Plano de Ensinodoc
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em Java
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
 
Banco de questões qualidade de software
Banco de questões qualidade de softwareBanco de questões qualidade de software
Banco de questões qualidade de software
 
Sistemas Multimídia - Aula 01 - Apresentação
Sistemas Multimídia - Aula 01 - ApresentaçãoSistemas Multimídia - Aula 01 - Apresentação
Sistemas Multimídia - Aula 01 - Apresentação
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
 
Aula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoAula 3 - Lógica de Programação
Aula 3 - Lógica de Programação
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 

Destaque

Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFEmmanuel Neri
 
Jett: Exporte Excel do jeito que seu cliente sempre sonhou
Jett: Exporte Excel do jeito que seu cliente sempre sonhouJett: Exporte Excel do jeito que seu cliente sempre sonhou
Jett: Exporte Excel do jeito que seu cliente sempre sonhouEmmanuel Neri
 
Combatendo code smells em aplicações Java
Combatendo code smells em aplicações JavaCombatendo code smells em aplicações Java
Combatendo code smells em aplicações JavaEmmanuel Neri
 
Construindo APIs de forma produtiva com Spring Boot, Spring Data e Spring MVC
Construindo APIs de forma produtiva com Spring Boot, Spring Data e Spring MVCConstruindo APIs de forma produtiva com Spring Boot, Spring Data e Spring MVC
Construindo APIs de forma produtiva com Spring Boot, Spring Data e Spring MVCEmmanuel Neri
 
A Cultura do Home Office
A Cultura do Home OfficeA Cultura do Home Office
A Cultura do Home OfficeEmmanuel Neri
 
Criando uma arquitetura escalável para processamento de arquivos com micro s...
Criando uma arquitetura escalável para processamento de arquivos com micro s...Criando uma arquitetura escalável para processamento de arquivos com micro s...
Criando uma arquitetura escalável para processamento de arquivos com micro s...Emmanuel Neri
 
O Impacto da arquitetura de Micro Serviços nas soluções de software
O Impacto da arquitetura de Micro Serviços nas soluções de softwareO Impacto da arquitetura de Micro Serviços nas soluções de software
O Impacto da arquitetura de Micro Serviços nas soluções de softwareEmmanuel Neri
 
A trilogia Spring MVC + Spring Data + AngularJS
A trilogia  Spring MVC + Spring Data + AngularJSA trilogia  Spring MVC + Spring Data + AngularJS
A trilogia Spring MVC + Spring Data + AngularJSEmmanuel Neri
 

Destaque (8)

Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
 
Jett: Exporte Excel do jeito que seu cliente sempre sonhou
Jett: Exporte Excel do jeito que seu cliente sempre sonhouJett: Exporte Excel do jeito que seu cliente sempre sonhou
Jett: Exporte Excel do jeito que seu cliente sempre sonhou
 
Combatendo code smells em aplicações Java
Combatendo code smells em aplicações JavaCombatendo code smells em aplicações Java
Combatendo code smells em aplicações Java
 
Construindo APIs de forma produtiva com Spring Boot, Spring Data e Spring MVC
Construindo APIs de forma produtiva com Spring Boot, Spring Data e Spring MVCConstruindo APIs de forma produtiva com Spring Boot, Spring Data e Spring MVC
Construindo APIs de forma produtiva com Spring Boot, Spring Data e Spring MVC
 
A Cultura do Home Office
A Cultura do Home OfficeA Cultura do Home Office
A Cultura do Home Office
 
Criando uma arquitetura escalável para processamento de arquivos com micro s...
Criando uma arquitetura escalável para processamento de arquivos com micro s...Criando uma arquitetura escalável para processamento de arquivos com micro s...
Criando uma arquitetura escalável para processamento de arquivos com micro s...
 
O Impacto da arquitetura de Micro Serviços nas soluções de software
O Impacto da arquitetura de Micro Serviços nas soluções de softwareO Impacto da arquitetura de Micro Serviços nas soluções de software
O Impacto da arquitetura de Micro Serviços nas soluções de software
 
A trilogia Spring MVC + Spring Data + AngularJS
A trilogia  Spring MVC + Spring Data + AngularJSA trilogia  Spring MVC + Spring Data + AngularJS
A trilogia Spring MVC + Spring Data + AngularJS
 

Semelhante a O comparativo de arquiteturas de software monolíticas em relação a arquitetura de micro serviços em ambientes corporativos

Engenharia de Software
Engenharia de SoftwareEngenharia de Software
Engenharia de SoftwareSm3nd3s29
 
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
 
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
 
SAlmox SIIC 2014
SAlmox SIIC 2014SAlmox SIIC 2014
SAlmox SIIC 2014Jonas Mayer
 
Aplicação da arquitetura de micro serviços em softwares corporativos
Aplicação da arquitetura de micro serviços em softwares corporativosAplicação da arquitetura de micro serviços em softwares corporativos
Aplicação da arquitetura de micro serviços em softwares corporativosEmmanuel Neri
 
Case estágio - Proposta de interface para um módulo de estratégia do sistema ...
Case estágio - Proposta de interface para um módulo de estratégia do sistema ...Case estágio - Proposta de interface para um módulo de estratégia do sistema ...
Case estágio - Proposta de interface para um módulo de estratégia do sistema ...Guilherme Ponce
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Mocking Test - GDG-SP - Setembro/2016
Mocking Test - GDG-SP - Setembro/2016Mocking Test - GDG-SP - Setembro/2016
Mocking Test - GDG-SP - Setembro/2016Renato Groff
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Renato Groff
 
Application Insights
Application InsightsApplication Insights
Application InsightsCDS
 
Á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
 
Application Insights: identificando problemas de performance em aplicações le...
Application Insights: identificando problemas de performance em aplicações le...Application Insights: identificando problemas de performance em aplicações le...
Application Insights: identificando problemas de performance em aplicações le...Renato Groff
 
Monitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingMonitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingRenato Groff
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREErnesto Bedrikow
 

Semelhante a O comparativo de arquiteturas de software monolíticas em relação a arquitetura de micro serviços em ambientes corporativos (20)

Engenharia de Software
Engenharia de SoftwareEngenharia de Software
Engenharia de Software
 
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.
 
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
 
SAlmox SIIC 2014
SAlmox SIIC 2014SAlmox SIIC 2014
SAlmox SIIC 2014
 
Aplicação da arquitetura de micro serviços em softwares corporativos
Aplicação da arquitetura de micro serviços em softwares corporativosAplicação da arquitetura de micro serviços em softwares corporativos
Aplicação da arquitetura de micro serviços em softwares corporativos
 
Aula01 introducao
Aula01 introducaoAula01 introducao
Aula01 introducao
 
Case estágio - Proposta de interface para um módulo de estratégia do sistema ...
Case estágio - Proposta de interface para um módulo de estratégia do sistema ...Case estágio - Proposta de interface para um módulo de estratégia do sistema ...
Case estágio - Proposta de interface para um módulo de estratégia do sistema ...
 
Aula 2 - Modelos de processos
Aula 2 -  Modelos de processosAula 2 -  Modelos de processos
Aula 2 - Modelos de processos
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Metodologias de desenvolvimento
Metodologias de desenvolvimentoMetodologias de desenvolvimento
Metodologias de desenvolvimento
 
Mocking Test - GDG-SP - Setembro/2016
Mocking Test - GDG-SP - Setembro/2016Mocking Test - GDG-SP - Setembro/2016
Mocking Test - GDG-SP - Setembro/2016
 
[TDC-Arquitetura Java] Pastoreando Gatos
[TDC-Arquitetura Java] Pastoreando Gatos[TDC-Arquitetura Java] Pastoreando Gatos
[TDC-Arquitetura Java] Pastoreando Gatos
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016
 
Application Insights
Application InsightsApplication Insights
Application Insights
 
Á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
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 
Application Insights: identificando problemas de performance em aplicações le...
Application Insights: identificando problemas de performance em aplicações le...Application Insights: identificando problemas de performance em aplicações le...
Application Insights: identificando problemas de performance em aplicações le...
 
Monitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingMonitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed Tracing
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWARE
 
Analise aula2
Analise aula2Analise aula2
Analise aula2
 

Mais de Emmanuel Neri

Arquitetura orientada a eventos
Arquitetura orientada a eventosArquitetura orientada a eventos
Arquitetura orientada a eventosEmmanuel Neri
 
Iniciando com Docker
Iniciando com DockerIniciando com Docker
Iniciando com DockerEmmanuel Neri
 
Arquitetura reativa, a solução para os microserviços?
Arquitetura reativa,  a solução para os microserviços?Arquitetura reativa,  a solução para os microserviços?
Arquitetura reativa, a solução para os microserviços?Emmanuel Neri
 
Preparando nossas aplicações para falharem com feature toggle e configurações...
Preparando nossas aplicações para falharem com feature toggle e configurações...Preparando nossas aplicações para falharem com feature toggle e configurações...
Preparando nossas aplicações para falharem com feature toggle e configurações...Emmanuel Neri
 
Preparando nossa aplicação para falhar com feature toggle e configurações dis...
Preparando nossa aplicação para falhar com feature toggle e configurações dis...Preparando nossa aplicação para falhar com feature toggle e configurações dis...
Preparando nossa aplicação para falhar com feature toggle e configurações dis...Emmanuel Neri
 
Combatendo code smells em Java
Combatendo code smells em Java Combatendo code smells em Java
Combatendo code smells em Java Emmanuel Neri
 
Configurações distribuídas com Spring Cloud Config
Configurações distribuídas com Spring Cloud ConfigConfigurações distribuídas com Spring Cloud Config
Configurações distribuídas com Spring Cloud ConfigEmmanuel Neri
 
Lidando com desafios dos microserviços com a stack Spring Cloud Netflix
Lidando com desafios dos microserviços com a stack Spring Cloud NetflixLidando com desafios dos microserviços com a stack Spring Cloud Netflix
Lidando com desafios dos microserviços com a stack Spring Cloud NetflixEmmanuel Neri
 
Análise e Design - RUP
Análise e Design - RUPAnálise e Design - RUP
Análise e Design - RUPEmmanuel Neri
 
Solução técnica - CMMI nível 3
Solução técnica - CMMI nível 3Solução técnica - CMMI nível 3
Solução técnica - CMMI nível 3Emmanuel Neri
 

Mais de Emmanuel Neri (12)

Arquitetura orientada a eventos
Arquitetura orientada a eventosArquitetura orientada a eventos
Arquitetura orientada a eventos
 
Iniciando com Docker
Iniciando com DockerIniciando com Docker
Iniciando com Docker
 
Arquitetura reativa, a solução para os microserviços?
Arquitetura reativa,  a solução para os microserviços?Arquitetura reativa,  a solução para os microserviços?
Arquitetura reativa, a solução para os microserviços?
 
Preparando nossas aplicações para falharem com feature toggle e configurações...
Preparando nossas aplicações para falharem com feature toggle e configurações...Preparando nossas aplicações para falharem com feature toggle e configurações...
Preparando nossas aplicações para falharem com feature toggle e configurações...
 
Preparando nossa aplicação para falhar com feature toggle e configurações dis...
Preparando nossa aplicação para falhar com feature toggle e configurações dis...Preparando nossa aplicação para falhar com feature toggle e configurações dis...
Preparando nossa aplicação para falhar com feature toggle e configurações dis...
 
Combatendo code smells em Java
Combatendo code smells em Java Combatendo code smells em Java
Combatendo code smells em Java
 
Configurações distribuídas com Spring Cloud Config
Configurações distribuídas com Spring Cloud ConfigConfigurações distribuídas com Spring Cloud Config
Configurações distribuídas com Spring Cloud Config
 
Lidando com desafios dos microserviços com a stack Spring Cloud Netflix
Lidando com desafios dos microserviços com a stack Spring Cloud NetflixLidando com desafios dos microserviços com a stack Spring Cloud Netflix
Lidando com desafios dos microserviços com a stack Spring Cloud Netflix
 
Trabalho Remoto
Trabalho RemotoTrabalho Remoto
Trabalho Remoto
 
Análise e Design - RUP
Análise e Design - RUPAnálise e Design - RUP
Análise e Design - RUP
 
Solução técnica - CMMI nível 3
Solução técnica - CMMI nível 3Solução técnica - CMMI nível 3
Solução técnica - CMMI nível 3
 
Jenkins
JenkinsJenkins
Jenkins
 

O comparativo de arquiteturas de software monolíticas em relação a arquitetura de micro serviços em ambientes corporativos

  • 1. O comparativo de arquiteturas de software monolíticas em relação a arquitetura de micro serviços em ambientes corporativos Emmanuel Neri de Souza Dr. Sebastião Ribeiro Junior Dr. Rodrigo Clemente Thom de Souza
  • 2. Introdução • Aumento da informatização proporcionando um crescimento na abrangência dos softwares • Adoção a mobilidade dos softwares • Surgimento de novos modelos de negócios baseados em computação em nuvem, como os softwares como serviços (SaaS) 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT2
  • 3. Objetivo Geral • O objetivo geral do trabalho é a aplicação da arquitetura de micro serviços, para que possa se analisado os benefícios e limitações da construção de softwares corporativos utilizando esse conceito e suas possíveis variações de estilos arquiteturais em comparação aos monólitos. 3 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT
  • 4. Objetivos Específicos • Contextualização dos temas de arquitetura de softwares • Implementação de um cenário corporativo na estrutura monolítica, micro serviços síncrona e assíncrona • Aplicação de método de avaliação de arquiteturas • Análise comparativa entre as soluções • Conclusão dos resultados 4 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT
  • 5. Justificativa • Redução do tamanho dos projetos de software • Redução do acoplamento e aumento de flexibilidade • A necessidade de escalar os softwares • Melhor gerenciamento de recursos • Aumento da disponibilidade 5 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT
  • 6. Softwares Corporativos • São aqueles que automatizam processos de natureza administrativa, financeira, contábil e outros relacionados a gestão empresarial. • Pode-se dizer que as aplicações corporativas são a espinha dorsal de muitos processos. Brunnet A., Wischer K., Krcmar (2014) • “Complexidades voltada a expressivo volume de dados, grande número de usuários e extensa quantidade de linhas de códigos.” Fowler (2008) 6 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT
  • 7. Arquitetura de Software • Edsger Dijkstra em 1968 e David Parnas no início de 1970 • Trata-se da estrutura do software • Caracteriza os pontos positivos e negativos no softwares 7 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT
  • 8. Arquitetura monolítica • “Quando uma aplicação é construída em uma grande e única unidade.” Savchenko, Radchenko, Taipale(2015) • Software composto por um conjunto de funcionalidades em uma única estrutura • O modelo de arquitetura mais comum no desenvolvimento de software 8 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT
  • 9. Arquitetura monolítica 9 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Fowler (2014)
  • 10. Arquitetura monolítica • Composto por múltiplos módulos em apenas uma estrutura • O software é executado em uma única instância • Permite ser escalado apenas em horizontal • Restrito a uma tecnologia 10 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT
  • 11. Arquitetura de micro serviços • “Um conjunto de serviços pequenos, autônomos que trabalham em conjunto.” Newman (2015) • Software modularizado em pequenos serviços que se comunicam por através de uma forma padronizada 11 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT
  • 12. Arquitetura de micro serviços 12 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Fowler (2014)
  • 13. Características de micro serviços • Serviços pequenos • Serviços autônomos  Pode ser executado em uma ou mais instâncias  Deploys independentes entre os serviços • Interface de comunicação padronizada  Independência de tecnologia • Permite ser escalado horizontal e vertical 13 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT
  • 14. Comunicação entre os serviços • Síncrona  Comunicação em tempo real, pois as chamadas no servidor serão bloqueadas até que a operação seja completada. Newman, S. (2015) • Assíncrona  Comunicação que não dependem de respostas para continuar as ações. Newman, S. (2015) 14 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT
  • 15. ATAM 15 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT • O ATAM (Architecture tradeoff analysis method), um método de avalição de arquiteturas criado pelo SEI (Software Engineering Institute). • O método define modelos de qualidades para possibilitar o tradeoff e os riscos das arquiteturas avaliadas. Szwed P.; Skrzynski P. P.; Rogus G.; Werewka J. (2015).
  • 16. Fases ATAM 16 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Nove passos propostos pelo método ATAM separado por quatro fases Fonte: Mariotti F., André P. (2016)
  • 17. Estado da Arte 17 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Linha do tempo arquitetura de micro serviços - Fonte o autor
  • 18. Metodologia • Pesquisas • Definição do cenário corporativo • Implementação dos experimentos de softwares baseados nos cenários levantados e representação dos diagramas UML • Aplicação do método ATAM • Análise e conclusão dos resultados 18 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT
  • 19. Método 19 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Passos do ATAM adaptados para a pesquisa Fonte: O autor
  • 20. Materiais • Experimentos desenvolvidos em linguagem de programação Java EE • Diagramas UML • Plataforma SonarQube • Coleta do tempo de implantação pelo servidor de aplicação • Coleta do tempo de execução através de recursos da linguagem 20 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT
  • 21. Cenário corporativo 21 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Diagrama de caso de uso do cenário. Fonte: O autor
  • 22. Entidades do cenário 22 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Diagrama de classe do cenário. Fonte: O autor
  • 23. Arquitetura base 23 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Diagrama de deployment da arquitetura base. Fonte: O autor
  • 24. Possíveis características 24 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT caracteristicas de arquitetura de software Manutenibilidade Modificabilidade Baixo acomplamento Design portável Tamanho código fonte Quantidade de linhas de código Percentual de duplicação Interoperabilidade Melhorias e integrações com outros sistemas Facilidade para interagir com outros sistemas Performance Latência Gerenciamento de recursos Disponibilidade Detecção de falhas Recuperação a falhas Tolerância a falha Escalabilidade Possibilidade de escalar Processamento sobe demanda Segurança Autorização Risco de ataques Usabilidade Fácil de usar Organograma das possíveis características a serem avaliadas. Fonte: O autor
  • 25. Arquitetura elegidas 25 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT 1. Arquitetura Monolítica 2. Arquitetura de Micro serviços – síncrona 3. Arquitetura de Micro serviços – assíncrona Experimentos:
  • 26. Arquitetura monolítica 26 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Arquitetura monolítica. Fonte: O autor
  • 27. Comunicação 27 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Diagrama de componente da arquitetura monolítica. Fonte: O autor
  • 28. Artefato gerado 28 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Diagrama de deployment do artefato monolítico. Fonte: O autor
  • 29. Modelo de dados 29 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Diagrama de classe da estrutura monolítica. Fonte: O autor
  • 30. Análise de código fonte 30 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Painel de métricas de tamanho. Fonte: Plataforma SonarQube Painel de complexidade. Fonte: Plataforma SonarQube Painel de duplicação. Fonte: Plataforma SonarQube
  • 31. Coleta de tempos 31 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Testes Tempo (segundos) Execução 1 10,905 Execução 2 11,334 Execução 3 11,073 Execução 4 11,052 Execução 5 10,478 Média: 10,968 segundos Testes Tempo (milissegundos) Execução 1 36 Execução 2 7 Execução 3 6 Execução 4 6 Execução 5 5 Média: 12 milissegundos Testes Tempo (milissegundos) Execução 1 42 Execução 2 11 Execução 3 10 Execução 4 8 Execução 5 9 Média: 16 milissegundos Testes Tempo (milissegundos) Execução 1 15 Execução 2 9 Execução 3 12 Execução 4 10 Execução 5 10 Média: 13 milissegundos Tempo de deploy. Fonte: O autor Tempo execução cadastrar cliente. Fonte: O autor Tempo execução emitir pedido. Fonte: O autor Tempo execução relatório de classificação de clientes. Fonte: O autor
  • 32. Arquitetura de micro serviços 32 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Arquitetura de micro serviços. Fonte: O autor
  • 33. Artefatos gerados 33 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Diagrama de deployment artefatos em um servidor. Fonte: O autor Diagrama de deployment artefatos em vários servidores. Fonte: O autor
  • 34. Arquitetura de micro serviços com comunicação síncrona 34 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT
  • 35. Comunicação síncrona 35 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Diagrama de componentes da arquitetura de micro serviços síncrona. Fonte: O autor
  • 36. Base de dados 36 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Base de dados arquitetura de micro serviços síncrona. Fonte: O autor
  • 37. Modelo de dados 37 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Diagrama de classe arquitetura de micro serviços síncrona. Fonte: O autor
  • 38. Análise de código fonte 38 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Painel de duplicação. Fonte: Plataforma SonarQube Painel de métricas de tamanho. Fonte: Plataforma SonarQube Painel de complexidade. Fonte: Plataforma SonarQube
  • 39. Coleta de tempo 39 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Testes Tempo Individual(segundos) Total(segundos) portal cadastros pedidos relatorios Execução 1 4,935 7,067 9,104 11,069 32,175 Execução 2 5,201 7,752 9,841 11,902 34,696 Execução 3 5,521 8,607 10,985 12,987 38,100 Execução 4 5,927 8,732 11,227 13,463 39,349 Execução 5 5,650 8,696 10,993 13,215 38,554 Média: 36,574 segundos Testes Tempo (milissegundos) Execução 1 37 Execução 2 6 Execução 3 5 Execução 4 2 Execução 5 6 Média: 11,2 milissegundos Testes Tempo (milissegundos) Execução 1 36 Execução 2 8 Execução 3 10 Execução 4 8 Execução 5 9 Média: 14,2 milissegundos Testes Tempo (milissegundos) Execução 1 175 Execução 2 31 Execução 3 31 Execução 4 30 Execução 5 29 Média: 59,2 milissegundos Tempo de deploy. Fonte: O autor Tempo de deploy. Fonte: O autor Tempo de deploy. Fonte: O autor Tempo execução relatório de classificação de clientes. Fonte: O autor
  • 40. Arquitetura de micro serviços com comunicação assíncrona 40 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT
  • 41. Comunicação assíncrona 41 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Diagrama de componentes da arquitetura de micro serviços assíncrona. Fonte: O autor
  • 42. Base de dados 42 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Base de dados da arquitetura de micro serviços assíncrona. Fonte: O autor
  • 43. Modelo de dados 43 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Diagrama de componentes da arquitetura de micro serviços assíncronas. Fonte: O autor
  • 44. Análise de código fonte 44 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Painel de métricas de tamanho. Fonte: Plataforma SonarQube Painel de complexidade. Fonte: Plataforma SonarQube Painel de duplicação. Fonte: Plataforma SonarQube
  • 45. Coleta de tempos 45 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Testes Tempo Individual(segundos) Total(segundos) portal cadastros pedidos relatorios Execução 1 5,687 8,315 10,860 13,402 35,636 Execução 2 5,163 7,533 9,796 12,045 32,167 Execução 3 5,588 8,291 10,553 12,798 34,527 Execução 4 5,648 8,201 10,365 12,910 34,571 Execução 5 5,023 7,470 9,679 11,861 31,586 Média: 33,697 segundos Testes Tempo (milissegundos) Execução 1 12 Execução 2 6 Execução 3 5 Execução 4 5 Execução 5 6 Média: 6,8 milissegundos Testes Tempo (milissegundos) Execução 1 28 Execução 2 13 Execução 3 11 Execução 4 12 Execução 5 11 Média: 15 milissegundos Testes Tempo (milissegundos) Execução 1 15 Execução 2 9 Execução 3 10 Execução 4 10 Execução 5 9 Média: 10,6 milissegundos Tempo de deploy. Fonte: O autor Tempo de deploy. Fonte: O autor Tempo de deploy. Fonte: O autor Tempo execução relatório de classificaçã de clientes. Fonte: O autor
  • 46. Resultados do código fonte 46 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT 156 371 508 0 100 200 300 400 500 600 Monolítica Micro serviços - síncrono Micro serviços - assíncrono 2% 8% 21% 0% 5% 10% 15% 20% 25% Monolítica Micro serviços - síncrono Micro serviços - assíncrono 1841 4014 5218 0 1000 2000 3000 4000 5000 6000 Monolítica Micro serviços - síncrono Micro serviços - assíncrono Comparativo linha de código. Fonte: O autor Comparativo complexidade. Fonte: O autor Comparativo percentual de duplicação. Fonte: O autor
  • 47. Resultados das coletas de tempo 47 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT 10.968 36.571 33.697 0 10 20 30 40 Monolítica Micro serviços - síncrono Micro serviços - assíncrono 9.6 6.6 7.4 0 2 4 6 8 10 12 Monolítica Micro serviços - síncrono Micro serviços - assíncrono 16 14.2 15 13 13.5 14 14.5 15 15.5 16 16.5 Monolítica Micro serviços - síncrono Micro serviços - assíncrono 13 59.2 10.6 0 10 20 30 40 50 60 70 Monolítica Micro serviços - síncrono Micro serviços - assíncrono Comparativo de tempo de deploy. Fonte: O autor Comparativo de tempo execução cadastrar cliente. Fonte: O autor Comparativo de tempo execução emitir pedido. Fonte: O autor Comparativo de tempo execução relatório classificar clientes. Fonte: O autor
  • 48. Características elegidas 48 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT caracteristicas de arquitetura de software Manutenibilidade Modificabilidade Baixo acoplamento Design portável Tamanho código fonte Quantidade de linhas de código Percentual de duplicação Interoperabilidade Melhorias e integrações com outros sistemas Facilidade para interagir com outros sistemas Performance Latência Gerenciamento de recursos Disponibilidade Detecção de falhas Recuperação a falhas Escalabilidade Possibilidade de escalar Organograma das características elegidas para avaliação. Fonte: O autor
  • 49. Classificação 49 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT Característica Conceito Monolítica Micro serviços – síncrono Micro serviços – assíncrono Manutenbilidade Quantidade de código fonte Atende Não atende Não Atende Percentual de duplicação Atende amplamente Atende com restrições Não atende Manutenibilidade (modificabilidade) Baixo acoplamento Não atende Atende Atende amplamente Design portável Não atende Atende Atende Interoperabilidade Evoluções e integração com outros sistemas Atende com restrições Atende Atende Facilidade de integrar com outros sistemas Não atende Atende amplamente Atende Performance Latência Atende amplamente Atende com restrições Atende com restrições Gerenciamento de recursos Atende com restrições Atende Atende Disponibilidade Detecção de falhas Atende com restrições Atende Atende com restrições Recuperação a falhas Atende com restrições Atende Atende amplamente Escalabilidade Possibilidade de escalar Atende com restrições Atende Atende Tabela comparativa. Fonte: O autor
  • 50. Conclusão 50 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT • 8 de 11 conceitos os micro serviços apresentaram vantagem em relação ao monólito • 3 de 11 conceitos o monólito apresentou vantagem sobre os micro serviços • A arquitetura com mais vantagem nos conceitos foi micro serviços síncrona • Apesar das vantagens na maioria dos conceitos a arquitetura de micro serviços apresentou expressivo problemas nos conceitos com desvantagem
  • 51. OBRIGADO Emmanuel Neri de Souza emmanuelnerisouza@gmail.com 51 24/06/2016 Programa de Pós-graduação em Desenvolvimento de Tecnologia – GTT

Notas do Editor

  1. Crescimento da informatização -> softwares maiores e mais complexos Adoção da mobilidade -> softwares com mais usuários em diversos dispositivos Surgimento de novos modelos SaaS e Computação em nuvem -> maior disponibilidade e escabilidade Conclui-se que os softwares estão exigindo novos estilos arquiteturais
  2. Implementar os três cenários Monolítico + 2 variações de implementação de micro serviços Aplicar ATAM + UML + Código para análise das arquiteturas Classificação dos experimentos nos eixos de características de softwares
  3. Aplicar o conceito de decomposição de software proposto pela arquitetura de micro serviços , visando um comparativo com estruturas monolíticas De forma que possa ser elegido a solução maior satisfaz as mudanças de características que os softwares modernos estão estabelecendo .
  4. ERP e CRM A criação de software corporativo é uma atividade complexa, que envolve inúmeros desafios, entre os quais, lidar com expressivo volume de dados, grande número de usuários, extensa quantidade de linha de código
  5. Microserviços é um estilo ou design de software dentro da arquitetura de software, o qual faz parte da área de engenharia de software
  6. 1000 linhas ou 2 semanas
  7. Síncrono Dados em tempo real Maior dependência Desafio com performance e disponibilidade Assíncronos Dados não disponíveis em tempo real Maior desacoplamento Trata a performace de forma diferente Propricio a caso de disponibilidade
  8. Direciona a avaliação de arquiteturas Não diz como fazer as análises
  9. 9 passos 4 fases
  10. Arquitetura orientada a serviço finamente granulada 2014: Amazon, Ebay, Globo.com 2015: SEI – Carnigie Mellon Sam Newman Autor junto com Folwer 2016: Base de novas tendências alem de vários artigos acadêncimos Radar
  11. Adaptação do método de ATAM para as fases da pesquisa
  12. Linguagem java Sonar e análise de estrutura Coletas de tempo executados Mac OS 10.11 JVM Oracle 1.8
  13. Cliente-servidor Web (usuário não instala) Padrão MVC Banco de dados relacional gerenciado pelo servidor de aplicação
  14. Artigo de estudo de 15 anos de avaliação com o método ATAM De 2006 a 2013 Todas as características aparecem na pesquisa 13 de 16 conceitos no artigo 7 caracteristicas
  15. - base de comparação - Em tempo real - transparente para o usuário
  16. Geralmente base de dados única Funcionalidades separadas mas em uma única estrutura Única base de código fonte
  17. Comunicação direta por métodos da linguagem Maior dependência nas funcionalidades, gerando mais acoplamento Ganho de performance
  18. Único artefato Escalonamento apenas por replicação Gerencimento de recursos apenas no único artefato Propício a ponto único de falha Indisponibilidade total em atualizações Depoy único
  19. Entidade se relacionam diretamente, + acoplamento Maior consistência dos dados Única base de dados
  20. Numeros baixos Complexidade : é a quantidade de fluxos que determinado código fonte pode executa
  21. Medições 5x por causa das interferência do SO Explicar dependências dos casos de usos
  22. Módulos separadas em estruturas por responsabilidades Permiti um ou vários repositórios As setas representa interligação entre os módulos
  23. Resultado final é 4 artefatos
  24. Estratégia de consumir os dados quando necessitados Padrão Rest
  25. Os micro serviços permitem a separação das bases de dados Banco de dados menores com essa estratégia
  26. Cada estrutura possui apenas as entidades que gerencia As entidades não tem ligações com outros módulos Projeto Integrador para centralizar classes reaproveitada entre as estruturas Menor consistência dos dados a nível de banco de dados
  27. 4 estruturas de projetos analisadas Repetição das configurações Repetição dos dados convertidos para comunicação Percentual ficou no valor de 8.5 devido o integrador
  28. Pedidos: no caso de uso não tem integração de módulos Relatório: aumento significativo devido a integração Quase 4x maior que emissão de um pedido
  29. Replicação assíncrona Após ação no módulo Web service Rest Sistema é responsável pelo momento da replicação Pode causa indisponibilidade momentânea
  30. Repetição das tabelas Dados replicados entre as estruturas
  31. Replicação das entidades Ligações apenas locais Estruturas gerenciadoras outras apenas armazenadoras Modelo de dados maior Mais tolerante a falhas (estrutura mais independente)
  32. Repetição do modelo de dados Complexidade das lógicas de replicação Complicação manutenibilidade
  33. 4 estruturas Sem comunicação entre estrutura A replicação é assíncrona gerenciada pelo sistemas Transparente pelo usuário
  34. Mon -> MSS = 2173 | Mon -> MSS = 215 | Mon -> MSS = 6 Mon -> MAS – 3377 | Mon -> MAS – 352 | Mon -> MAS = 19 MAS -> MAS = 1204 | MAS -> MAS = 132 | MAS -> MAS = 13
  35. Deploy total monolítico MS possibilitam a flexibilidade do deploy fragmentado Latência maior na comunicação em tempo real
  36. 8 Conceitos mais avaliados nas 5 características nos últimos15 anos segundo a pesquisa 3 conceitos constante utilizados em comparativos