osvaldoc / latin-america-micro-profile

LatinAmerica microservicios usando MicroProfile

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tour Latinoamericano

Esta aplicación tiene como objetivo gestionar conferencias de un tour latinoamericano. Contamos con tres (3) microservicios:

  • Speaker: Este microservicio gestionará la información de un ponente: nombre, biografía y enlaces a redes.

  • Conference: Este microservicio gestionará las conferencias de cada una de las ciudades del tour: nombre, ciudad y año.

  • Session: Este microservicio gestionará las sesiones dentro de una conferencia: nombre, título, descripción e información del ponente y la conferencia a la que pertenece.

Requerimientos de sistema

Conexión a Internet es requerida para poder descargar dependencias de cada uno de los microservicios y para su posterior despliegue en la nube. Por favor instalar las siguientes herramientas para poder realizar el taller:

Una vez se han instalado las herramientas, es necesario descargar algunas imagenes de Docker y dependencias de Maven. Para ello ejecutamos los siguientes comandos:

  1. docker pull elasticsearch:6.8.1

  2. docker pull mongo:3.6

  3. docker pull postgres:11.4

  4. git clone https://github.com/EventosJEspanol/latin-america-micro-profile.git

  5. cd latin-america-micro-profile

  6. mvn clean package

Bases de datos

Cada microservicio usa una motor de base de datos apropiado para su caso de uso:

PostgreSQL

PostgreSQL, también conocido como Postgres, es una base de datos relacional gratuita de código abierto que hace énfasis en la extensibilidad y el cumplimiento de estándares. Está diseñada para soportar diferentes cargas de trabajo, desde una sola máquina hasta grandes almacenes de datos o servicios web con muchos usuarios concurrentes.

MongoDB

MongoDB es una base de datos multiplataforma orientada a Documentos. Clasificada como una base de datos NoSQL, MongoDB usa documentos estilo JSON con esquemas. MongoDB es desarrollada por MongoDB Inc. y licenciada bajo la licencia Server Side Public License.

Elasticsearch

Elasticsearch es un motor de búsqueda basado en la API Lucene. Provee un motor de búsqueda de texto completo, distribuido y con capacidad de multitenencia con una interfaz web y documentos JSON sin esquema. Elasticsearch es desarrollado en Java.

Implementaciones de Eclipse MicroProfile

Eclipse MicroProfile

La comunidad MicroProfile (http://microprofile.io/) es una comunidad relativamente nueva dedicada a optimizar Java empresarial para arquitecturas basadas en microservicios. Su objetivo es definir una plataforma para microservicios que sea portable. Actualmente, los principales miembros de este grupo son IBM, Red Hat, Tomitribe, Payara, la comunidad Java de Londres (LJC) y SouJava. Adicionalmente, personas reconocidas en la industria también están participando.

Thorntail

Thorntail ofrece un enfoque innovador al empaquetar y ejecutar aplicaciones Java EE con solo lo necesario del servidor para luego ejecutarlas con un "java -jar". También es compatible con MicroProfile: https://thorntail.io/

Payara

PayaraMicro la plataforma de código abierto y ligera preferida para desplegar microservicios Java EE (Jakarta EE) contenerizados. Con menos de 70MB, PayaraMicro no requiere instalación ni configuración, así podemos construir y desplegar aplicaciones completamente funcionales en minutos: https://www.payara.fish/software/payara-server/payara-micro/

KumuluzEE

Con KumuluzEE podemos desarrollar microservicios con tecnología Java EE (Jakarta EE) y complementarlos con Node.js, Go y otros lenguajes. Podemos migrar aplicaciones Java EE existentes a microservicios y arquitectura nube-nativa (cloud-native): https://ee.kumuluz.com/

Ejecutar los microservicios

Primero debemos ejecutar los servicios de base de datos. Para ello usaremos Docker:

  1. docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.8.1

  2. docker run -d --name mongodb-instance -p 27017:27017 mongo

  3. docker run -d --name postgresql -p 5432:5432 -e POSTGRES_PASSWORD=password -e POSTGRES_DB=speaker postgres

Cuando los servicios estén en línea, el siguiente paso es ejecutar los microservicios:

  • Speaker (thorntail):

    1. mvn -DskipTests clean package thorntail:package

    2. java -jar -Xmx512m -Dswarm.http.port=$PORT target/speaker-thorntail.jar

  • Session (kumuluzee):

    1. mvn -DskipTests clean package kumuluzee:repackage

    2. java -jar -Xmx512m -Dkumuluzee.server.http.port=$PORT target/session.jar

  • Conference (Payara):

    1. mvn -DskipTests clean package payara-micro:bundle

    2. java -jar -Xmx512m target/conference-microbundle.jar --port $PORT

Configuración para la nube

Platform.sh es la nueva generación de PaaS, que permite que los servicios sean gestionados por la misma plataforma usando infraestructura como código.

About

LatinAmerica microservicios usando MicroProfile


Languages

Language:Java 82.5%Language:HTML 17.5%