Taller de Microservicios

Microservicios con Go, MongoDB, Docker y Kubernetes son algunos de los elementos que integran este taller.

Taller de Microservicios

Para experimentar hace falta tener un taller

La experimentación de nuevas tecnologías necesita de un laboratorio donde realizar las pruebas. El laboratorio debe tener las herramientas y los entornos que permitan poner manos a la obra en el menor tiempo posible.

En este caso el laboratorio ha sido preparado con algunas de las principales herramientas utilizadas en los entornos Nativos de la Nube:

  • Microservicios en Golang

    Se ha desarrollado la aplicación Cinema que está compuesta de cuatro microservicios: users, movies, showtimes, bookings, donde cada servicio da respuesta a las necesidades de un contexto específico. La arquitectura y la estructuración de cada microservicio corresponde con los principios establecidos para sistemas API-REST en Golang.

  • Base de datos MongoDB

    La información de cada microservicio persiste en una base de datos MongoDB. El servicio MongoDB puede ser desplegado junto al resto de microservicios o puede utilizarse como un servicio externo, como por ejemplo MongoDB Atlas.

  • Empaquetado con Docker

    Cada microservicio es empaquetado en una imagen Docker para ser distribuido y desplegado en cualquier plataforma de contenedores.

  • Desplegar con Docker Compose

    En el fichero docker-compose.yaml está descrito el despliegue y la orquestación de los servicios en una máquina virtual. En este contexto se utiliza Traefik Proxy para gestionar el tráfico entre los microservicios y la base de datos.

  • Desplegar con Kubernetes

    La carpeta charts/cinema tiene el Chart de Helm para desplegar todo el sistema en Kubernetes. Las pruebas podrán ser realizadas en Minikube o en cualquier otro cluster de Kubernetes.

Arquitectura utilizada en el sistema Cinema

Arquitectura caso de uso cinema

Artículos relacionados

Da los primeros pasos

Clona el repositorio desde GitHub e inicia la aplicación en menos de cinco minutos.

Ver Más en GitHub