Documentación del flujo de trabajo en infraestructura

1. Comunicación del Cliente
- Interfaz de Usuario (HTML/CSS): Los clientes acceden al sistema a través de una interfaz web basada en tecnologías estándar como HTML y CSS.
- Oracle Cloud Infrastructure (OCI): Este componente representa el entorno de la nube de Oracle que interactúa con el sistema para servicios específicos, como aplicaciones empresariales u otros datos externos.
2. Seguridad y Control de Acceso
- Web Application Firewall (WAF): Protege la infraestructura frente a ataques de capa de aplicación, como inyecciones SQL o ataques XSS. Aquí se inspeccionan todas las solicitudes provenientes de los clientes antes de ser enviadas a los balanceadores.
3. Balanceo de Carga
- Balanceador Público: Gestiona el tráfico HTTP/HTTPS de los portales y lo distribuye a los servicios del api manager.
- Cloud DNS: Resuelve a la ip interna asociada al acceso de ingress privado del cluster.
4. Middleware y API Management
- WSO2 API Manager: Administra y expone las APIs del sistema, proporcionando capacidades de análisis, seguridad y control del acceso a las APIs.
- Keycloak: Maneja la autenticación y autorización para los usuarios y aplicaciones, integrándose con otros servicios para el manejo de identidades.
5. Comunicación y Arquitectura Kubernetes
- Kubernetes:
Es el orquestador de contenedores que gestiona múltiples servicios desplegados en diferentes nodos:
- Nodo 1, Nodo 2, Nodo 3: Representan los recursos físicos/virtuales del clúster.
- Linkerd: Un service mesh que proporciona observabilidad, seguridad y enrutamiento dentro del clúster.
- OpenTelemetry: Herramienta para monitoreo y rastreo distribuido.
- NGINX Ingress Controller: Facilita el acceso a los servicios internos a través de reglas de enrutamiento HTTP.
6. Operación y Monitoreo
- Prometheus y Grafana:
- Prometheus recopila métricas de la infraestructura y los servicios.
- Grafana visualiza estas métricas para análisis y monitoreo en tiempo real.
- Grafana Loki: Administra y visualiza los logs generados por los servicios.
7. Persistencia de Datos
- PostgreSQL: Base de datos relacional Google CloudSQL .
- DataBricks: Plataforma de procesamiento en la nube que actúa como un Data Lake para grandes volúmenes de datos.
8. Mensajería
- Google PubSub: Sistema de mensajería que permite la comunicación asincrónica entre los diferentes servicios, asegurando la entrega confiable de datos.
9. Integración y Control de Versiones
- GitLab: Herramienta de control de versiones utilizada por los desarrolladores para administrar el código fuente y los pipelines de CI/CD.
- Jenkins: Plataforma de integración continua que orquesta el despliegue y las pruebas automáticas.
- ArgoCD: Plataforma de integración basada en GitOps que orquesta el despliegue y las pruebas automáticas.
10. Liberación y Calidad del Software
- Maven: Herramienta de construcción y repositorio de dependencia utilizada para compilar, probar y empaquetar el software.
- SonarQube: Analiza la calidad del código, identificando errores y asegurando el cumplimiento de las mejores prácticas.
11. Sincronización de Fecha y Hora
- NTP (Network Time Protocol): Garantiza la sincronización de los relojes en todos los componentes del sistema, asegurando consistencia en los registros y eventos.
Flujo General
- Los clientes interactúan con el sistema mediante la interfaz web.
- Las solicitudes pasan a través del Web Application Firewall (WAF) para validación y protección.
- Los balanceadores dirigen el tráfico a los servicios internos según la naturaleza de la solicitud.
- Kubernetes orquesta los servicios y garantiza la alta disponibilidad, mientras que herramientas como Prometheus y Grafana monitorean el estado del sistema.
- Los datos se almacenan en MySQL, Snowflake o NFS según el caso, y se procesan mediante mensajería con RabbitMQ.
- Los desarrolladores utilizan GitLab, Jenkins, SonarQube y Gradle para desarrollar, probar y liberar nuevas versiones del software.
Este flujo permite mantener un sistema escalable, seguro y eficiente, alineado con las mejores prácticas de arquitectura moderna en la nube.