¡Participa de la Maratón Behind the Code, la competencia de programación más desafiante! Inscríbete aqui

Implemente microservicios de Java en Kubernetes con soporte políglota

Resumen

Ninguna aplicación es una isla. Actualmente, los desarrolladores están adoptando microservicios integrados y arquitecturas de microservicios nativos de la nube. Pero con las arquitecturas actuales de las aplicaciones, los microservicios tienen que coexistir en entornos políglotas. En este Code Patterns de desarrollador descubrirá cómo implementar una aplicación de microservicios de Java que se ejecuta junto con otros microservicios, con lo que aprovecha el descubrimiento, el registro y el direccionamiento de servicios.

Descripción

En un mundo políglota, los microservicios se tienen que implementar juntos, y para el descubrimiento, el dimensionamiento y otras tareas de los servicios no pueden confiar únicamente en las infraestructuras de los lenguajes nativos. Este Code Patterns le muestra cómo implementar una aplicación de los servicios basados en Java llamada “GameOn!” dentro de un ecosistema políglota.

La aplicación es un juego de aventuras retro basado en textos, que se ha construido para ayudarle a explorar las arquitecturas de microservicios y conceptos relacionados. La aplicación se ejecuta en un clúster de Kubernetes y tiene dos tipos de microservicios: núcleo y plataforma. Los microservicios del núcleo están escritos en Java y para el soporte aprovechan servicios políglotas. En este tipo de patrón, los microservicios pueden utilizar “sidecars” o cocteles como procesos dentro del mismo contenedor de microservicios, o de contenedores separados para aprovechar los servicios de la plataforma para el descubrimiento, registro y direccionamiento de servicios. Todos los microservicios se ejecutan en contenedores de Docker que se gestionan por un clúster de Kubernetes.

Flujo

deploy microservices on kubernetes flow chart

  1. El usuario visita la implementación de GameOn! en Kubernetes a través de un proxy, que se basa en HAProxy y que es responsable de aflorar la colección de APIs como una única portada para toda la aplicación. WebApp es un simple proceso NGINX que ofrece el front end de web para el dispositivo del cliente.
  2. Para jugar al juego, el usuario interactúa con el microservicio Player. El microservicio brinda una API pública para las operaciones CRUD y para gestionar los tokens de la API.
  3. El microservicio Player utiliza el microservicio Auth Java para autenticar al usuario con el servicio de inicio de sesión social seleccionado y responde al cliente con los datos del progreso y del perfil para el jugador autenticado.
  4. El cliente front end establece un WebSocket para el servicio Mediator para empezar a jugar al juego. El servicio Mediator se implementa en Java con WebSphere Liberty, y conecta los jugadores con las salas a través de WebSockets.
  5. El usuario crea una nueva sala haciendo clic en un botón de uno de los Code Patterns de muestra.
  6. El desarrollado utiliza el microservicio Map dentro de la sala de implementación para asegurarse de que la sala está registrada con la información más reciente de la conexión. El servicio Map es una aplicación Java EE que se ejecuta en WebSphere Liberty y que brinda una REST API pública que utiliza JAX-RS.
  7. El servicio Map verifica con el servicio Player para asegurarse de que el desarrollador tiene permisos para actualizar la información acerca de la sala basándose en un token de API que está asociado con el desarrollador.
  8. El servicio Mediator establece conexiones de WebSocket con el servicio de la sala en vivo a medida que los usuarios navegan por ella.

Instrucciones

Encuentre los datos detallados para este patrón en README.

Aviso

El contenido aquí presentado fue traducido de la página IBM Developer US. Puede revisar el contenido original en este link.