Hoy hablamos con Adriano D’Ambra (Consultor Senior BPM) sobre una nueva herramienta con la que ha estado trabajando llamada Kogito, basada en tecnología RedHat. Hemos realizado algunas preguntas que nos parecen primordiales para conocer la plataforma y empezar a utilizarla, como:
- Question 1: ¿Qué es Kogito?
- Q2: ¿Es equivalente o comparable a un BPMS (Business Process Management Suite)? ¿Qué diferencias existen con PAM (Process Automation Manager) que también pertenece a RedHat?
- Q3: ¿Se diseñan los procesos y las reglas como en los entornos BPM o se debe programar código fuente?
- Q4: ¿Para qué tipos de procesos de negocio entiendes que Kogito es apropiado para su implementación? ¿Qué ventajas tiene?
- Q5: ¿Para quién está orientado?
- Q6: ¿Qué desventajas tiene?
- Q7: ¿Qué competidores serían comparables?
Al final del artículo dejamos algunas referencias y artículos interesantes sobre Kogito, y un tutorial para su instalación y uso.
Q1: ¿Qué es Kogito?
Kogito es una plataforma emergente y novedosa para construir flujos de procesos de trabajo nativos en la nube, integrados con un motor de reglas y un motor de optimización. Se origina a partir de algunos de los proyectos de código abierto más conocidos, como Quarkus, Drools, jBPM, y OptaPlanner, entre otros.
Aprovecha Quarkus para proporcionar tiempos de arranque supersónicos, subatómicos, súper rápidos y escalado instantáneo en plataformas de orquestación en contenedores Kubernetes OpenShift.
Los procesos y decisiones ejecutados forman parte de los servicios corriendo en la nube, con una distribución y escalabilidad horizontal automática sin la necesidad de un servicio de orquestación centralizado.
Los servicios desarrollados en Kogito están diseñados para correr y ser escalados dentro de una infraestructura Cloud. Es compatible con las siguientes tecnologías:
- OpenShift, basado en Kubernetes, es la plataforma de destino para la construcción y la gestión de aplicaciones en contenedores.
- Quarkus es la nueva pila nativa de Java para Kubernetes que se puede utilizar cuando se construyen aplicaciones con los servicios de Kogito.
- Spring Boot permite compilar aplicaciones Web como un archivo .jar que podemos ejecutar como una aplicación Java normal (como alternativa a un archivo .war, que desplegaríamos en un servidor de aplicaciones como Tomcat).
- GraalVM con Quarkus permite utilizar la compilación nativa con Kogito, lo que resulta en tiempos de inicio rápidos y un footprint mínimo. El inicio rápido es casi una necesidad en los ecosistemas en la nube, especialmente si se necesitan pequeñas aplicaciones server-less.
- Prometheus & Grafana son compatibles con los servicios de Kogito para el monitoreo y análisis de los resultados de los procesos, con extensiones opcionales para construir tableros.
- Kafka, Infinispan & Keycloak son también algunas de las tecnologías de middleware que Kogito soporta para la mensajería, la persistencia y la seguridad.
Q2: ¿Es equivalente o comparable a un BPMS (Business Process Management Suite)? ¿Qué diferencias existen con PAM (Process Automation Manager) que también pertenece a RedHat?
Kogito no es una suite de BPM tal cual la conocemos los expertos en BPM. Tiene capacidades de ejecución de procesos y un motor de reglas, pero no consiste en una plataforma donde estén todas las aplicaciones de workflow e hiperautomatización integradas en un mismo entorno como en el propio PAM de RedHat, o el de otros fabricantes de iBPMS (intelligent BPMS) como PEGASystem, IBM DBA, APPIAN, etc.
Los iBPMS integran los motores de Workflow (BPM); RPA (Robotic Process Automation); ECM (Enterprise Content Management); ACM (Adaptive Case Management); Data Capture (Captura y Análisis de Documentos digitales); BAI (Inteligencia Artificial para predicción de Mejor Actividad a ser Ejecutada); etc., dentro de un mismo entorno, con mayor facilidad de implementación e integración para usuarios técnicos BPM, pero con no tantos conocimientos de TI como requiere Kogito.
Q3: ¿Pero se diseñan los procesos y las reglas como en los entornos BPM o se debe programar código fuente?
Sí, se pueden modelar los procesos en BPMN y los servicios de decisión en DMN y/o código DRL (Drools). Para ello hay cuatro opciones: Web, Kogito GitHub Chrome extension, Visual Studio Code extension o Desktop (donde su total funcionalidad requiere de licencia OpenShift).
Aquí dejamos el link a los dos modeladores disponibles en la Web que podemos utilizar gratuitamente para modelar cualquier proceso (BPMN) y servicio de decisión (DMN o DRL).
Muy interesante esta opción para todo usuario BPM, ya que no necesariamente su implementación deberá ser realizada en OpenShift.
En mis primeras impresiones, el modelador BPMN es demasiado elemental, rústico y aún en pañales desde el punto de vista de practicidad. Pero tiene funcionalidad plena y posee todos los artefactos necesarios para poder mapear cualquier proceso de negocio sin limitaciones.
Sin embargo, son particularmente destacables las capacidades del modelador DMN. Sorprenden las capacidades de completitud de modelos que se pueden realizar, comparables a herramientas líderes en el mercado cuyas licencias pueden resultar muy costosas sobre todo para trabajos en consultoría (como Trisotech y Signavio).
También es factible utilizar la extensión de VSCode (recomendada) o Eclipse como se muestra en el ejemplo de las figuras siguientes. Donde ya puede existir la interacción e invocación a un servicio de decisión como parte de un proceso determinado.
Por último, para diseñar formularios y aplicaciones completas, y que luego se ejecuten, necesitaremos licencia OpenShift.
Q4: ¿Entonces para qué tipos de procesos de negocio entiendes que Kogito es apropiado para su implementación? ¿Qué ventajas tiene?
Además de la ventaja ya mencionada en escalabilidad automática horizontal por trabajar en entorno nativo cloud, lo veo totalmente aplicable a procesos donde se requieran muy altas capacidades de respuesta en tiempo real, de máxima performance.
Permite pasar de ejecuciones de procesos tradicionales que rondan en torno a los milisegundos utilizando JavaVM, al orden de los nanosegundos utilizando GraalVM sobre QUARKUS. En la siguiente figura podemos observar los mínimos requerimientos también de memoria comparado a tecnologías anteriores.
No es apropiado ni está pensado para Gestionar Procesos de Negocio con complejidad de muchas dependencias de procesos y subprocesos en diagramas de colaboración, con capas de múltiples equipos de personas, donde los iBPMS también gestionan los portales de trabajo, distribución de la carga, etc.
Kogito es un gestor de microservicios con procesos más lineales, cortos y simples desde el punto de vista de cantidad de actividades y pasos, y se hace muy fuerte donde dentro de esos microprocesos hay necesidad de tomar decisiones complejas con una performance también muy alta y excluyente.
Q5: ¿Para quién está orientado?
Totalmente orientado a Equipos de Arquitectos IT (Cloud OpenShift) y Desarrolladores Java. Con conocimientos también de desarrollo BPM y/o Decisioning (generalmente hay dos grupos de desarrollo trabajando en colaboración).
Kogito es la extensión de Quarkus de código abierto que permite a los desarrolladores implementar la lógica central de una manera más orientada a los negocios con BPM y no codificando. Aporta conceptos y madurez de más de 15 años de experiencia en proyectos probados en producción como jBPM.
Kogito es la extensión adecuada para las aplicaciones inteligentes de Quarkus. Kogito precompila los ficheros de negocio (como un archivo BPMN o una tabla de decisión de reglas, por ejemplo). Genera automáticamente el ejecutable nativo con su propio endpoint REST que permite la interacción con sus respectivos procesos, tareas y reglas. De esta manera, los desarrolladores sólo tienen que preocuparse de la implementación de la lógica en sí.
Q6: ¿Qué desventajas tiene?
Veo altos requerimientos de conocimiento de infraestructura y desarrollo Cloud, con instalaciones varias necesarias “a mano” a través de líneas de comando CLI; pero principalmente la falta de una plataforma integrada propia en lugar de un cúmulo de herramientas aisladas con múltiples instalaciones y requerimientos separados (MAVEN, Quarkus, VSCode, GraalVM, etc.)
Q7: ¿Qué competidores serían comparables?
Nombro tres fabricantes líderes y reconocidos, donde para la orquestación de microservicios poseen capacidades BPM con filosofía: FAST WORKFLOW AUTOMATION.
MULESOFT, NINTEX e IBM donde en su DBA (Digital Business Automation) CloudPak posee Automation Workstream Services.
Referencias y artículos interesantes sobre Kogito
- Cloud-native business automation with Kogito
- Video: Cloud-Native Business Automation with Kogito
- Kogito 0.8.0 features online editors and cloud-native business automation
- Kogito tooling for friendly DMN and BPMN visualization on GitHub
- Kogito for Quarkus intelligent applications
Tutorial primeros pasos
En decide4AI hemos creado un tutorial en español para dar los primeros pasos en KOGITO y poder ejecutar el Tutorial del KIE.
Si quieres conseguir el tutorial, rellena el siguiente formulario y lo recibirás en tu email.