View
239
Download
3
Embed Size (px)
Citation preview
Fausto De La Torre
Desarrollador
Líder Desarrollo
@faustodelatog
Project Manager
Arquitecto Software
Desarrollador
Consultor
Líder Técnico / Arquitecto
i Contexto
Arquitectura Evolutiva - Definición
Características
Principios
Micro Servicios como Arquitectura Evolutiva
Conclusiones
i Contexto
Arquitectura Evolutiva - Definición
Características
Principios
Micro Servicios como Arquitectura Evolutiva
Conclusiones
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
i Contexto
Arquitectura Evolutiva - Definición
Características
Principios
Micro Servicios como Arquitectura Evolutiva
Conclusiones
“Soporta un cambio guiado, continuo e incremental como primer principio a lo largo de
muchas dimensiones”
ARQUITECTURA EVOLUTIVA
Rebecca Parsons, Neal Ford
Creando la Arquitectura
Respuesta al cambio
Seguir un planSOBRE
Respuesta al cambio y NO un plan
PLANIFICAR EN ENTORNOS CAMBIANTES
i Contexto
Arquitectura Evolutiva - Definición
Características
Principios
Micro Servicios como Arquitectura Evolutiva
Conclusiones
¿Qué Facilita la Evolución?
Experimentación
Guiado y validado por las capacidades del negocio
Modularidad y Desacoplamiento
Negocio
¿Qué Facilita la Evolución?
Experimentación
Guiado y validado por las capacidades del negocio
Modularidad y Desacoplamiento
Negocio
Modularidad y Desacoplamiento
SOA
Eventos
Capas UI
Controladores
Negocio
Persistencia
Microservicios
¿Qué Facilita la Evolución?
Experimentación
Guiado y validado por las capacidades del negocio
Modularidad y Desacoplamiento
Negocio
message busprocess choreographer
service orchestrator
business services BS BS BS BS BS BS
enterprise services ES ES ES ES ES ES
application services AS infrastructure services IS
Guiada por el Dominio - ¿SOA?
message busprocess choreographer
service orchestrator
business services BS BS BS BS BS BS
enterprise services ES ES ES ES ES ES
application services AS infrastructure services IS
Evolución guiada por una separación técnicaNo puede evolucionar guiado por el negocio
Guiada por el Dominio - ¿SOA?
control de versiones
servidor integración continua
build tests …
todos envían sus cambios al trunk al menos una vez
al día
Integración 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"
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"
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"
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"
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"
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
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.”
Equipos Multidisciplinarios organizados por
capacidades del negocio
Productos en lugar de Proyectos
Si lo diseñas lo implementas
“you build it, you run it”
Si lo implementas, lo despliegas
Creando la Arquitectura
Código que funciona y NO documentación
Código que funciona
DocumentaciónSOBRE
¿Qué Facilita la Evolución?
Experimentación
Guiado y validado por las capacidades del negocio
Modularidad y Desacoplamiento
Negocio
i Contexto
Arquitectura Evolutiva - Definición
Características
Principios
Micro Servicios como Arquitectura Evolutiva
Conclusiones
Si es doloroso hazlo más seguido
Pipelines de Despliegue
Integración Continua
Migraciones BD
Aprovisionamiento automático
…
i Contexto
Arquitectura Evolutiva - Definición
Características
Principios
Micro Servicios como Arquitectura Evolutiva
Conclusiones
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
Estandarización- Integración - Interfaces - Monitoreo - Despliegue
Flexibilidad- Construcción Interna
Estandarización- Integración - Interfaces - Monitoreo - Despliegue
Flexibilidad- Construcción Interna
Java
Clojure
Java
Bounded Context
Facturación
CampañasMarketing
Capacidades del negocio
Entrega
Compras
Java
Clojure
Java
Java
Bounded Context
Facturación
CampañasMarketing
Capacidades del negocio
Entrega
Compras
i Contexto
Arquitectura Evolutiva - Definición
Características
Principios
Micro Servicios como Arquitectura Evolutiva
Conclusiones
Vivir y abrazar el Cambio
Decisiones reversibles - Planificar lo necesario
Simplificar, Desacoplar y Desenredar
Pre/ReactivoPredictivo