arquitectura evolutiva por fausto de la torre

55
ARQUITECTURA EVOLUTIVA

Upload: diana-pinto

Post on 20-Jan-2017

218 views

Category:

Software


2 download

TRANSCRIPT

ARQUITECTURA EVOLUTIVA

Fausto De La Torre

Desarrollador

Líder Desarrollo

@faustodelatog

Project Manager

Arquitecto Software

Desarrollador

Consultor

Líder Técnico / Arquitecto

Siempre estamos contratando

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?

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

Enfoque Tradicional

Esperado vs. Real

El cambio es una realidad y complica

AntipatronBuenas Prácticas

HoyAyer t

Arquitectura de Software

t

t

Arquitectura EsperadaRealidad

Tradicional

Agile

Charles Darwin

Arquitecto de Software

Creando la ArquitecturaRespuesta al cambio

Seguir un planSOBRE

Respuesta al cambio y NO un plan

Creando la Arquitectura

Código que funciona y NO documentación

Código que funciona

DocumentaciónSOBRE

Creando la Arquitectura

Que dificulta el cambio?

ACOPLAMIENTORIGIDEZ

1982 1986 1989

Evitar pagar el costo del cambio al final

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

Decisiones reversibles Retardando las decisiones Decisiones involucran trabajadores

Diseño Emergente

El último momento responsable

t

Elementos de juicio

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

Micro Servicios

Entrega Continua

29

control de versiones

servidor integración continua

build tests …

30

control de versiones

servidor integración continua

build tests …

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

al día

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"

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

Customer

Delivery teamConstant flow of new features into production listo para

producción SIEMPRE

Entrega Continua

Entrega Continua

Aplicaciones Monolíticas

Aplicación

HTML, JS, etc.

Micro Servicios

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

Equilibrio

Estandarización

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

Flexibilidad- Construcción Interna

Domain Driven Design

Bounded Context

Productos

Clientes

E-R en REST

Bounded Context

Facturación

CampañasMarketing

Capacidades del negocio

Entrega

Compras

Gobierno Decentralizado

Transacciones distribuidas

tx

tx

Escalabilidad

Monolíticas Micro Servicios

Trade offs

Automatización de la infraestructura

Monitoreo

Metrics

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

El negocio siempre quiere el 100%

Dietzlers Law

Empezar con lo más fácil

Maleable No Irreversibles

Simplificar, Desacoplar y Desenredar

ProactivoPredictivo

@faustodelatog

MUCHAS GRACIAS