Arquitectura evolutiva

Post on 14-Apr-2017

340 views 2 download

Transcript of Arquitectura evolutiva

ARQUITECTURA EVOLUTIVA

Quito - Ecuador

Fausto De La Torre

@faustodelatog

Luisa Emme

@emmeblm

Siempre estamos contratando

Arquitectura de Software

Arquitectura de Software

“… the important stuff (whatever that is)” Ralph Johnson

Arquitectura de Software

“SA = {Elements, Form, Rationale}” Perry DE, Wolf AL

Foundations for the study of software architecture

“… the important stuff (whatever that is)” Ralph Johnson

Arquitectura de Software

“things that people perceiveas hard to change”

Martin Fowler http://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf

“SA = {Elements, Form, Rationale}” Perry DE, Wolf AL

Foundations for the study of software architecture

“… the important stuff (whatever that is)” Ralph Johnson

¿Qué es la Arquitectura de Software?

¿Por qué es importante?

¿Por qué es importante?

¿Por qué es importante?

¿Por qué es importante?

una buena arquitectura es la clave del éxito a largo plazo

Enfoque Tradicional

Enfoque Tradicional

Enfoque Tradicional

Enfoque Tradicional

Esperado vs. Real

Esperado vs. Real

Esperado vs. Real

Esperado vs. Real

Esperado vs. Real

El cambio es una realidad y complica

El cambio es una realidad y complica

El cambio es una realidad y complica

Buenas Prácticas

Ayer t

Arquitectura de Software

AntipatronBuenas Prácticas

HoyAyer t

Arquitectura de Software

t

t

Arquitectura EsperadaRealidad

Tradicional

Agile

Charles Darwin

Charles Darwin

Arquitecto de Software

Arquitecto de Software

Creando la Arquitectura

Creando la Arquitectura

Creando la Arquitectura

Respuesta al cambio

Seguir un planSOBRE

Creando la Arquitectura

Respuesta al cambio

Seguir un planSOBRE

Respuesta al cambio y NO un plan

Creando la Arquitectura

Creando la Arquitectura

Código que funciona

DocumentaciónSOBRE

Creando la Arquitectura

Código que funciona y NO documentación

Código que funciona

DocumentaciónSOBRE

Creando la Arquitectura

Creando la Arquitectura

Creando la Arquitectura

Creando la Arquitectura

¿Qué dificulta el cambio?

¿Qué dificulta el cambio?

Rigidez

¿Qué dificulta el cambio?

AcoplamientoRigidez

1982 1986 1989

Evitar pagar el costo del cambio al final

Evitar pagar el costo del cambio al final

Evitar el cambio Decisiones de diseño correctas al inicio Decisiones hechas por alta gerencia

Evitar pagar el costo del cambio al final

Evitar el cambio Decisiones de diseño correctas al inicio Decisiones hechas por alta gerencia

Decisiones reversibles Retardando las decisiones Decisiones involucran trabajadores

Arquitectura

Arquitectura

Diseño

Diseño Emergente

El último momento responsable

Elementos de juicio

El último momento responsable

Elementos de juicio

El último momento responsable

t

Elementos de juicio

El último momento responsable

t

Elementos de juicio

Complejidad

Complejidad

Deuda Técnica

Complejidad

Deuda Técnica

Genéricos

Tendencias

Acoplamiento

X-Ray visualizations for class dependencies

Acoplamiento

X-Ray view of package dependencies

Acoplamiento a tecnologías

Acoplamiento a tecnologías

Capas de anticorrupción

Entrega Continua

Micro Servicios

Entrega Continua

31

control de versiones

servidor integración continua

31

control de versiones

servidor integración continua

build tests …

32

control de versiones

servidor integración continua

build tests …

32

control de versiones

servidor integración continua

build tests …

todos envían sus cambios al trunk al menos una vez

al día

Agilismo 101

Agilismo 101

Iteration 0 1 2 3 4

Analysis + Design

Development

Testing + Showcase

Integration + QA Release and operation

Customer

Centralized QA IT Operations

"Agile" team

The "last mile"

Agilismo 101

Iteration 0 1 2 3 4

Analysis + Design

Development

Testing + Showcase

Integration + QA Release and operation

