evolução das arquiteturas

Post on 20-Mar-2017

42 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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)

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 Trassantebruno@cwi.com.br

top related