Configuración de Weblogic MultiTenant sobre un Cluster

Por Juan Guizado, Francisco Riccio.
Publicado en Marzo 2018



Introducción

El siguiente articulo permite entender el concepto de MultiTenant en Weblogic y como este interactua con los cluster tradicionales o dinámicos de Weblogic Server, adicionalmente se muestra la configuración paso a paso  del uso de MultiTenant esto va desde la creación de un dominio hasta el despliegue de aplicaciones sobre los Domains Partition que estan sobre un Cluster de 2 Nodos.



Conceptos Previos

Aunque el concepto de MultiTenancy es bastante conocido, a continuación se presentará una breve definición de algunos conceptos claves.

Multitenant Proporciona una infraestructura compartida de aplicaciones esta se basa en una agrupación conceptual conocidas como Tenants . Weblogic Server hace posible que un dominio sea compatible con varios Tenants.

WebLogic Server MultiTenant brinda esta funcionalidad y permite mejorar la densidad y el aislamiento logrando un uso más eficiente de los recursos al tiempo que elimina los obstáculos típicos al tratar de compartir aplicaciones múltiples como por ejemplo: El impacto de aplicaciones cruzadas en el tiempo de ejecución, los temas de seguridad y desafíos administrativos de gestionar múltiples instancias de Weblogic separadas en múltiples dominios.

Domain Partition con Multitenant, Weblogic proporciona aislamiento de recursos dentro de lo que se conoce como una partición de dominio, esta es una porción administrativa y en tiempo de ejecución de un dominio de WebLogic que está dedicado a ejecutar instancias de aplicaciones y recursos relacionados para un Tenant.

Virtual Target  Son definiciones que encapsulan dónde se ejecuta una partición y definen el acceso  de las invocaciones hacia ellas, estas pueden incluir  las direcciones, configuraciones de protocolo. El enrutamiento de solicitudes está determinado por el nombre de host y el URI.

Resource Group: Una colección de recursos desplegables relacionados, entre ellas teneos a las aplicaciones Java EE, las fuentes de datos y ojetos JMS así como otros recursos que utilizan las aplicaciones.

Cluster  El concepto de Cluster es una agrupacion estática o dinámica de varios Managed Server (JVM) que forman parte de esta unidad y que permite manejar los conceptos de alta  disponibilidad y balanceo de carga.

 

Para enteder los conceptos vamos a configurar un dominio de Weblogic con una arquitectura basada en multitenant implementando lo siguiente:

  • 1 Dominio
  • 1 Cluster
  • 2 Managed Server  parte de este cluster,
  • 2 Domain partition con 2 virtual targets (uno target para cada partition).
  • Desplegaremos 2 aplicaciones disitntas en cada Domain Partition

A continuación se detalla la Arquitectura  que configuraremos:



Configuraciones a realizar

Realizaremos los siguientes pasos:

  1. Creación del Dominio
  2. Configuraciones de los componentes de seguridad
  3. Creaciones de los Virtual Targets y Domain Partition
  4. Despliegue y Test de Aplicaciones en MultiTenant

1. Creación del Dominio

a. Validación de Versiones instaladas
Se debe de tener instalado el Weblogic Enterprise Edition 12.2.1 con JDK de 64b versión 1.8.0.161 o superior

b.Crear un dominio Weblogic
Ejecutamos el asistente de creación de dominios


 

Crearemos un dominio con el nombre: TestDomain



 


Colocaremos las contraseñas del usuario administrador de weblogic y colocaremos el Domain mode en Production





Seleccionamos las opciones mostradas para realizar la configuración de los componentes de Weblogic.





Configuramos el NodeManager y sus respectivas credenciales, así como 2 Managed Servers en los puertos indicados 





Añadimos un Cluster: TestCluster, y agregamos los 2 managed Servers a este Cluster.





Configuramos un NodeManager: NMMachine en el puerto 5556, que permitirá levantar de manera remota las instancias del Cluster





Revisamos el Resumen de nuestra configuración y le damos Click al botón Create, para la ejecución de la creación del dominio





Al final cerramos el asistente dándole click a Finish




c. Levantar el dominio Creado

