t3chfest 2016 - implementando microservicios, como y por que

38
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

Upload: fatima-casau-perez

Post on 21-Jan-2017

655 views

Category:

Software


3 download

TRANSCRIPT

Page 1: t3chfest 2016 - Implementando microservicios, como y por que

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

Page 2: t3chfest 2016 - Implementando microservicios, como y por que

@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

Page 3: t3chfest 2016 - Implementando microservicios, como y por que

Punto de partida

Aplicaciones Monolíticas

Page 4: t3chfest 2016 - Implementando microservicios, como y por que

Aplicaciones monolíticas

Aplicaciones monolíticas

http://martinfowler.com/articles/microservices.html

Page 5: t3chfest 2016 - Implementando microservicios, como y por que

Aplicaciones monolíticas

http://martinfowler.com/articles/microservices.html

Aplicaciones monolíticas

Page 6: t3chfest 2016 - Implementando microservicios, como y por que

http://martinfowler.com/articles/microservices.html

Aplicaciones monolíticas

Page 7: t3chfest 2016 - Implementando microservicios, como y por que

Arquitectura 3 capas•UI•App•DataBase

http://martinfowler.com/articles/microservices.html

Aplicaciones monolíticas

Page 8: t3chfest 2016 - Implementando microservicios, como y por que

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

Page 9: t3chfest 2016 - Implementando microservicios, como y por que

Problemas

¿Por qué? Aplicaciones monolíticas vs. microservicios

Page 10: t3chfest 2016 - Implementando microservicios, como y por que

Problemas• Añadir nuevas funcionalidades

¿Por qué? Aplicaciones monolíticas vs. microservicios

Page 11: t3chfest 2016 - Implementando microservicios, como y por que

Problemas• Añadir nuevas funcionalidades

• Difícil de encajar

¿Por qué? Aplicaciones monolíticas vs. microservicios

Page 12: t3chfest 2016 - Implementando microservicios, como y por que

Problemas• Añadir nuevas funcionalidades

• Difícil de encajar• Incremento de posibles errores

¿Por qué? Aplicaciones monolíticas vs. microservicios

Page 13: t3chfest 2016 - Implementando microservicios, como y por que

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

Page 14: t3chfest 2016 - Implementando microservicios, como y por que

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

Page 15: t3chfest 2016 - Implementando microservicios, como y por que

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

Page 16: t3chfest 2016 - Implementando microservicios, como y por que

Problemas

¿Por qué? Aplicaciones monolíticas vs. microservicios

Page 17: t3chfest 2016 - Implementando microservicios, como y por que

Problemas• Requerimientos no funcionales

¿Por qué? Aplicaciones monolíticas vs. microservicios

Page 18: t3chfest 2016 - Implementando microservicios, como y por que

Problemas• Requerimientos no funcionales

• Escalabilidad

¿Por qué? Aplicaciones monolíticas vs. microservicios

Page 19: t3chfest 2016 - Implementando microservicios, como y por que

Problemas• Requerimientos no funcionales

• Escalabilidad• Escalado en su totalidad

¿Por qué? Aplicaciones monolíticas vs. microservicios

Page 20: t3chfest 2016 - Implementando microservicios, como y por que

Problemas• Requerimientos no funcionales

• Escalabilidad• Escalado en su totalidad

• Respuesta frente a fallos

¿Por qué? Aplicaciones monolíticas vs. microservicios

Page 21: t3chfest 2016 - Implementando microservicios, como y por que

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

Page 22: t3chfest 2016 - Implementando microservicios, como y por que

Solución:

¿Por qué? Aplicaciones monolíticas vs. microservicios

Page 23: t3chfest 2016 - Implementando microservicios, como y por que

Solución: Microservicios

¿Por qué? Aplicaciones monolíticas vs. microservicios

Page 24: t3chfest 2016 - Implementando microservicios, como y por que

Solución: Microservicios

¿Por qué? Aplicaciones monolíticas vs. microservicios

http://martinfowler.com/articles/microservices.html

Page 25: t3chfest 2016 - Implementando microservicios, como y por que

Solución: Microservicios

¿Por qué? Aplicaciones monolíticas vs. microservicios

http://martinfowler.com/articles/microservices.html

Page 26: t3chfest 2016 - Implementando microservicios, como y por que

Solución: Microservicios

¿Por qué? Aplicaciones monolíticas vs. microservicios

http://martinfowler.com/articles/microservices.html

Page 27: t3chfest 2016 - Implementando microservicios, como y por que

Solución: Microservicios

¿Por qué? Aplicaciones monolíticas vs. microservicios

http://martinfowler.com/articles/microservices.html

Page 28: t3chfest 2016 - Implementando microservicios, como y por que

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

Page 29: t3chfest 2016 - Implementando microservicios, como y por que

Eficiencia

Ventajas

Simplicidad

Time to market

Independencia

Heterogeneidad

Alta disponibilidad

Page 30: t3chfest 2016 - Implementando microservicios, como y por que

Cubo de escalabilidad

"The Art of Scalability" Martin Abbott y Michael Fisher

Page 31: t3chfest 2016 - Implementando microservicios, como y por que

"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

Page 32: t3chfest 2016 - Implementando microservicios, como y por que

Organización en torno a capacidades de negocio

http://martinfowler.com/articles/microservices.html

Page 33: t3chfest 2016 - Implementando microservicios, como y por que

Organización en torno a capacidades de negocio

http://martinfowler.com/articles/microservices.html

Page 34: t3chfest 2016 - Implementando microservicios, como y por que

Automatización - Continuous Delivery

Agile - Devops Roadmap

Page 35: t3chfest 2016 - Implementando microservicios, como y por que

Casos de éxito

Page 36: t3chfest 2016 - Implementando microservicios, como y por que

Meetup: Arquitecturas basadas en microservicios, Miguel Garrido, Raúl Galán - https://youtu.be/2SnWpn1pCOs

¿Cómo? Arquitectura

Page 37: t3chfest 2016 - Implementando microservicios, como y por que

¿Cómo? Desarrollo

EjemploDesarrollo de

microservicios con Spring Boot

(http://start.spring.io)(https://spring.io/guides/gs/accessing-data-rest)

Page 38: t3chfest 2016 - Implementando microservicios, como y por que

Gracias!