Enmilocalfunciona

Thoughts, stories and ideas.

Desarrollando con la plataforma WSO2 (I) - Introducción

Publicado por Óscar Sanz Sebastián el

WSO2API ManagementAPIESBSecurityMicroservicios

La suite WSO2 es una plataforma Open Source orientada para el diseño de arquitecturas basada en servicios (SOA). En esta serie de posts, veremos como comenzar a desarrollar sobre ella.

La plataforma WSO2

Esta plataforma nos permite cubrir todos los pasos del ciclo de vida en un proyecto de desarrollo basado en servicios:

  • Construcción de Servicios.
  • Documentación de APIs para equipos de Desarrollo.
  • Publicación y Routing.
  • Monitorización del tráfico.
  • Securizar el acceso y consumo inapropiado.
  • Balanceo de carga.
  • Reporting y Monetización de los servicios.
  • Facilitar la integración con dispositivos móviles.

Componentes de la plataforma WSO2

A continuación vamos a describir los productos más destacados de la plataforma WSO2, que están teniendo una gran aceptación en la transformación tecnológica de las empresas:

WSO2 API Manager: Es una solución completa para gestionar la publicación de nuestras APIs a sistemas terceros, garantizando la seguridad de la información y reduciendo los tiempos de integración.

WSO2 Identity Server: Producto que nos permite gestionar los credenciales y protocolos de acceso a los recursos y servicios corporativos a través de un único punto de gestión. Esta solución nos permite gestionar todos los servidores de autenticación internos como si fuera uno sólo. WSO2-IS proporciona los protocolos de acceso más utilizados en el mercado como pueden ser OAuth2.

WSO2 Data Services Server: Producto que nos permite encapsular en un API nuestro recursos almacenados en sistemas de ficheros o bases de datos de una forma sencilla asegurando la integridad de la información. Por ejemplo construir un API de consulta a partir de una conjunto de ficheros Microsoft Excel.

WSO2 Enterprise Service Bus: Producto que se encarga de gestionar la orquestación de servicios y acceso a recursos en nuestros procesos de negocio. WSO2-ESB nos facilita la integración de todos los productos de la plataforma WSO2.

WSO2 Data Analytics Server: Producto que completa la solución WSO2 para gestionar el reporting de la información gestionada en la plataforma, permitiendo diseñar cuadros de mando a medida y exponer la información a Sistemas de Inteligencia de Negocio (Business Intelligence) o Big Data a través de un API-REST.

WSO2 IoT Server: Producto que facilita la integración y gestión de dispositivos con nuestros servicios y recursos gestionados en la plataforma WSO2. La versión 1.0 será liberada en el Q3 de 2016.

WSO2 Microservices Framework for Java: Framework y Runtime que nos permite la generación y ejecución de microservicios con un rendimiento superior a otros frameworks similares como Spring Boot, optimizando el uso de recursos. (Ver comparativa aquí)

El siguiente gráfico representa la integración los productos descritos anteriormente, en nuestro entorno de desarrollo:


Plataforma de Desarrollo

El entorno de desarrollo que hemos creado se ha basado en la publicación de los DockerFiles disponibles en la página principal de WSO2

1.- Software necesario para la instalación

El software necesario para desarrollar con el entorno WSO2 es el siguiente:

  • Oracle Virtual Box. (Descargar desde aquí)
  • Vagrant (Descargar desde aquí)
  • Cliente SSH para acceso remoto (Descargar desde aquí)
  • Cliente GIT para descargar la maquina de desarrollo desde GitHub (Descargar desde aquí)

2.- Instalación de la instancia

Una vez tengamos instalado el software descrito en el punto anterior debemos realizar los siguientes pasos:

Descargar una copia de la máquina virtual disponible en GitHub con las siguientes instrucciones:

mkdir git-repo/wso2
cd git-repo/wso2
git init
git clone https://github.com/atSistemas/wso2.git

Copiamos la máquina virtual ubicada en el carpeta:

$HOME/git-repo/wso2/entornos/desarrollo/tags/0.1/wso2-vagrant

Arrancar la máquina virtual con el siguiente comando:

vagrant up

La creación de la máquina virtual se completará en unos 15-20 minutos, en función del ancho de banda para descargar los productos de la suite WSO2.

Una vez haya terminado el proceso de instalación y configuración podremos acceder a nuestro entorno de desarrollo a través del puerto 2222 desde nuestro "localhost".

Los credenciales de acceso al entorno de desarrollo son vagrant/vagrant

3.- Configuración de la instancia

La instancia de desarrollo dispone de servicios para gestionar el arranque y parada controlada de los siguientes productos:

  • WSO2 API Manager (2.0.0)
  • WSO2 Enterprise Service Bus (4.9.0)
  • WSO2 Identity Server (5.1.0)
  • WSO2 Data Services Server (3.5.0)
  • WSO2 Data Analytics Server (3.0.1)

Los scripts de arranque se pueden encontrar en la siguiente ruta del sistema de ficheros:

/etc/init.d

Si necesitamos añadir/modificar un puerto para ser accesible desde fuera del contenedor Docker se pueden encontrar en la siguiente ruta:

$HOME/wso2-dockerfiles-1.0.0/[product_name]/run.sh

Por ejemplo para el producto API Manager sería:

$HOME/wso2-dockerfiles-1.0.0/wso2am/run.sh

Si no queréis perder la información del contenedor Docker es necesario realizar un "commit" del contenedor antes de aplicar los cambios.

4.- Acceso Web a las consola de administración WSO2:

La siguiente tabla recoge las URLs de acceso a los productos WSO2 desplegados en la instancia de desarrollo:

Producto URL
WSO2 API Manager https://192.168.66.99:9443/carbon/
WSO2 Enterprise Service Bus https://192.168.66.99:9445/carbon/
WSO2 API Identity Server https://192.168.66.99:9444/carbon/
WSO2 API Data Analytics Server https://192.168.66.99:9447/carbon/
WSO2 API Data Services Server https://192.168.66.99:9446/carbon/

Casos prácticos de la plataforma WSO2

Actualmente las grandes empresas están inmersas en la transformación tecnológica de sus procesos de negocio. En este proceso la suite WSO2 se esta haciendo un hueco importante en el sector para implantar las siguientes soluciones de negocio:

  • Transformación y Securización de APIs para integrar con Smartphones.
  • Plataforma de Monetización de APIs.
  • Estrategia para la Definición, Diseño e Implementación de procesos de negocio basada en servicios o gestión de recursos.

En los siguientes artículos iremos publicando ejemplos prácticos de los módulos descritos anteriormente y la configuración necesaria para su integración e implantación en nuestro entorno de desarrollo.

Deja tus comentarios con vuestras propuestas y síguenos en Twitter para recibir nuevos posts.