Vous êtes sur la page 1sur 17

MICROSERVICIOS

Presentado por: Richar Cruzado Vallejos


Agosto 2017
1
NDICE

00 INTRODUCCIN

01 MICROSERVICIOS

02 CARACTERISTICAS

03 MICROSERVICIOS Y BENEFICIOS

2
00 - INTRODUCCIN Parte 1

Una de las tendencias ms de moda en las arquitecturas backend al da


de hoy son los microservicios. Bsicamente donde antes tenamos una (o
pocas) grandes aplicaciones que hacan de todo, llamadas monolitos, ahora
tenemos varias pequeas aplicaciones especializadas en un rea especfica
de dominio.

Como consecuencia de esta particin en pequeos microservicios,


estamos sustituyendo las llamadas clsicas entre clases de Java en la
misma JVM (si se est trabajando con Java) por llamadas entre
microservicios a travs de sus APIs pblicas. Por ejemplo:

3
00 - INTRODUCCIN Parte 2

Microservicio de apertura de tarjeta de crdito recibe una peticin de


apertura del producto (tarjeta de crdito) por parte del usuario
60044000.
El microservicio de Venta TC Provisional llama a:
El microservicio de Verificacin de Token.
El microservicio de Creacin Cliente con id cliente 60044000.
El microservicio de Alta TC Fisica + Alta TC Provisional.
El microservicio de Registrar Monitor Core.
El microservicio de Registrar Expediente.
Generacin POTC, entre otros ms.

4
01 - MICROSERVICIOS

Segn Martin Fowler y James Lewis explican en su


artculo Microservices, los microservicios se definen como un estilo
arquitectural, es decir, una forma de desarrollar una aplicacin, basada en un
conjunto de pequeos servicios, cada uno de ellos ejecutndose de forma
autnoma y comunicndose entre si mediante mecanismos livianos,
generalmente a travs de peticiones REST sobre HTTP por medio de
sus APIs.
La tendencia es que las aplicaciones sean diseadas con un enfoque
orientado a microservicios, construyendo mltiples servicios que
colaboran entre si, en lugar del enfoque monoltico, donde se construye y
despliega una nica aplicacin que contenga todas las funcionalidades.

5
01 - MICROSERVICIOS: Caractersticas

Algunas de las caractersticas ms destacadas de los microservicios son:


Pueden ser auto-contenidos, de tal forma que incluyen todo lo necesario
para prestar su servicio.
Servicios pequeos, lo que facilita el mantenimiento. Ej: Personas,
Productos, Posicin Global, etc.
Principio de responsabilidad nica: cada microservicio har una nica
cosa, pero la har bien
Polglotas: una arquitectura basada en microservicios facilita la
integracin entre diferentes tecnologas (lenguajes de programacin,
BBDD, etc).
Despliegues unitarios: los microservicios pueden ser desplegados por
separado, lo que garantiza que cada despliegue de un microservicio no
implica un despliegue de toda la plataforma. Tienen la posibilidad de
incorporar un servidor web embebido como Tomcat o Jetty.
Escalado eficiente: una arquitectura basada en microservicios permite un
escalado elstico horizontal, pudiendo crear tantas instancias de un
microservicio como sea necesario.
6
Llamadas entre servicios: el caso de los microservicios

Un microservicio slo se puede comunicar con el exterior a travs de su interfaz


API pblica. Si usamos cualquier otro medio no estamos independizando bien el
diseo y no estamos haciendo microservicios correctamente.

Por centrar la explicacin con el modelo tpico: la interfaz API pblica tpica es
una interfaz REST con JSON. La situacin habitual es que un microservicio
reciba una peticin REST a una URL que est publicando, lea el JSON de
entrada (si es un POST, por ejemplo) y lo convierta a una estructura entendible
por el lenguaje en el que est programando.

Por ejemplo, cuando se desea Confirmar la venta, se hace una peticin al


microservicio de Generacin de Token la cual genera un cdigo de verificacin, lo
hace a travs de una interfaz REST, intercambindose un JSON de este tipo:

7
Ejemplo de invocacin de un servicio (REST )

8
1.1 Arquitectura monoltica

9
1.1.2 Propuesta de evolucin tcnica

La arquitectura de Microservicios segmenta la aplicacin en varios


servicios pequeos, independientes y atmicos que pueden proveer su
funcionalidad por s solos o agrupados con otros.

Un microservicio puede ser construido con una tecnologa particular,


manejar su propio almacenamiento y ser desplegado en una ubicacin
distinta al resto (Ej: la nube de IBM Bluemix).
10
Comprendiendo la Arquitectura de Microservicios

Para comprender la arquitectura basada en microservicios, lo mejor es


considerar su opuesto, su nmesis, la arquitectura monoltica . En sta,
la aplicacin se desarrolla como una nica unidad que no necesitar de
ningn componente externo para funcionar.

El problema de las aplicaciones monolticas es que todos los ciclos de


cambio estn vinculados unos a otros , por lo que la ms mnima
modificacin en una remota seccin de la app conllevara a la creacin y
despliegue de una versin completamente nueva, con el gasto de
recursos correspondiente.

11
MICROSERVICIOS: Ejemplos

Sin duda el alcance que ha tenido este mtodo de desarrollo ha tenido ciert
xito en su implementacin. Multitud de webs que sirven aplicaciones a gran
escala han decidido invertir en la evolucin hacia los microservicios en vistas
de un futuro donde el mantenimiento y escalabilidad de sus productos es
mucho ms simple, efectivo y rpido.
Vamos a destacar algunas de estas compaas, que lo mismo hasta os
suenan:

Netflix: Esta plataforma tiene una arquitectura generalizada que desde hace ya
un par de aos (coincidiendo con su boom en U.S.A.) se pas a los
microservicios para el funcionamiento de sus productos.

12
MICROSERVICIOS: Ejemplos

Amazon: No soporta tantos dispositivos como Netflix, pero tampoco es que


sea fundamental para cubrir su sector. Migr hace tres aos a la arquitectura
de microservicios siendo una de las primeras grandes compaas que la
implementaban en produccin.
Ebay: Cmo no, una de las empresas con mayor visin de futuro, siendo
pionera en la adopcin de tecnologas como Docker.

13
01 ARQUITECTURA DE MICROSERVICIOS

14 14
1.1.2 Microservicios

Beneficios

Otorga a los desarrolladores libertad de desarrollar y desplegar servicios


de forma independiente.
Un microservicio se puede desarrollar con un equipo de trabajo mnimo.
Se pueden usar diferentes lenguajes de programacin en diferentes
mdulos.
Fcil integracin y despliegue automtico (por ejemplo con Jenkins).
Los desarrolladores podrn hacer uso de las tecnologas ms actuales.
Funcionalidad modular, con lo que la modificacin de un mdulo no
afectar al funcionamiento del resto.

15
1.1.2 Propuesta de evolucin tcnica de API WAS

Beneficios

Los desarrolladores podrn hacer uso de las tecnologas ms actuales.


Fcil de escalar e integrar con aplicaciones de terceros.
Fcil de entender y modificar, por lo que la integracin de nuevos
miembros al equipo de desarrollo ser muy rpida.
El uso de contenedores har el desarrollo y despliegue de la app. mucho
ms rpido.

16
Muchas gracias.

17

Vous aimerez peut-être aussi