Openshift

Red Hat Openshift: Mostrando MSA (Microservices Arquitecture)

Muchas gracias estimado lector por acompañarnos en una entrega más de nuestra publicación. Para este número queremos mostrar un ejemplo del uso de microservicios sobre la plataforma Openshift.

Antes de iniciar, es importante recordar que, como se ha comentado en publicaciones previas, la plataforma Openshift es un PaaS basada en contenedores (Kubernetes, Docker y DevOps).

Del mismo modo, se debe tener presente que MSA (Microservices Arquitecture) es un estilo de arquitectura de software que combina diferentes patrones y tecnologías, lo que le permite reducir la complejidad de los sistemas y, por ende, incrementar la modularidad.

Si aún no le queda claro del todo cómo funciona esta arquitectura, será importante mencionar sus principales características:

  • Las aplicaciones son publicadas como una suite de pequeños servicios, cada uno corriendo como un proceso independiente en su propia maquina lógica o contenedor Linux.
  • Los servicios son construidos bajo el “single responsibility principle”, es decir, de acuerdo a sus capacidades, por ejemplo, servicios especializados en UI, especializados en middleware o en persistencia y almacenamiento.
  • Cada microservicio es apropiado por un diferente equipo.
  • Es posible reemplazar, mejorar, escalar y publicar servicios de manera independiente.
  • El estándar de comunicación usado es REST sobre HTTP.

Ahora que ya tenemos una idea más clara del MSA y sus principales características podemos comenzar con nuestro ejemplo, para el cual es necesario que tengamos instalado el CDK versión 3.x, en este caso utilizaremos la versión 3.5.5 y Minishift, la versión de desarrollo de Openshift.

En primer lugar, necesitamos abrir nuestra terminal y verificar la versión de nuestro Minishift:

Después, será necesario que validemos que nuestras variables de entorno se encuentren correctas en el .bash_profile o .bashrc. Para el ejemplo que estamos mostrando, usaremos un sistema macOS Sierra, por lo que las variables se encuentran en el .bash_profile:

Una vez que hayamos realizado esto, podemos iniciar nuestra plataforma Minishift:

Para continuar con el proceso, deberemos validar que contamos con el comando oc. En este caso lo podremos encontrar en el home de Minishift:

Una vez que hemos realizado el paso anterior, podremos acceder a la consola de Minishift en la ruta https://<Openshift IP>:8443 para comprobar que nuestra plataforma se encuentra funcionando correctamente, y después firmar con nuestro usuario:

Ahora sí, estamos listos para crear un nuevo proyecto desde nuestra terminal ejecutando los siguientes comandos:

oc login –u user –p password
oc new-project projectname

Si observamos la consola de Openshift podremos ver nuestro proyecto recién creado:

Deberemos desplegar el microservicio “hola” (JAX-RS) que se encuentra en el repositorio público de github https://github.com/redhat-helloworld-msa/hola, y la publicación se hará mediante el comando oc.

En nuestra consola, nos posicionaremos en la carpeta donde queremos clonar el código del microservicio y ejecutamos los siguientes comandos:

git clone https://github.com/redhat-helloworld-msa/hola

cd hola/

oc new-build --binary --name=hola -l app=hola

mvn package; oc start-build hola --from-dir=. –follow

oc new-app hola -l app=hola,hystrix.enabled=true

oc expose service hola

Después de haber realizado los comandos anteriores, debemos ir a la consola de Openshift para observar la creación de nuestra nueva App, y la publicación del microservicio, seleccionamos el proyecto demo-msa, y a continuación nos llevará a un overview del microservicio:

Después, en la sección de Applications->Deployments podremos observar los detalles de versión, fecha de creación y estatus, en este último también podremos ver las réplicas o pods (escalamiento) de nuestro microservicio:

Después regresaremos al apartado Overview y daremos clic en “hola” para acceder a información más detallada de nuestro microservicio:

Inmediatamente después daremos clic en el hipervínculo  http://hola-demo-msa.192.168.99.100.nip.io para ver las operaciones y descripción del servicio:

Ahora, veremos la descripción de la operación “health”, la cual nos regresa el estado del microservicio REST dando clic sobre la operación:

Ahora sí, todo está listo para realizar las pruebas finales de nuestro microservicio, las cuales haremos de dos maneras: desde el navegador y desde nuestra consola:

En primer lugar copiaremos la request URL http://hola-demo-msa.192.168.99.100.nip.io/api/health y la colocaremos en el navegador:


Ahora ejecutamos el siguiente comando en consola:

curl -X GET --header 'Accept: text/plain' 'http://hola-demo-msa.192.168.99.100.nip.io/api/health'

Por último, desde la consola de Openshift observaremos como el microservicio puede ser escalado, aumentando o disminuyendo el número de pods:

Como pudimos observar, la plataforma de Red Hat Openshift nos ofrece una solución poderosa para implementar la arquitectura de microservicios, aprovechando las ventajas de escalabilidad y modularidad.

Recuerda que tendremos la posibilidad de administrar mediante contenedores, los cuales proveen un nivel adicional de abstracción y automatización en virtualización del sistema operativo y puede ser utilizado sobre Windows o Linux.

Autor: Abraham Bernal

Cualquier comentario o sugerencia, háznosla llegar a: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

Browse top selling WordPress Themes & Templates on ThemeForest. This list updates every week with the top selling and best WordPress Themes www.bigtheme.net/wordpress/themeforest