introducción a desarrollo de micro servicios

19
S Micro servicios Haz una cosa, pero hazla bien!

Upload: wesovi

Post on 17-Jul-2015

189 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Introducción a desarrollo de micro servicios

S

Micro serviciosHaz una cosa, pero hazla bien!

Page 2: Introducción a desarrollo de micro servicios

Tabla de contenidos

• Arquitecturas monolíticas

• Micro servicios al rescate

• Comunicaciones entre micro servicios

• Spring Boot

Iván Corrales Solera

<[email protected]>

Page 3: Introducción a desarrollo de micro servicios

S

Arquitecturas

monolíticas

Page 4: Introducción a desarrollo de micro servicios

Características

• Despliegues de aplicaciones como una única unidad.

• Se trata de entidades rígidas, sin posibilidad de dividirlas

• Almacén de datos compartido por toda la aplicación.

• Una aplicación para todos los requisitos funcionales

• Completamente desarrollada en un único lenguaje de

programación

Iván Corrales Solera

<[email protected]>

Page 5: Introducción a desarrollo de micro servicios

Estructura

• Se comparte la vista

• Se desarrollan

componentes de negocio

de modo independiente,

pero se despliegan como

un único ente

• Almacen de datos

compartido por todas las

funcionalidades

Iván Corrales Solera

<[email protected]>

Page 6: Introducción a desarrollo de micro servicios

Consecuencias

• Desarrollos y despliegues únicos

• Aplicaciones con alta complejidad y tamaño

• Largos ciclos de desarrollo

• Despliegues eternos

• Tests de regresión se convierten en una pesadilla

• Difícil de escalar y únicamente escalado horizontal.

Iván Corrales Solera

<[email protected]>

Page 7: Introducción a desarrollo de micro servicios

S

Micro servicios

Iván Corrales

Solera

<developer@weso

vi.com>

Page 8: Introducción a desarrollo de micro servicios

Definición y principios

S Cada programa hace una cosa, pero la hace bien

S Divide y vencerás

Iván Corrales Solera

<[email protected]>

Microservices is a software architecture design pattern, in which

complex applications are composed of small, independent

processes communicating with each other using language-

agnostic APIs. These services are small, highly decoupled and

focus on doing a small task.

Lo que dice Wikipedia…

Page 9: Introducción a desarrollo de micro servicios

Características

S Poliglotas: cada micro servicio puede ser implementado en un lenguaje de programación

S Tolerancia a fallos: Un fallo de un micro servicio no afectará al resto.

S Independientes: Ciclos de vida independientes

S Escalado: Escalado eficiente

S Autonomía: Cada servicio es desarrollado y desplegado de forma independiente

S Facilita la colaboración entre desarrolladores

Iván Corrales Solera

<[email protected]>

Page 10: Introducción a desarrollo de micro servicios

Estructura

Iván Corrales Solera

<[email protected]>

Page 11: Introducción a desarrollo de micro servicios

Estructura II

S Almacenes de datos independientes

S Cada aplicación implementa la solución a una necesidad

funcional

S Interfaces de usuario independientes

Iván Corrales Solera

<[email protected]>

Page 12: Introducción a desarrollo de micro servicios

Beneficios “No técnicos”

S Promueve la proactividad del equipo.

S Reduce el “time to market”

S Escalado eficiente

S Evita downtime de aplicaciones

S Reduce el coste de bug fixing y el tiempo empleado en

tests de regresión.

Iván Corrales Solera

<[email protected]>

Page 13: Introducción a desarrollo de micro servicios

Beneficios técnicos

S Desarrollos sencillos.

S Posibilidad de implementar cada servicio con el lenguaje

más adecuado.

S Evita conflictos en código.

S Principio de responsabilidad única.

S Independencia de procesos de integración continua

Iván Corrales Solera

<[email protected]>

Page 14: Introducción a desarrollo de micro servicios

S

Comunicaciones entre

micro serviciosComunicaciones HTTP vs AMQ

Iván Corrales

Solera

<developer@weso

vi.com>

Page 15: Introducción a desarrollo de micro servicios

Comunicación Http

Ventajas

S Simple y habitual

S Peticiones y respuestas fáciles

S Firewall friendly

S No hay un broker intermediario

Desventajas

S Servidor debe estar disponible

S Cliente necesita conocer URL’s

del servicio

Iván Corrales Solera

<[email protected]>

Page 16: Introducción a desarrollo de micro servicios

Comunicación AMQ

Ventajas

S Desacopla cliente de servidor

S Broker almacena los mensajes

entre micro servicios

S Soporte de variedad de

patrones de comunicación

Desventajas

S Se añade complejidad al broker

S Gestión de peticiones y

respuestas más compleja

Iván Corrales Solera

<[email protected]>

Page 17: Introducción a desarrollo de micro servicios

S

Spring BootFacilitando el desarrollo de micro servicios

Iván Corrales Solera

<[email protected]

m>

Page 18: Introducción a desarrollo de micro servicios

¿Que es Spring Boot?

S Forma sencilla de arrancar proyectos

S Ofrece monitorización y auditoria

S Configuración simplificada (CoC)

S No se genera código ni se usa XML

S No es invasivo, permite sobreescribir la configuración.

S Servidor de aplicaciones como parte de la aplicación

S Ofrece endpoints que pueden ser securizados y personalizados.

Page 19: Introducción a desarrollo de micro servicios

Dónde comienzo

S http://start.spring.io/

S http://projects.spring.io/spring-boot/

S http://docs.spring.io/spring-

boot/docs/current/reference/htmlsingle/

S https://github.com/

S ….

Iván Corrales Solera

<[email protected]>