Ahora debemos de ejecutar el Shell startWebLogic.cmd para iniciar el dominio creado previamente, colocando el user y password cuando se solicite y esperar hasta que este levando completamente



d. Levantar el Node Manager

Debemos cambiar la seguridad en el archivo nodemanager.properties, para que pueda ser ejecutado en Plain Text

Iremos a la carpeta nodemanager dentro de la carpeta de nuestro dominio




Abrimos el archivo nodemanager.properties y cambiamos el parámetro  SecureListener  a false




Seleccionar el Machine: NMMachine,




Cambiar el tipo a Plain




Iniciar la shell de NodeManager startNodeManager.cmd ubicada en la carpeta bin que esta dentro del Dominio



La siguiente shell iniciará el agente que se usará para administrar desde la consola las instancias partes del clúster




Validemos es estado del NodeManager a  Reachable




Ahora procedemos a levantar el Cluster de Weblogic



Luego debemos de validar el estado en RUNNING






2. Crear los componentes de Seguridad para cada uno de los Tenant

Otra de las ventajas de manejar la funcionalidad de Tenant en Weblogic es que podemos tener aislamiento de los componentes de Seguridad, podemos gestionar los realms, users, grupos por cada Domain Partition.

Para ellos vamos a crear realms independientes que luego gestionaremos en cada Domain Partition.



Crearemos dos nuevos realms (realm1 y realm2) uno para cada Domain Partition a gestionar.




Completar los datos como lo indican en la siguiente figura



Luego debemos de crear un usuario dentro del realm creado



Crearemos el usuario administrador




Asignamos el usuario al grupo de administradores


Debemos de crear el realm2 tal cual hemos creado el realm1 en los pasos anteriores.



3. Creaciones de los Virtual Targets y Domain Partition

Creación de Virtual Target

Vamos a crear 2 VirtualTarget que van a ser el punto de acceso para para una de las particiones creadas.

A continuación crearemos el Virtual Target VTTest1, con los parámetros que se ven en las imágenes siguientes, 





Debemos de crear el VTTest2 tal cual hemos creado el VTTest1 en los pasos anteriores.



Creación de los Domain Partitions

Ahora vamos a crear 2 Domains Partitions, para manejar la independencia de recursos dentro de cada una de las instancias de nuestro Cluster.

 







Realizar los siguientes pasos para crear la partition2

Luego reiniciar el AdminServer, el cluster Testcluster, y levantar posteriormente las particiones



Crear los Resource Group para cada Domain Partition

Un Resource Group, es un componente que se crea y gestiona dentro de cada Domain Partition y que permite gestionar de manera independiente y aislada los componentes tales como Aplicaciones, JMS o DataSource

Crearemos 1 ResourceGroup por cada Domain Partition






Hacer lo mismo para crear el RGTest2 en la particion2




4. Despliegue y Test de las Aplicaciones en MultiTenant

Desplegaremos dos aplicaciones una para cada Tentant







 













               






               




Conclusión
En este artículo hemos aprendido a configurar Weblogic MultiTenancy  en un entorno productivo de Cluster sobre Weblogic 12c, creamos un dominio que permita desplegar aplicaciones a dos particiones distintas que manejan independencia en recursos y en disponibilidad



Juan Pablo Guizado, actualmente es Arquitecto de soluciones en Oracle Perú hace 5 años con certificaciones en Metodologías Agiles (Scrum Master),  tiene experiencia de más 15 años trabajando con soluciones Oracle,  ha sido  Senior Sales Consultant de Middleware con amplios conocimientos  en Servidores de Aplicaciones Weblogic,  Plataformas de Integración y soluciones de Seguridad adicionalmente es  instructor de cursos oficiales de Oracle. Ha diseñado arquitecturas de aplicaciones Java para empresas importantes en el país con soluciones de  capa media.

Francisco Riccio, actualmente se desempeña como Arquitecto de Soluciones en Oracle Perú y es instructor de cursos oficiales de certificación Oracle. Es un Oracle Certified Professional en productos de Oracle Application, Base de Datos, Cloud & Virtualización.

 

Este artículo ha sido revisado por el equipo de productos Oracle y se encuentra en cumplimiento de las normas y prácticas para el uso de los productos Oracle.