Arquitectura evolutiva

146
ARQUITECTURA EVOLUTIVA Quito - Ecuador

Transcript of Arquitectura evolutiva

Page 1: Arquitectura evolutiva

ARQUITECTURA EVOLUTIVA

Quito - Ecuador

Page 2: Arquitectura evolutiva

Fausto De La Torre

@faustodelatog

Luisa Emme

@emmeblm

Page 3: Arquitectura evolutiva

Siempre estamos contratando

Page 4: Arquitectura evolutiva

Arquitectura de Software

Page 5: Arquitectura evolutiva

Arquitectura de Software

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

Page 6: Arquitectura evolutiva

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

Page 7: Arquitectura evolutiva

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

Page 8: Arquitectura evolutiva

¿Qué es la Arquitectura de Software?

Page 9: Arquitectura evolutiva
Page 10: Arquitectura evolutiva

¿Por qué es importante?

Page 11: Arquitectura evolutiva

¿Por qué es importante?

Page 12: Arquitectura evolutiva

¿Por qué es importante?

Page 13: Arquitectura evolutiva

¿Por qué es importante?

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

Page 14: Arquitectura evolutiva

Enfoque Tradicional

Page 15: Arquitectura evolutiva

Enfoque Tradicional

Page 16: Arquitectura evolutiva

Enfoque Tradicional

Page 17: Arquitectura evolutiva

Enfoque Tradicional

Page 18: Arquitectura evolutiva

Esperado vs. Real

Page 19: Arquitectura evolutiva

Esperado vs. Real

Page 20: Arquitectura evolutiva

Esperado vs. Real

Page 21: Arquitectura evolutiva

Esperado vs. Real

Page 22: Arquitectura evolutiva

Esperado vs. Real

Page 23: Arquitectura evolutiva

El cambio es una realidad y complica

Page 24: Arquitectura evolutiva

El cambio es una realidad y complica

Page 25: Arquitectura evolutiva

El cambio es una realidad y complica

Page 26: Arquitectura evolutiva
Page 27: Arquitectura evolutiva

Buenas Prácticas

Ayer t

Arquitectura de Software

Page 28: Arquitectura evolutiva

AntipatronBuenas Prácticas

HoyAyer t

Arquitectura de Software

Page 29: Arquitectura evolutiva
Page 30: Arquitectura evolutiva
Page 31: Arquitectura evolutiva
Page 32: Arquitectura evolutiva
Page 33: Arquitectura evolutiva
Page 34: Arquitectura evolutiva

t

t

Arquitectura EsperadaRealidad

Tradicional

Agile

Page 35: Arquitectura evolutiva
Page 36: Arquitectura evolutiva
Page 37: Arquitectura evolutiva

Charles Darwin

Page 38: Arquitectura evolutiva

Charles Darwin

Page 39: Arquitectura evolutiva

Arquitecto de Software

Page 40: Arquitectura evolutiva

Arquitecto de Software

Page 41: Arquitectura evolutiva

Creando la Arquitectura

Page 42: Arquitectura evolutiva

Creando la Arquitectura

Page 43: Arquitectura evolutiva

Creando la Arquitectura

Respuesta al cambio

Seguir un planSOBRE

Page 44: Arquitectura evolutiva

Creando la Arquitectura

Respuesta al cambio

Seguir un planSOBRE

Respuesta al cambio y NO un plan

Page 45: Arquitectura evolutiva

Creando la Arquitectura

Page 46: Arquitectura evolutiva

Creando la Arquitectura

Código que funciona

DocumentaciónSOBRE

Page 47: Arquitectura evolutiva

Creando la Arquitectura

Código que funciona y NO documentación

Código que funciona

DocumentaciónSOBRE

Page 48: Arquitectura evolutiva

Creando la Arquitectura

Page 49: Arquitectura evolutiva

Creando la Arquitectura

Page 50: Arquitectura evolutiva

Creando la Arquitectura

Page 51: Arquitectura evolutiva

Creando la Arquitectura

Page 52: Arquitectura evolutiva

¿Qué dificulta el cambio?

Page 53: Arquitectura evolutiva

¿Qué dificulta el cambio?

Rigidez

Page 54: Arquitectura evolutiva

¿Qué dificulta el cambio?

AcoplamientoRigidez

Page 55: Arquitectura evolutiva

1982 1986 1989

Page 56: Arquitectura evolutiva

Evitar pagar el costo del cambio al final

Page 57: Arquitectura evolutiva

Evitar pagar el costo del cambio al final

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

Page 58: Arquitectura evolutiva

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

Page 59: Arquitectura evolutiva
Page 60: Arquitectura evolutiva
Page 61: Arquitectura evolutiva

Arquitectura

Page 62: Arquitectura evolutiva

Arquitectura

Diseño

Page 63: Arquitectura evolutiva

Diseño Emergente

Page 64: Arquitectura evolutiva

El último momento responsable

Elementos de juicio

Page 65: Arquitectura evolutiva

El último momento responsable

Elementos de juicio

Page 66: Arquitectura evolutiva

El último momento responsable

t

Elementos de juicio

Page 67: Arquitectura evolutiva

El último momento responsable

t

Elementos de juicio

Page 68: Arquitectura evolutiva
Page 69: Arquitectura evolutiva

Complejidad

Page 70: Arquitectura evolutiva

Complejidad

Deuda Técnica

Page 71: Arquitectura evolutiva

Complejidad

Deuda Técnica

Genéricos

Page 72: Arquitectura evolutiva

Tendencias

Page 73: Arquitectura evolutiva

Acoplamiento

X-Ray visualizations for class dependencies

Page 74: Arquitectura evolutiva

Acoplamiento

X-Ray view of package dependencies

Page 75: Arquitectura evolutiva

