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