Evolução das arquiteturas
-
Upload
bruno-nunes-trassante -
Category
Software
-
view
42 -
download
0
Transcript of Evolução das arquiteturas
Evolução das
ARQUITETURAS DE SOFTWARE
Motivacional
• Entender a diferença das arquiteturas do presente e passado
• Situar onde entram as principais tecnologias que usamos nessas arquiteturas
• Os principais problemas que elas buscam solucionar
t < 1990
Pré Internet
Pré 1990 Cliente Servidor
Pré 1990Clone Age Apenas rede
interna
Arquitetura simples
Procedural
Cópias “descentralizadas”
Problemas de Rollout
Pré 1990 Clone Age
Pré 1990 Client Server - Arquitetura
TUDO UMA COISA SÓ
Arquitetura
Timeline
Desktop Clones
1990
Pós 1990Web Cliente Servidor
Web Cliente Servidor Arquitetura
+
Pós 1990Web Cliente-Servidor Linguagem diferente
para apresentação (HTML)
Arquitetura simples
Procedural
Fonte centralizado
Código “Espaguete”
Rollout++
Web Cliente-Servidor (primórdios)
algumas tecnologias populares
Arquitetura
Timeline
Desktop Clones
Spaghetti
1990
N-LayersBLL
DAL
N-LayersArquitetura
BLL
DAL
Anos 2000’sN-Layers
Separação de lógicas de negócio, apresentação e
persistência
Orientação Objetos++
Facilidade de manutenção
BLL
DAL
N-LayersComponentes
Anos 2000’sN-Layers + Componentes
Separação de lógicas de negócio, apresentação e
persistência
Orientação Objetos++
Facilidade de manutenção
BLL
DAL
VelocidadeHTML e JS
gerado automático
Difícil integração com frameworks JS SEO--
N-Layersalgumas tecnologias populares
Arquitetura
Timeline
Desktop Clones
Spaghetti N-Layers
1990 2000
ainda nos Anos 2000s
MVC
MVC - Arquitetura
BLL
DAL
SERVICES
REPOSITORY
TASKS
DAT
A M
OD
EL
MODEL
Anos 2000’s
MVC
Melhor segregação das
responsabilidades
Código mais fácil de manter
Sem componentes
HTML “mágicos”
Total controle do HTML e Java Script
gerado
Testável
MVC Vs N-Layers(componented)
MVC algumas tecnologias populares
Arquitetura
Timeline
Desktop Clones Spaghetti N-Layers MVC
1990 2000
Separação
FrontEnd / BackEnd
Backend FrontendArquitetura
Business Logic
Data
Processamento no cliente alivia
o servidor
Maior controle do HTML
SeparaçãoBackend Frontend
Várias plataformas podem consumir as
mesmas fontes de dados
Quebra do Monolito
FrontEnd
BackEndAnos 2000’sFrontend vs Backend
Linguagens
Banco de Dados
WEBMobile
Desktop
Apresentação - FrontEnd
Lógica e Dados - BackEnd
FrontendBackend
Arquitetura
Timeline
Desktop Clones
Spaghetti N-Layers MVC
1990 2000
Evoluções do
BackEnd
Anos 2000’sSOA (Service Oriented Architecture)
Anos 2000’sSOA (Service Oriented Architecture)
BusinessLogic
Data
Independência de tecnologia
Reuso de Funcionalidades
Especialização BackendSOA
Velocidade em novas
implementações
Centralização
Gestão de mudança
Mas... e todas aquelas
outras letrinhas?
ESB SOAP
REST API
ESB (Enterprise Service Bus)
(Barramento de serviços)
Anos 2000’s“SOA vs ESB”
ESBalgumas tecnologias populares
Mas... e todas aquelas
outras letrinhas?
ESBSOAP
REST API
SOAP(Simple Object Access Protocol)
Anos 2000’sSOAP
Protocolo de comunicação para web services, MUITO bem padronizado.
Contratos fortes entre cliente e servidor
WS-Security, WS-AtomicTransaction, e muitos outros WS-AlgumaCoisa
REST API (Representational State Transfer
Application Programming Interface)
Anos 2000’sREST
Padrão de arquitetura sobre HTTP o mais simples e leve possível
VelocidadeFortemente padronizada
Padrão simples
Resultado XML ou JSON
Sobre protocolo HTTP
SOAP REST API
Dados massivos
Resultado não legível por humanos
Performance inferior
StatelessContratos
fortes
Fácil de integrar
REST API algumas tecnologias populares
Mas... e todas aquelas
outras letrinhas?
ESBSOAP
REST API
N-Layers
FrontendBackend
Arquitetura
Timeline
Desktop Clones
Spaghetti MVC
SOA
1990 2000
Anos 2010’sMicro Serviços
ArquiteturaMicro Serviços
Independência entre times
Agilidade
Especialização BackendMicro Serviços
Produtividade
Resiliência
Escalabilidade
Risco reduzido em deploys
Business Logic
Repository
ArquiteturaMicro Serviços
Business Logic
Repository
Business Logic
Repository
Business Logic
Repository
Mas...
O que é melhor?
SOA vs
MicroServices
Arquitetura
SOA > Micro Services
FrontendBackend
Arquitetura
Timeline
Desktop Clones
Spaghetti N-Layers MVC
SOAMicro
Services
1990 2000 2010
CloudComputing
Anos 2010’sCloud Computing
Anos 2010’sCloud - Auto Scaling
Anos 2010’sCloud - CND (Content Delivery Network)
Anos 2010’sCloud - Velocidade
Cloud Computingalgumas tecnologias populares
FrontendBackend
Arquitetura
Timeline
Desktop Clones
Spaghetti N-Layers MVC
SOAMicro
ServicesCloud
1990 2000 2010
Evoluções do
FrontEnd
Anos 2000’sStatic to Dinamic Web
Anos 2000’sStatic to Dinamic Web
Web 2.0 Arquitetura
+
Backend
Web 1.0 Web 2.0 algumas Tecnologias Populares
FrontendBackend
Arquitetura
Timeline
Desktop Clones
Spaghetti N-Layers MVC
SOAMicro
Services
Web 2.0Static Pages
Cloud
1990 2000 2010
Enquanto isso... (2000 - 2010)
Enquanto isso... (2000 - 2010)
+
Enquanto isso... (2000 - 2010)
Enquanto isso... (2000 - 2010)
Enquanto isso... (2000 - 2010)
2017 Chrome IE/Edge Firefox Safari Opera
January 73.7 % 4.9 % 15.4 % 3.6 % 1.0 %
https://www.w3schools.com/browsers/
Single Page Applications
Anos 2010’sSPAs
FrontEnd
MVVM
SPA Arquitetura
Backend
UI
UI Logic
Data BindingNotificationsCommands
Request
Request
Business Logic
SPAalgumas tecnologias populares
FrontendBackend
Arquitetura
Timeline
Desktop Clones
Spaghetti N-Layers MVC
SOAMicro
Services
Web 2.0Static Pages SPA
Cloud
1990 2000 2010
ComponentBased
Anos 2010’sComponent Based
Component BasedArquitetura
Backend
Data Request
Data Request
Component Basedalgumas tecnologias populares
FrontendBackend
Arquitetura
Timeline
Desktop Clones
Spaghetti N-Layers MVC
SOAMicro
Services
Web 2.0Static Pages SPA Componentes
Cloud
1990 2000 2010
Considerações Finais
• Entender a diferença das arquiteturas do presente e passado
• Situar onde entram as principais tecnologias que usamos nessas arquiteturas
• Os principais problemas que elas buscam solucionar
Arquiteturas antigas ainda dão conta do
recado
Escolha suas tecnologias/arquiteturas
porque resolvem um problema, não porque
são “cool”
Mesmo que seja a melhor opção, considere a curva de aprendizado
Bruno [email protected]