El framework AQUAcloud engloba una serie de tecnologías y herramientas que permiten agilizar el desarrollo y proporcionar una solución moderna y sostenible. AQUAcloud está sujeto a un sistema de mejora continua y, por tanto, en evolución. Actualmente, AQUAcloud se basa en las siguientes tecnologías y soluciones de desarrollo e infraestructura:
- Infraestructura: Sistemas comunes de infraestructura AQUAcloud:
- Sistema de gestión de la infraestructura:
- Virtualización de la infraestructura usando Docker.
- Gestión de la infraestructura mediante Helm y Kubernetes.
- Sistema de observabilidad:
- Proveedor stack ELK.
- Integración mediante Adaptador AQUAcloud.
- Sistema de gestión de Apis:
- Proveedor Gravitee.io.
- Permite la gestión de las apis dentro de AQUAcloud.
- Sistema de gestión de accesos
- Proveedor Keycloak
- Enfoque al inicio de sesión único con Identity and Access Management.
- Sistema de Integración continua:
- Proveedor Jenkins y SonarQube.
- Enfoque a la automatización de la evaluación y entrega del producto.
- Desarrollo:
- Frontal Web:
- Tecnologías HTML5\CSS\Typescript\Javascript stack base de la tecnología AQUAcloud.
- Paradigma Centro de Inicio \Tareas\Área de Trabajo.
- Componentes Visuales AQUAcloud.
- Controles Visuales AQUAcloud.
- Estilo UX AQUAcloud.
- Servicios de negocio:
- Tecnología Java EE\Spring y JPA/Hibernate, stack base de la tecnología AQUAcloud.
- Diseño de la comunicación enfocado hacia apis Rest cumpliendo el estándar RESTful (jax-rs).
- Diseño de los servicios de negocio enfocado hacia los microservicios.
- Integración con otros sistemas externos mediante HTTP(s)\REST\SOAP (jax-rs y jax-ws) usando adaptadores AQUAcloud.
- Características comunes de los servicios de negocio:
- Gestionan entidades de negocio.
- Ejecutan lógica de negocio.
- Ejecutan paquetes de reglas de negocio dinámicas.
- Llaman al motor de procesos de negocio (BPM).
- Son llamados por el motor de procesos de negocio(BPM).
- Las decisiones de negocio son tomadas por las reglas de negocio.
- Reglas de negocio:
- Proveedor Drools, sistema enfocado Business Rules Management System (BRMS).
- Cumplimiento del estándar API de tiempo de ejecución de Java para motores de reglas (JSR-94).
- Diseño de reglas enfocado a Decision Model and Notation (DMN).
- Motor de proceso de negocios (BPM):
- Proveedor JBPM. Proporciona un motor estándar de procesos de negocio basados en el estándar de diseño BPMN 2.0.
- Adaptador AQUAcloud para integrarse con las aplicaciones.
- Características que deberán de cumplir los proceso de negocio:
- No almacenan datos de negocio, solo ids.
- No toman decisiones. Las reciben de los servicios de negocio invocados.
- Diseño en el estándar BPMN 2.0.
- El motor de procesos de negocio utilizará una base de datos PostgreSQL.
- Datos:
- Base de datos relacional: DB2, MySQL y PostgreSQL
- Exportaciones ETL Pentaho
- Integraciones ESB Mule Mirth.
- Seguridad: Deberá basarse en OAuth. SSO con integración en Directorio Activo.
- Entornos: Integración / Preproducción/ UAT / Producción. Misma composición por entornos clusterizado en el Cloud, composición vía Helm, CDN container delivery network, Api Managemnet.
- Devops: SCM: GIT, CI (Integración Continua) – CD (Despliegue Continuo), basado en herramientas tipo Jenkins, con validación de código a través de herramientas tipo Sonar, y cumpliendo el % de cobertura definido por Asepeyo en el momento del desarrollo de la licitación. Monitorización integrable con soluciones tipo Grafana/Prometheus, y con un servicio de Logging basado en ELK (Elasticsearch, Logstash, Kibana).
- Metodología/Procesos: Se requerirá seguir la metodología y procesos que se imponga por parte de Asepeyo, como GitFlow para la gestión de la subida de código en los repositorios y el cumplimiento de este para los entregables.
- Testing: Será necesario añadir criterios de aceptación a la documentación entregable, incluir conceptos como test cases, versionado, pruebas de regresión, automatización, y cobertura en fase de CI/CD.
Entregables: código fuente, pipeline CI/CD, cobertura test y E2E.