Except where otherwise noted, this work is licensed under: http://creativecommons.org/licenses/by-nc-sa/3.0/
Implementando MicroserviciosCómo y por qué
Leganés, 11 y 12 de febrero
Fátima Casaú Pérez
@fatimacasau
8 años de experiencia como ingeniero de software2 últimos años en Scrum MasterTecnologías Java, Spring, Groovy, GrailsGreach, Spring IO, SpringOne2GX, T3chFest, CAS, AOS…Madrid Spring User Group Hobby: Cocina y repostería
Punto de partida
Aplicaciones Monolíticas
Aplicaciones monolíticas
Aplicaciones monolíticas
http://martinfowler.com/articles/microservices.html
Aplicaciones monolíticas
http://martinfowler.com/articles/microservices.html
Aplicaciones monolíticas
http://martinfowler.com/articles/microservices.html
Aplicaciones monolíticas
Arquitectura 3 capas•UI•App•DataBase
http://martinfowler.com/articles/microservices.html
Aplicaciones monolíticas
Arquitectura 3 capas•UI•App•DataBase
http://martinfowler.com/articles/microservices.html
Manejo de una sola aplicación:● Desarrollo● Testing● Despliegue● Escalado
Aplicaciones monolíticas
Problemas
¿Por qué? Aplicaciones monolíticas vs. microservicios
Problemas• Añadir nuevas funcionalidades
¿Por qué? Aplicaciones monolíticas vs. microservicios
Problemas• Añadir nuevas funcionalidades
• Difícil de encajar
¿Por qué? Aplicaciones monolíticas vs. microservicios
Problemas• Añadir nuevas funcionalidades
• Difícil de encajar• Incremento de posibles errores
¿Por qué? Aplicaciones monolíticas vs. microservicios
Problemas• Añadir nuevas funcionalidades
• Difícil de encajar• Incremento de posibles errores• Mayores dependencias -> código más inestable y menos
mantenible
¿Por qué? Aplicaciones monolíticas vs. microservicios
Problemas• Añadir nuevas funcionalidades
• Difícil de encajar• Incremento de posibles errores• Mayores dependencias -> código más inestable y menos
mantenible• Re-desplegar toda la app
¿Por qué? Aplicaciones monolíticas vs. microservicios
Problemas• Añadir nuevas funcionalidades
• Difícil de encajar• Incremento de posibles errores• Mayores dependencias -> código más inestable y menos
mantenible• Re-desplegar toda la app• Bajo “Time to market”
¿Por qué? Aplicaciones monolíticas vs. microservicios
Problemas
¿Por qué? Aplicaciones monolíticas vs. microservicios
Problemas• Requerimientos no funcionales
¿Por qué? Aplicaciones monolíticas vs. microservicios
Problemas• Requerimientos no funcionales
• Escalabilidad
¿Por qué? Aplicaciones monolíticas vs. microservicios
Problemas• Requerimientos no funcionales
• Escalabilidad• Escalado en su totalidad
¿Por qué? Aplicaciones monolíticas vs. microservicios
Problemas• Requerimientos no funcionales
• Escalabilidad• Escalado en su totalidad
• Respuesta frente a fallos
¿Por qué? Aplicaciones monolíticas vs. microservicios
Problemas• Requerimientos no funcionales
• Escalabilidad• Escalado en su totalidad
• Respuesta frente a fallos• Un error o caída afecta a toda la app
¿Por qué? Aplicaciones monolíticas vs. microservicios
Solución:
¿Por qué? Aplicaciones monolíticas vs. microservicios
Solución: Microservicios
¿Por qué? Aplicaciones monolíticas vs. microservicios
Solución: Microservicios
¿Por qué? Aplicaciones monolíticas vs. microservicios
http://martinfowler.com/articles/microservices.html
Solución: Microservicios
¿Por qué? Aplicaciones monolíticas vs. microservicios
http://martinfowler.com/articles/microservices.html
Solución: Microservicios
¿Por qué? Aplicaciones monolíticas vs. microservicios
http://martinfowler.com/articles/microservices.html
Solución: Microservicios
¿Por qué? Aplicaciones monolíticas vs. microservicios
http://martinfowler.com/articles/microservices.html
Single Responsibility Principle: A class should have one, and only one, reason to change.
Agile Software Development, Principles, Patterns, and PracticesRobert C. Martin
Single Responsibility Principle
Eficiencia
Ventajas
Simplicidad
Time to market
Independencia
Heterogeneidad
Alta disponibilidad
Cubo de escalabilidad
"The Art of Scalability" Martin Abbott y Michael Fisher
"Any organization that designs a system (defined broadly) will produce a design whose structure is copy of the organization's
communication structure."Melvyn Conway, 1967
Ley de Conway
Organización en torno a capacidades de negocio
http://martinfowler.com/articles/microservices.html
Organización en torno a capacidades de negocio
http://martinfowler.com/articles/microservices.html
Automatización - Continuous Delivery
Agile - Devops Roadmap
Casos de éxito
Meetup: Arquitecturas basadas en microservicios, Miguel Garrido, Raúl Galán - https://youtu.be/2SnWpn1pCOs
¿Cómo? Arquitectura
¿Cómo? Desarrollo
EjemploDesarrollo de
microservicios con Spring Boot
(http://start.spring.io)(https://spring.io/guides/gs/accessing-data-rest)
Gracias!