Acoplamiento a tecnologías

Page 76: Arquitectura evolutiva

Acoplamiento a tecnologías

Capas de anticorrupción

Page 77: Arquitectura evolutiva
Page 78: Arquitectura evolutiva

Entrega Continua

Page 79: Arquitectura evolutiva

Micro Servicios

Entrega Continua

Page 80: Arquitectura evolutiva

31

control de versiones

servidor integración continua

Page 81: Arquitectura evolutiva

31

control de versiones

servidor integración continua

build tests …

Page 82: Arquitectura evolutiva

32

control de versiones

servidor integración continua

build tests …

Page 83: Arquitectura evolutiva

32

control de versiones

servidor integración continua

build tests …

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

al día

Page 84: Arquitectura evolutiva

Agilismo 101

Page 85: Arquitectura evolutiva

Agilismo 101

Page 86: Arquitectura evolutiva

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

Page 87: Arquitectura evolutiva

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

Page 88: Arquitectura evolutiva

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

Page 89: Arquitectura evolutiva

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

Page 90: Arquitectura evolutiva

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

Page 91: Arquitectura evolutiva

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

Page 92: Arquitectura evolutiva

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

Page 93: Arquitectura evolutiva

Entrega Continua

Page 94: Arquitectura evolutiva

Entrega Continua

Page 95: Arquitectura evolutiva
Page 96: Arquitectura evolutiva

Aplicaciones Monolíticas

Page 97: Arquitectura evolutiva

Aplicaciones Monolíticas

Page 98: Arquitectura evolutiva

Aplicaciones Monolíticas

Aplicación

Page 99: Arquitectura evolutiva

Aplicaciones Monolíticas

Aplicación

HTML, JS, etc.

Page 100: Arquitectura evolutiva

Aplicaciones Monolíticas

Aplicación

HTML, JS, etc.

Page 101: Arquitectura evolutiva

Aplicaciones Monolíticas

Aplicación

HTML, JS, etc.

Page 102: Arquitectura evolutiva

Micro Servicios

Page 103: Arquitectura evolutiva

Micro Servicios

Page 104: Arquitectura evolutiva

Micro Servicios

Responsabilidad única

Page 105: Arquitectura evolutiva

Micro Servicios

Responsabilidad única

Alta cohesión y bajo acoplamiento

Page 106: Arquitectura evolutiva

Micro Servicios

Responsabilidad única

Alta cohesión y bajo acoplamiento

Artefactos desplegables independientes

Page 107: Arquitectura evolutiva

Micro Servicios

Responsabilidad única

Alta cohesión y bajo acoplamiento

Artefactos desplegables independientes

Guiados por las capacidades del negocio

Page 108: Arquitectura evolutiva

Gobierno decentralizado

ruby

node js

clojure

java

Page 109: Arquitectura evolutiva
Page 110: Arquitectura evolutiva
Page 111: Arquitectura evolutiva

Estandarización

Page 112: Arquitectura evolutiva

Equilibrio

Estandarización

Page 113: Arquitectura evolutiva

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

Flexibilidad- Construcción Interna

Page 114: Arquitectura evolutiva

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

Flexibilidad- Construcción Interna

Page 115: Arquitectura evolutiva

Domain Driven Design

Page 116: Arquitectura evolutiva

Domain Driven Design

Page 117: Arquitectura evolutiva

Bounded Context

Productos

Clientes

E-R en REST

Page 118: Arquitectura evolutiva

Bounded Context

Productos

Clientes

E-R en REST

Page 119: Arquitectura evolutiva

Bounded Context

Facturación

CampañasMarketing

Capacidades del negocio

Entrega

Compras

Page 120: Arquitectura evolutiva

Gobierno Descentralizado

Page 121: Arquitectura evolutiva

Transacciones distribuidas

tx

tx

Page 122: Arquitectura evolutiva

Transacciones distribuidas

tx

tx

Page 123: Arquitectura evolutiva

Transacciones distribuidas

tx

tx

Page 124: Arquitectura evolutiva

Escalabilidad

Monolíticas Micro Servicios

Page 125: Arquitectura evolutiva

Trade offs

Page 126: Arquitectura evolutiva

Automatización de la infraestructura

Page 127: Arquitectura evolutiva

Monitoreo

Metrics

Page 128: Arquitectura evolutiva

Despliegue

Page 129: Arquitectura evolutiva
Page 130: Arquitectura evolutiva

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

Page 131: Arquitectura evolutiva

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

Page 132: Arquitectura evolutiva

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

Page 133: Arquitectura evolutiva

Productos en lugar de Proyectos

Si lo diseñas lo implementas

“you build, you run it”

Si lo implementas, lo despliegas

Page 134: Arquitectura evolutiva
Page 135: Arquitectura evolutiva

Dietzlers Law

Page 136: Arquitectura evolutiva

Dietzlers Law

Page 137: Arquitectura evolutiva

Dietzlers Law

Page 138: Arquitectura evolutiva

Dietzlers Law

Page 139: Arquitectura evolutiva

El negocio siempre quiere el 100%

Dietzlers Law

Page 140: Arquitectura evolutiva
Page 141: Arquitectura evolutiva

Empezar con lo más fácil

Page 142: Arquitectura evolutiva

Empezar con lo más fácil

Maleable No Irreversibles

Page 143: Arquitectura evolutiva

Empezar con lo más fácil

Maleable No Irreversibles

ProactivoPredictivo

Page 144: Arquitectura evolutiva

Empezar con lo más fácil

Maleable No Irreversibles

Simplificar, Desacoplar y Desenredar

ProactivoPredictivo

Page 145: Arquitectura evolutiva
Page 146: Arquitectura evolutiva

@faustodelatog

MUCHAS GRACIAS

@emmeblm