Evolução das arquiteturas

90
Evolução das ARQUITETURAS DE SOFTWARE

Transcript of Evolução das arquiteturas

Page 1: Evolução das arquiteturas

Evolução das

ARQUITETURAS DE SOFTWARE

Page 2: Evolução das arquiteturas

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

Page 3: Evolução das arquiteturas

t < 1990

Pré Internet

Page 4: Evolução das arquiteturas

Pré 1990 Cliente Servidor

Page 5: Evolução das arquiteturas

Pré 1990Clone Age Apenas rede

interna

Arquitetura simples

Procedural

Cópias “descentralizadas”

Problemas de Rollout

Page 6: Evolução das arquiteturas

Pré 1990 Clone Age

Page 7: Evolução das arquiteturas

Pré 1990 Client Server - Arquitetura

TUDO UMA COISA SÓ

Page 8: Evolução das arquiteturas

Arquitetura

Timeline

Desktop Clones

1990

Page 9: Evolução das arquiteturas

Pós 1990Web Cliente Servidor

Page 10: Evolução das arquiteturas

Web Cliente Servidor Arquitetura

+

Page 11: Evolução das arquiteturas

Pós 1990Web Cliente-Servidor Linguagem diferente

para apresentação (HTML)

Arquitetura simples

Procedural

Fonte centralizado

Código “Espaguete”

Rollout++

Page 12: Evolução das arquiteturas

Web Cliente-Servidor (primórdios)

algumas tecnologias populares

Page 13: Evolução das arquiteturas

Arquitetura

Timeline

Desktop Clones

Spaghetti

1990

Page 14: Evolução das arquiteturas

N-LayersBLL

DAL

Page 15: Evolução das arquiteturas

N-LayersArquitetura

BLL

DAL

Page 16: Evolução das arquiteturas

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

Page 17: Evolução das arquiteturas

N-LayersComponentes

Page 18: Evolução das arquiteturas

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

Page 19: Evolução das arquiteturas

N-Layersalgumas tecnologias populares

Page 20: Evolução das arquiteturas

Arquitetura

Timeline

Desktop Clones

Spaghetti N-Layers

1990 2000

Page 21: Evolução das arquiteturas

ainda nos Anos 2000s

MVC

Page 22: Evolução das arquiteturas

MVC - Arquitetura

BLL

DAL

SERVICES

REPOSITORY

TASKS

DAT

A M

OD

EL

MODEL

Page 23: Evolução das arquiteturas

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

Page 24: Evolução das arquiteturas

MVC Vs N-Layers(componented)

Page 25: Evolução das arquiteturas

MVC algumas tecnologias populares

Page 26: Evolução das arquiteturas

Arquitetura

Timeline

Desktop Clones Spaghetti N-Layers MVC

1990 2000

Page 27: Evolução das arquiteturas

Separação

FrontEnd / BackEnd

Page 28: Evolução das arquiteturas

Backend FrontendArquitetura

Business Logic

Data

Page 29: Evolução das arquiteturas

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

Page 30: Evolução das arquiteturas

FrontEnd

BackEndAnos 2000’sFrontend vs Backend

Page 31: Evolução das arquiteturas

Linguagens

Banco de Dados

WEBMobile

Desktop

Apresentação - FrontEnd

Lógica e Dados - BackEnd

Page 32: Evolução das arquiteturas

FrontendBackend

Arquitetura

Timeline

Desktop Clones

Spaghetti N-Layers MVC

1990 2000

Page 33: Evolução das arquiteturas

Evoluções do

BackEnd

Page 34: Evolução das arquiteturas

Anos 2000’sSOA (Service Oriented Architecture)

Page 35: Evolução das arquiteturas

Anos 2000’sSOA (Service Oriented Architecture)

BusinessLogic

Data

Page 36: Evolução das arquiteturas

Independência de tecnologia

Reuso de Funcionalidades

Especialização BackendSOA

Velocidade em novas

implementações

Centralização

Gestão de mudança

Page 37: Evolução das arquiteturas

Mas... e todas aquelas

outras letrinhas?

ESB SOAP

REST API

Page 38: Evolução das arquiteturas

ESB (Enterprise Service Bus)

(Barramento de serviços)

Page 39: Evolução das arquiteturas

Anos 2000’s“SOA vs ESB”

Page 40: Evolução das arquiteturas

ESBalgumas tecnologias populares

Page 41: Evolução das arquiteturas

Mas... e todas aquelas

outras letrinhas?

ESBSOAP

REST API

Page 42: Evolução das arquiteturas

SOAP(Simple Object Access Protocol)

Page 43: Evolução das arquiteturas

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

Page 44: Evolução das arquiteturas

REST API (Representational State Transfer

Application Programming Interface)

Page 45: Evolução das arquiteturas

Anos 2000’sREST

Padrão de arquitetura sobre HTTP o mais simples e leve possível

