ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Microservicios y Service Mesh


Enviado por   •  25 de Mayo de 2020  •  Monografías  •  1.703 Palabras (7 Páginas)  •  156 Visitas

Página 1 de 7

Microservicios y Service Mesh

Índice

Tabla de contenido

Índice        1

Introducción de Microservicios y Service Mesh        2

Aplicaciones Monolíticas y Microservicios        2

Desafío de las aplicaciones basadas en Microservicios        3

Service Mesh        3

Service Registry        4

Service Discovery        4

Testing        4

Circuit Breaker        5

BulkHead        5

Istio        6

Beneficios de Istio        7

Conclusión        7


Introducción de Microservicios y Service Mesh

Dado que los microservicios pueden encontrarse en cualquier parte y tener ubicación dinámica, se incrementa la complejidad operacional. La Service Mesh puede ayudar a resolver esta necesidad junto con otras tantas funcionalidades que describiremos detalladamente mas adelante.

El siguiente paper tratará sobre el enfoque tradicional y el porqué necesitamos un enfoque diferente y dinámico con microservicios basados en la nube, asi como tambien sobre el uso de service mesh y los beneficios que brinda.

Aplicaciones Monolíticas y Microservicios

Anterior a los microservicios, las aplicaciones eran monolíticas. En la ingeniería de software, una aplicación monolítica describe una única aplicación de software en niveles en los que la interfaz de usuario y código de acceso a datos se combinan en un solo programa de una plataforma única. En simples palabras, las aplicaciones monolíticas agrupan la funcionalidad y sus servicios en una base de código única.

A diferencia de las aplicaciones monolíticas, los microservicios son un estilo de arquitectura que divide una aplicación en diferentes componentes, en donde cada uno de estos realiza una tarea específica del negocio. A esté principio se lo llama principio de responsabilidad única.

En la siguiente imágen podemos ver una aplicación monolítica a la izquierda y una aplicación basada en microservicios a la derecha.

[pic 1]

Una aplicación que concentra toda su funcionalidad no es necesariamente mejor, en especial si tiende a crecer en complejidad, usuarios, desarrolladores y carga. Es por ello que las aplicaciones monolíticas tienen grandes desventajas en comparación con las aplicaciones basadas en microservicios.

Actualizar una aplicación monolítica, en la cual todas sus funcionalidades son dependientes, implica tener que hacer un relanzamiento de toda la aplicación. En cambio, en las aplicaciones de microservicios esto no es necesario dado que cada componente es independiente uno de otro y sus actualizaciones podrán hacerse por separado.  

Otra particularidad que posee el desarrollo de microservicios es que pueden ser desarrolladas por diferentes equipos de trabajo e incluso en diferentes lenguajes porque cada componente es una aplicación en sí misma.

 A su vez, el error en el código de una de estas aplicaciones no impactará en el funcionamiento de las otras, factor que sí ocurre en una aplicación monolítica.

 Desafío de las aplicaciones basadas en Microservicios

Con el cambio a las aplicaciones de microservicios, se puede descomponer un solo monolito grande en docenas de servicios individuales. Esto desacopla los equipos de desarrollo para que cada servicio se puede desarrollar y desplegar de forma independiente. 

Al no tener la necesidad de coordinar entre diferentes equipos para el desarrollo de toda la aplicación, se mejora la velocidad de desarrollo. Pero esto introduce un nuevo desafío: tener muchas más aplicaciones que se actualizan con más frecuencia que antes.

Las aplicaciones de microservicios también cambian el flujo de tráfico. Con aplicaciones monolíticas, el tráfico era principalmente de norte a sur. Las aplicaciones de microservicio se comunican entre sí para componer y reutilizar la funcionalidad, agregando más tráfico este-oeste. Este servicio a servicio hace que el tráfico necesite ser enrutado y, por lo general, los equilibradores de carga se combinan con cada servicio.

Service Mesh

Un service Mesh es un enfoque basado en software que se encarga del enrutamiento y la segmentación. El objetivo es poder resolver los desafíos de redes y seguridad de los microservicios operativos y la nube de infraestructura. 

Además, se encarga de la autenticación y encriptación service-to-service. Tiene la capacidad de administrar el tráfico, ya se frente a fallas, latencia, balanceo de carga o por ejemplo, comunicación uniforme.

Brinda 4 cosas fundamentales:

  • Facilita la conexión
  • Seguridad: el viaje de datos entre microservicios debe ser de forma encriptada. 
  • Conexión controlada
  • Visibilidad: poder saber qué microservicio habla con cuál.

Cuando se desee actualizar el software, es posible que se desee probar la nueva versión utilizando un proceso en el que se introduzcan las modificaciones gradualmente. Esto permite ganar confianza en una nueva versión antes de decidir lanzarla a toda su base de usuarios. 

Service mesh permite realizar está actualización gradual. Las herramientas de service mesh pueden administrar nuevas versiones de lanzamiento de un servicio probándolas en un pequeño porcentaje de tráfico primero, aumentando gradualmente la exposición a medida que el despliegue transcurre sin problemas. Esto crea un flujo suave de una versión a otra.

A continuación se describirán las funcionalidades de una service mesh.

Service Registry

El Service Registry es una funcionalidad de la service mesh que se utiliza para realizar un seguimiento de la ubicación y el estado de los servicios, por lo que un servicio solicitante puede ser dirigido a un servicio de proveedor de manera confiable. Quien trabaja con el Service Registry es el Service Discovery.

...

Descargar como (para miembros actualizados)  txt (12 Kb)   pdf (229.8 Kb)   docx (315.7 Kb)  
Leer 6 páginas más »
Disponible sólo en Clubensayos.com