Está en la página 1de 5

UNIVERSIDAD MARIANO GÁLVEZ DE GUATEMALA

FACULTAD DE INGENIERÍA EN

SISTEMAS DE LA INFORMACIÓN

INVESTIGACIÓN DE ARQUITECTURA DE MICROSERVICIOS

Kevin Sleyter Ortiz Martínez

Santa Cruz del Quiché, Agosto 2020


Arquitectura De Microservicios
Origen.
El origen de la terminología de arquitectura de servicios fue por un británico
ingeniero y orador de software empresarial, llamado Martin Flower. Surge en un taller
para ingenieros en mayo del 2011, desarrollado en Venecia. Esta arquitectura a pesar
de ser en idea “nueva” nos dice que este modo es utilizado para estructurar y diseñar
un software como un conjunto de servicios que son desplegables independientes. Y
que a pesar de que la definición es variante en algunos aspectos, se centra
características que van en función de la organización, la lógica de negocio, despliegues
automáticos, control descentralizado del lenguaje-programació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).

La distribución de la base de datos es un aspecto importante de mencionar de


este tipo de arquitectura, ya que permite el no utilizar una base de datos para múltiples
servicios, sino que cada servicio tiene su esquema de datos, permitiendo así el poder
escoger el modelo que más se adapte a la necesidad que se requiere. Existe
posibilidad de que se de duplicidad de la información entre los esquemas, pero, esta
esquematización por servicio es importante si se pretende aplicar este tipo de
arquitectura de microservicios.

Un aspecto importante de la arquitectura de microservicios es que esta intenta


separar un aspecto lógico del modelo de negocio a un solo lugar, y evitar de este modo
que este minicomponente crezca demasiado.

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).

Seguridad de la arquitectura de los micro-servicios


Esta infraestructura ofrece una ventaja contra ataques de tipo DDoS, ya que al
estar distribuidos los complementos y de forma aislada, se resiste a ese ataque de
denegación de servicios. Así que, si se llegase a efectuar un ataque en uno de estos
elementos, no afectarían a los demás, y así se evita el daño global de la aplicación.
A pesar de este beneficio surgen otras deficiencias en seguridad como lo pueden ser, a
mayor cantidad de áreas de red vulnerables, la falta de control del software por
terceros, y la disponibilidad para cada servicio.

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.

Explicación del sistema:


El sistema se complementa de distintos servicios organizaciones, tanto a los procesos
internos como a los externos. Por ende, la aplicación de micro-servicios es eficiente en
este caso, para el manejo y gestión de cada área, ya que se mencionan intervenciones
comunitarias las cuales requieren de registros de los beneficiados, los resultados de
desarrollo individual. En el área administrativa se lleva el control de gastos, ingresos, y
procesos de la propia organización, lo mismo ocurre con gerencia que debe de
monitorear y evaluar por separado para proceso y obtener un resultado global donde el
impacto debería de coincidir. A su vez, las generaciones de reportes deben de ser
aisladas de los beneficiarios y de los procesos administrativos de la organización.
Extendiéndose así hasta los colaboradores de la misma organización donde se debe
registrar su información y se realicen pruebas de desempeño.

También podría gustarte