Últimamente se escucha hablar mucho de microservicios web y parece un tendencia en el desarrollo de aplicaciones pero en muchas ocasiones no se sabe muy bien qué son, cuál es son sus diferencias con respecto a las aplicaciones monolíticas y qué ventajas nos aportan con respecto a éstas últimas.
En esta charla veremos una introducción a los microservicios, una comparativa con las aplicaciones monolíticas y ejemplos de frameworks, herramientas y arquitecturas que podemos montar para implementar y desplegar aplicaciones basadas en microservicios
Requerimientos, Ventajas y Desventajas de las aplicaciones web
t3chfest 2016 - Implementando microservicios, como y por que
1. Except where otherwise noted, this work is licensed under:
http://creativecommons.org/licenses/by-nc-sa/3.0/
Implementando Microservicios
Cómo y por qué
Leganés, 11 y 12 de febrero
Fátima Casaú Pérez
2. @fatimacasau
8 años de experiencia como ingeniero de software
2 últimos años en
Scrum Master
Tecnologías Java, Spring, Groovy, Grails
Greach, Spring IO, SpringOne2GX, T3chFest, CAS, AOS…
Madrid Spring User Group
Hobby: Cocina y repostería
11. Problemas
• Añadir nuevas funcionalidades
• Difícil de encajar
¿Por qué?
Aplicaciones monolíticas vs. microservicios
12. Problemas
• Añadir nuevas funcionalidades
• Difícil de encajar
• Incremento de posibles errores
¿Por qué?
Aplicaciones monolíticas vs. microservicios
13. 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
14. 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
15. 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
19. Problemas
• Requerimientos no funcionales
• Escalabilidad
• Escalado en su totalidad
¿Por qué?
Aplicaciones monolíticas vs. microservicios
20. Problemas
• Requerimientos no funcionales
• Escalabilidad
• Escalado en su totalidad
• Respuesta frente a fallos
¿Por qué?
Aplicaciones monolíticas vs. microservicios
21. 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
28. Single Responsibility Principle:
A class should have one, and only one, reason to change.
Agile Software Development, Principles, Patterns, and Practices
Robert C. Martin
Single Responsibility Principle
31. "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
32. Organización en torno a capacidades de
negocio
http://martinfowler.com/articles/microservices.html
33. Organización en torno a capacidades de
negocio
http://martinfowler.com/articles/microservices.html