Page 46: Evolução das arquiteturas

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

Page 47: Evolução das arquiteturas

REST API algumas tecnologias populares

Page 48: Evolução das arquiteturas

Mas... e todas aquelas

outras letrinhas?

ESBSOAP

REST API

Page 49: Evolução das arquiteturas

N-Layers

FrontendBackend

Arquitetura

Timeline

Desktop Clones

Spaghetti MVC

SOA

1990 2000

Page 50: Evolução das arquiteturas

Anos 2010’sMicro Serviços

Page 51: Evolução das arquiteturas

ArquiteturaMicro Serviços

Page 52: Evolução das arquiteturas

Independência entre times

Agilidade

Especialização BackendMicro Serviços

Produtividade

Resiliência

Escalabilidade

Risco reduzido em deploys

Page 53: Evolução das arquiteturas

Business Logic

Repository

ArquiteturaMicro Serviços

Business Logic

Repository

Business Logic

Repository

Business Logic

Repository

Page 54: Evolução das arquiteturas

Mas...

O que é melhor?

SOA vs

MicroServices

Page 55: Evolução das arquiteturas

Arquitetura

SOA > Micro Services

Page 56: Evolução das arquiteturas

FrontendBackend

Arquitetura

Timeline

Desktop Clones

Spaghetti N-Layers MVC

SOAMicro

Services

1990 2000 2010

Page 57: Evolução das arquiteturas

CloudComputing

Page 58: Evolução das arquiteturas

Anos 2010’sCloud Computing

Page 59: Evolução das arquiteturas

Anos 2010’sCloud - Auto Scaling

Page 60: Evolução das arquiteturas

Anos 2010’sCloud - CND (Content Delivery Network)

Page 61: Evolução das arquiteturas

Anos 2010’sCloud - Velocidade

Page 62: Evolução das arquiteturas

Cloud Computingalgumas tecnologias populares

Page 63: Evolução das arquiteturas

FrontendBackend

Arquitetura

Timeline

Desktop Clones

Spaghetti N-Layers MVC

SOAMicro

ServicesCloud

1990 2000 2010

Page 64: Evolução das arquiteturas

Evoluções do

FrontEnd

Page 65: Evolução das arquiteturas

Anos 2000’sStatic to Dinamic Web

Page 66: Evolução das arquiteturas

Anos 2000’sStatic to Dinamic Web

Page 67: Evolução das arquiteturas

Web 2.0 Arquitetura

+

Backend

Page 68: Evolução das arquiteturas

Web 1.0 Web 2.0 algumas Tecnologias Populares

Page 69: Evolução das arquiteturas

FrontendBackend

Arquitetura

Timeline

Desktop Clones

Spaghetti N-Layers MVC

SOAMicro

Services

Web 2.0Static Pages

Cloud

1990 2000 2010

Page 70: Evolução das arquiteturas

Enquanto isso... (2000 - 2010)

Page 71: Evolução das arquiteturas

Enquanto isso... (2000 - 2010)

+

Page 72: Evolução das arquiteturas

Enquanto isso... (2000 - 2010)

Page 73: Evolução das arquiteturas

Enquanto isso... (2000 - 2010)

Page 75: Evolução das arquiteturas

Single Page Applications

Page 76: Evolução das arquiteturas

Anos 2010’sSPAs

Page 77: Evolução das arquiteturas

FrontEnd

MVVM

Page 78: Evolução das arquiteturas

SPA Arquitetura

Backend

UI

UI Logic

Data BindingNotificationsCommands

Request

Request

Business Logic

Page 79: Evolução das arquiteturas

SPAalgumas tecnologias populares

Page 80: Evolução das arquiteturas

FrontendBackend

Arquitetura

Timeline

Desktop Clones

Spaghetti N-Layers MVC

SOAMicro

Services

Web 2.0Static Pages SPA

Cloud

1990 2000 2010

Page 81: Evolução das arquiteturas

ComponentBased

Page 82: Evolução das arquiteturas

Anos 2010’sComponent Based

Page 83: Evolução das arquiteturas

Component BasedArquitetura

Backend

Data Request

Data Request

Page 84: Evolução das arquiteturas

Component Basedalgumas tecnologias populares

Page 85: Evolução das arquiteturas

FrontendBackend

Arquitetura

Timeline

Desktop Clones

Spaghetti N-Layers MVC

SOAMicro

Services

Web 2.0Static Pages SPA Componentes

Cloud

1990 2000 2010

Page 86: Evolução das arquiteturas

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

Page 87: Evolução das arquiteturas

Arquiteturas antigas ainda dão conta do

recado

Page 88: Evolução das arquiteturas

Escolha suas tecnologias/arquiteturas

porque resolvem um problema, não porque

são “cool”

Page 89: Evolução das arquiteturas

Mesmo que seja a melhor opção, considere a curva de aprendizado

Page 90: Evolução das arquiteturas

Bruno [email protected]