Arquitectura de Microservicios
Arquitectura de Microservicios
Arquitectura de Microservicios
FACULTAD DE INGENIERÍA EN
SISTEMAS DE LA INFORMACIÓN
Este tipo de arquitectura tiene cierta orientación con el estilo monolítico (parte
cliente, manejo de datos, y servidor lógico). Y aunque se oriente a este modelo, que se
vuelve un problema cuando surgen cambios o evoluciones empresariales, que obligan
a la aplicación a ser mas grande y ser modificada casi que de forma completa. Esta
arquitectura soluciona en medida el problema, ya que divide al programa en varios
servicios que son independientes uno del otro, y así al requerirse una modificación
sobre algún servicio, la modificación sea sobre este modulo (por llamarle así) y evitar el
modificar el resto de servicios que no interfieren en la funcionalidad del que requiere
ser modificado.
Funcionalidad
Este tipo de arquitectura de software, permite un mejor rendimiento y
mantenimiento de la aplicación. Ya que, incluso, cada microservicio puede ser
desarrollado en distintos tipos de lenguaje. Estos microservicios establecen una
comunicación por medio de APIs (conjunto de reglas y especificaciones para la
comunicación entre aplicaciones).
Enfoque
Su enfoque parte de la división de la empresa u organizaciones, en sus factores
lógicos de negocio.
Cada micro servicio debe estar separado, y ya que estas al ser trabajadas de la
misma forma, permite la operabilidad en distintos equipos y su desarrollo en distintos
lenguajes, librerías, almacenes de datos. Todo esto según el problema al que se
pretende dar solución.
Características
Diversidad tecnológica
Autonomía
Organizado en torno a la lógica del negocio
Pequeño y enfocado
Productos no proyectos
Los componentes son servicios
Micro-servicios y contenedores
Un contenedor es un paquete de software individual, que proporciona las
dependencias necesarias para una funcionalidad independiente. En este caso los
micro-servicios, cada servicio pertenece a un contenedor individual (estos
contenedores pueden estar de forma individual en una misma área de trabajo).
Ventajas
Ofrece modularidad, ya que permite el poder modificar a un complemento sin
que este afecte a otro, al tratarse micro-servicios
Es una arquitectura versátil ya que da la opción de utilizar distintas herramientas
tecnológicas independientes, como lo pueden ser los lenguajes de
programación.
La escabilidad que permite esa arquitectura, amplia lo posibilidad de hacer
crecer al programa, sin dañar la funcionalidad y evitando así el sobre
acoplamiento de los elementos
Otra ventaja es el fácil mantenimiento que se le puede dar al programa y a su
vez la reducción del costo por el mismo.
La funcionalidad de agilidad permite que se pueda modificar los complementos,
aunque estos hayan sido creados por terceras personas.
La rapidez de actuación dice que permite el desarrollo de los micro-servicios
sean menos costosos, con la utilización de contenedores de software, y así dar
un despliegue más rápido de respuesta.
Desventajas
Demanda un consumo alto de memoria y CPU, esto debido a la independencia
de cada micro-servicio que tiene sus propios recursos y base de datos.
Se requiere de más tiempo en su estructuración para establecer los lazos de
conexión entre micro-servicio, y así mismo el dividir todo el programa en estos.
El disponer de varios recursos distintos en tecnología genera una mayor gestión
de estos recursos, y eso genera poca uniformidad
Las pruebas de funcionamiento son más difíciles ya que al estar distribuidos, las
pruebas que son de carácter general son más complejas.
Aunque el costo en mantenimiento es bajo, los costos se elevan en la
infraestructura a utilizarse y en las pruebas que anteriormente se mencionan
Al contarse con mayor demanda de micro-servicios la gestión de estos es más
complicada de controlar, y así mismo el poder integrar a los mismos.
Se requiere de experiencia de alto nivel para el manejo de las versiones que se
lleguen a trabajar.
Ejemplo:
Justificación.
Un sistema organizacional a nivel de país, donde se distribuyen distintos
procesos de apoyo comunitario y de intervención personal. En el cual se registran los
procesos administrativos en gastos, ingresos por donaciones, manejo de presupuesto
de los distintos programas en el país, el cual debe ser monitoreado desde una oficina
central, los procesos de registro de información de los beneficiados, el manejo de
reportes locales y nacionales. Información de usuarios, y manejo de servicios de
infraestructura.