0% encontró este documento útil (0 votos)
158 vistas5 páginas

Introducción a los Microservicios

Los microservicios dividen las aplicaciones en elementos más pequeños e independientes que se comunican entre sí. Cada microservicio se despliega de forma individual y puede estar programado en un lenguaje diferente. La arquitectura de microservicios permite actualizar y desplegar cada servicio de forma independiente sin afectar a los demás, además de adoptar nuevas tecnologías de forma más rápida.

Cargado por

Carla
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
158 vistas5 páginas

Introducción a los Microservicios

Los microservicios dividen las aplicaciones en elementos más pequeños e independientes que se comunican entre sí. Cada microservicio se despliega de forma individual y puede estar programado en un lenguaje diferente. La arquitectura de microservicios permite actualizar y desplegar cada servicio de forma independiente sin afectar a los demás, además de adoptar nuevas tecnologías de forma más rápida.

Cargado por

Carla
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Tema:

Microservicios.

1. ¿Qué son los Microservicios?


Son tanto un estilo de arquitectura como un modo de programar software. Con los
microservicios, las aplicaciones se dividen en sus elementos más pequeños e independientes
entre sí[ CITATION Red20 \l 12298 ].
Es un enfoque para desarrollar una aplicación de software como una serie de pequeños
servicios, cada uno ejecutándose de forma autónoma y comunicándose entre sí. Cada uno es
independiente y su código debe poder ser desplegado sin afectar a los demás. Incluso cada uno
de ellos puede escribirse en un lenguaje de programación diferente, ya que solo exponen la API
al resto de microservicios.
Los servicios se constituyen y despliegan de forma individual, y usualmente se apoyan en
procesos de integración y despliegue continuo[ CITATION jga15 \l 12298 ].
Según Fowler y Lewis los microservicios es una forma de construir una aplicación como un
conjunto de pequeños servicios, donde cada uno ejecuta en su propio proceso y se comunica
mediante protocolos livianos[CITATION And18 \l 12298 ].
Los microservicios al ser servicios pequeños y autónomos que trabajan juntos, no tienen reglas
sobre su tamaño, ni cómo dividir la aplicación en microservicios. Se concentran en realizar
cierta tarea, son perfectos para aplicaciones que están en constante funcionamiento y
crecimiento las cuales deben ser administrarlas para seguir creciendo.
Los microservicios pueden ser programados en diferentes tipos de lenguajes y cada uno se
puede conectarse a una base de datos distinta.

2. ARQUITECTURA DE LOS
MICROSERVICIOS
Para entender cómo funciona la arquitectura de
microservicios, es necesario primero comprender la
arquitectura monolítica.

Arquitectura Monolítica: todo el código está en un


archivo ejecutable principal, que puede ser más difícil de
solucionar, probar y actualizar. Si hay un problema en el código, ese problema podría ubicarse
en cualquier lugar dentro del software. En una aplicación monolítica, cualquier pequeño cambio
o actualización requiere compilar e implementar una versión completamente nueva de la
aplicación. Esto significa que cualquier desarrollo de aplicaciones monolíticas implica una
planificación, preparación, tiempo y gasto significativos.

Puede ser que algunas partes de la aplicación no necesariamente dependan unas de otras, pero
igual están encapsuladas en un solo sistema horizontal, esta estructura en aplicaciones robustas
y complejas las podría llevar a tener diferentes desafíos y dificultades[ CITATION Die15 \l
12298 ].
Situaciones a afrontar[ CITATION Die15 \l 12298 ]:
 Para hacer deploy se tiene que hacer toda la aplicación junto a todas sus partes.
 Todas las personas encargadas de las partes esenciales de la aplicación deben estar
presentes para un deploy, en caso de que se presente alguna falla crítica.
 Si hay un error de código crítico toda la aplicación deja de funcionar.
 Al momento de programar se genera una gran dependencia entre las partes,
comprometiendo a cualquiera de las partes al momento de un error crítico.
 Cambiar una de las partes podría conllevar el cambio de otras partes, incluso podría llevar a
cambiar la parte del usuario y así comprometer su experiencia.
 La escalabilidad está sujeta a toda la infraestructura debido a la estrecha relación entre las
partes. Todas las partes comparten los mismos recursos.

Arquitectura de Microservicios: es un
método de desarrollo de software que
consiste en construir una aplicación como
un conjunto de pequeños servicios, con
operaciones bien definidas e
independientes entre sí[ CITATION
Hib19 \l 12298 ].
Debido a que ninguna parte depende
necesariamente de otras partes, y cada
parte de forma independiente sabe
responder ante cualquier situación, esta
clase de arquitectura es la más
Ilustración 2 Arquitectura de Microservicios
importante hoy en día para un
desarrollo ágil y estable[ CITATION Die15 \l 12298 ].
Características de los microservicios[ CITATION Die15 \l 12298 ]:
 Se puede hacer un deploy de un solo servicio sin hacer deploy a los demás.
 Se puede hacer deploy del servicio únicamente con el equipo encargado del microservicio.
 En el caso de un error crítico los demás microservicios seguirán funcionando sin ser
afectados de forma directa.
 Cada equipo es capaz de programar sin interferir con otros equipos.
 Como consecuencia de lo anterior, cambiar una parte no afecta a otra parte, incluso no
debería afectar la experiencia del usuario final.