Customer

Centralized QA IT Operations

"Agile" team

The "last mile"

Agilismo 101

Iteration 0 1 2 3 4

Analysis + Design

Development

Testing + Showcase

Integration + QA Release and operation

Customer

Centralized QA IT Operations

"Agile" team

The "last mile"

Agilismo 101

Iteration 0 1 2 3 4

Analysis + Design

Development

Testing + Showcase

Integration + QA Release and operation

Customer

Centralized QA IT Operations

"Agile" team

The "last mile"

Agilismo 101

Iteration 0 1 2 3 4

Analysis + Design

Development

Testing + Showcase

Integration + QA Release and operation

Customer

Centralized QA IT Operations

"Agile" team

The "last mile"

Entrega Continua

Iteration 0 1 2 3 4

Analysis + Design

Development

Testing + Showcase

Integration + QA Release and operation

Customer

Centralized QA IT Operations

"Agile" team

The "last mile"

Customer

Delivery teamConstant flow of new features into production

Entrega Continua

Iteration 0 1 2 3 4

Analysis + Design

Development

Testing + Showcase

Integration + QA Release and operation

Customer

Centralized QA IT Operations

"Agile" team

The "last mile"

Customer

Delivery teamConstant flow of new features into production listo para

producción SIEMPRE

Entrega Continua

Entrega Continua

Entrega Continua

Aplicaciones Monolíticas

Aplicaciones Monolíticas

Aplicaciones Monolíticas

Aplicación

Aplicaciones Monolíticas

Aplicación

HTML, JS, etc.

Aplicaciones Monolíticas

Aplicación

HTML, JS, etc.

Aplicaciones Monolíticas

Aplicación

HTML, JS, etc.

Micro Servicios

Micro Servicios

Micro Servicios

Responsabilidad única

Micro Servicios

Responsabilidad única

Alta cohesión y bajo acoplamiento

Micro Servicios

Responsabilidad única

Alta cohesión y bajo acoplamiento

Artefactos desplegables independientes

Micro Servicios

Responsabilidad única

Alta cohesión y bajo acoplamiento

Artefactos desplegables independientes

Guiados por las capacidades del negocio

Gobierno decentralizado

ruby

node js

clojure

java

Estandarización

Equilibrio

Estandarización

Estandarización- Integración- Interfaces- Monitoreo- Despliegue

Flexibilidad- Construcción Interna

Estandarización- Integración- Interfaces- Monitoreo- Despliegue

Flexibilidad- Construcción Interna

Domain Driven Design

Domain Driven Design

Bounded Context

Productos

Clientes

E-R en REST

Bounded Context

Productos

Clientes

E-R en REST

Bounded Context

Facturación

CampañasMarketing

Capacidades del negocio

Entrega

Compras

Gobierno Descentralizado

Transacciones distribuidas

tx

tx

Transacciones distribuidas

tx

tx

Transacciones distribuidas

tx

tx

Escalabilidad

Monolíticas Micro Servicios

Trade offs

Automatización de la infraestructura

Monitoreo

Metrics

Despliegue

Ley de Conway

“Las organizaciones que diseñan sistemas están limitadas a producir diseños que son copias de las estructuras de comunicación de estas organizaciones.”

Ley de Conway

“Las organizaciones que diseñan sistemas están limitadas a producir diseños que son copias de las estructuras de comunicación de estas organizaciones.”

Ley de Conway

“Las organizaciones que diseñan sistemas están limitadas a producir diseños que son copias de las estructuras de comunicación de estas organizaciones.”

Productos en lugar de Proyectos

Si lo diseñas lo implementas

“you build, you run it”

Si lo implementas, lo despliegas

Dietzlers Law

Dietzlers Law

Dietzlers Law

Dietzlers Law

El negocio siempre quiere el 100%

Dietzlers Law

Empezar con lo más fácil

Empezar con lo más fácil

Maleable No Irreversibles

Empezar con lo más fácil

Maleable No Irreversibles

ProactivoPredictivo

Empezar con lo más fácil

Maleable No Irreversibles

Simplificar, Desacoplar y Desenredar

ProactivoPredictivo

@faustodelatog

MUCHAS GRACIAS

@emmeblm