Para
implantar
una
Ilustración 3Comparativa de Arquitectura Monolítica y de Microservicios
arquitectura de microservicios se debe tener en cuenta 3 principales aspectos[ CITATION
Dan16 \l 12298 ]:
1. Modelo de referencia: en el que se definen las necesidades de una arquitectura de
microservicios.
2. Modelo de implementación: en el que se decidirá y concretará la implementación de los
componentes vistos en el modelo de referencia.
3. Modelo de despliegue: donde define cómo se van a desplegar los distintos componentes
de la arquitectura en diferentes entornos. Como se va a organizar y gestionar los
despliegues de los microservicios, así como las tecnologías usadas para tal fin.
Desventajas que pueden presentar los microservicios[ CITATION Arq19 \l 12298 ]:
 Alto consumo de memoria: al tener cada microservicio sus propios recursos y bases de
datos, consumen más memoria y CPU.
 Inversión de tiempo inicial: al crear la arquitectura, se necesita más tiempo para poder
fragmentar los distintos microservicios e implementar la comunicación entre ellos.
 Complejidad en la gestión: si contamos con un gran número de microservicios, será más
complicado controlar la gestión e integración de los mismos.
 Perfil de desarrollador: los microservicios requieren desarrolladores experimentados con
un nivel muy alto de experiencia y un control exhaustivo de las versiones. Además de
conocimiento sobre solución de problemas como latencia en la red o balanceo de cargas.
 No uniformidad: aunque disponer de un equipo tecnológico diferente para cada uno de los
servicios tiene sus ventajas, si no se gestiona correctamente, conducirá a un diseño y
arquitectura de aplicación poco uniforme.
 Dificultad en la realización de pruebas: debido a que los componentes de la aplicación
están distribuidos, las pruebas y test globales son más complicados de realizar.
 Coste de implantación alto: una arquitectura de microservicios puede suponer un alto coste
de implantación debido a costes de infraestructura y pruebas distribuidas.
3. TECNOLOGÍA QUE USA LOS MICROSERVICIOS
Al ser cada servicio desplegado de forma independiente, programado en distintos lenguajes y
además usar diferentes almacenamientos de datos. Los desarrolladores podrán hacer uso de las
tecnologías más actuales y diferentes dentro de cada servicio.
De esta forma se puede elegir la herramienta tecnológica más adecuada para cada tipo de
trabajo en lugar de tener una estandarizada.
Por ejemplo, si una parte del sistema necesita mejorar su rendimiento es posible usar una
tecnología, quizás más complicada, que permita alcanzar el nivel de rendimiento
requerido[ CITATION Des20 \l 12298 ].
Los microservicios prefieren dejar a cada servicio que gestione su propia base de datos, sean
estas diferentes instancias de la misma tecnología de base de datos o sistemas de base de datos
completamente diferentes. Por ejemplo podríamos tener:  Redis (base de datos en
memoria) para sesiones de usuarios, MySQL (relacional) para los datos de
pago, MongoDB (orientada a documentos) para el catálogo de productos, Neo4j (orientada a
grafos) para las recomendaciones y Apache Cassandra (orientado a clave-valor) para el análisis
de logs y analíticas[ CITATION Des20 \l 12298 ].
La arquitectura de microservicios permite adoptar nuevas tecnologías más rápido y en aquellos
lugares donde se puede aprovechar su potencial ya que se acota el impacto. Es importante
mencionar que los microservicios no obligan a tener distintas tecnologías de almacenamiento,
solo lo permiten.

4. Conclusión
La diferencia es que los microservicios es más fácil adaptar nuevos procesos, incorporar nuevas
tecnologías como son más pequeños se pueden actualizar y migrar a nuevas versiones en poco
tiempo lo contrario a una aplicación monolítica (entera). Pero lo microservicios no es la mejor
solución para cualquier software o proyecto, más aún si son programas sencillos de desarrollar
y que solucionan pocas tareas, ya que utilizar microservicios conlleva un gran esfuerzo como la
creación de cada servicio, mantenimiento, actualizaciones, monitorización, etc.
Los microservicios son la unión de varias metodologías, dado que cada servicio que lo compone
puede usar una distinta.

5. Bibliografía

[1 R. Hat, «[Link] [En línea]. Available:


] [Link] [Último acceso: 12 Agosto 2020].
[2 jgarzas, «[Link] 19 junio 2015. [En línea]. Available:
] [Link] [Último acceso: 12 agosto 2020].
[3 A. Nebel, «[Link] octubre 2018. [En línea]. Available:
] [Link] [Último
acceso: 11 agosto 2020].
[4 D. UG, «[Link] 2015. [En línea]. Available: [Link]
] microservicios/. [Último acceso: 11 agosto 2020].
[5 H. Tecnología, «[Link] 04 marzo 2019. [En línea]. Available:
] [Link]
microservicios/#:~:text=La%20arquitectura%20de%20microservicios%20(del,definidas%20e
%20independientes%20entre%20s%C3%AD.. [Último acceso: 11 agosto 2020].
[6 D. Sánchez, «[Link] 19 julio 2016. [En línea]. Available:
] [Link] [Último acceso: 11 agosto 2020].
[7 A. d. Software, «[Link] 09 marzo 2019. [En
] línea]. Available: [Link] [Último acceso: 12 agosto 2020].
[8 D. Web, «[Link] 3 marzo 2020. [En línea]. Available:
] [Link]
de-aplicaciones/. [Último acceso: 12 agosto 2020].

También podría gustarte