Skip to main content

Stack Tecnológico

Diagrama General

Web

Este bloque agrupa las tecnologías a utilizar el desarrollo de aplicaciones web.

  • HTML5, CSS3 y JavaScript: La base del desarrollo web, permiten la creación de interfaces de usuario interactivas.
  • Angular: Un framework de desarrollo web basado en TypeScript que facilita la construcción de aplicaciones de una sola página (SPA).
  • Webpack Module Federation: Plugin de Webpack que permite cargar de forma dinámica y en tiempo de ejecución módulos compilados de forma independiente, habilitando arquitecturas de Micro Frontends donde cada aplicación se desarrolla, versiona y despliega de manera autónoma.
  • Bootstrap: Framework de CSS que facilita el diseño de interfaces web responsivas.

Mobile

Tecnologías para el desarrollo de aplicaciones móviles nativas.

  • Kotlin: Un lenguaje moderno utilizado para el desarrollo de aplicaciones Android. Es una alternativa a Java que mejora la productividad y reduce el código boilerplate.

Back-End

Herramientas y tecnologías para el desarrollo de la lógica de negocio y servicios en el servidor.

  • Java 17: Lenguaje de programación orientado a objetos y de uso general, ampliamente utilizado en entornos empresariales.
  • Spring Framework: Framework para construir aplicaciones empresariales con soporte para inyección de dependencias, aspectos, entre otros.
  • Spring Boot: Extensión de Spring que simplifica la configuración y el desarrollo de microservicios.
  • Spring Cloud Gateway: Herramienta para gestionar el enrutamiento de microservicios y la gestión de tráfico.
  • Spring Security: Proporciona autenticación y autorización para las aplicaciones basadas en Spring.
  • Swagger: Herramienta para documentar y visualizar APIs RESTful.
  • Spring Batch: Herramienta para la creación de procesos por lotes, como tareas periódicas o el procesamiento de grandes volúmenes de datos.
  • Apache Camel: Framework de integración que permite la comunicación entre diferentes sistemas, soportando múltiples protocolos y patrones de integración.

Persistencia

Bases de datos relacionales y no relacionales utilizadas para almacenar y gestionar los datos.

Bases de datos Relacionales:

  • Oracle Database: Sistema de gestión de bases de datos relacional ampliamente utilizado en aplicaciones empresariales.
  • MySQL: Base de datos relacional de código abierto, conocida por su facilidad de uso y rendimiento.
  • PostgreSQL: Base de datos relacional de código abierto con fuerte soporte a estándares y características avanzadas como tipos de datos personalizados.

Bases de datos No Relacionales:

  • Redis: Base de datos en memoria que se utiliza para cachés, colas de mensajes y almacenamiento de datos temporal.
  • MongoDB: Base de datos NoSQL orientada a documentos, utilizada para manejar grandes volúmenes de datos y esquemas flexibles.

Infraestructura

Tecnologías de contenedorización y administración de infraestructura.

  • Linux: Sistema operativo de código abierto, ampliamente utilizado para servidores en la nube y entornos de desarrollo.
  • Docker: Plataforma que permite crear, desplegar y ejecutar aplicaciones dentro de contenedores.
  • Traefik: Proxy inverso y balanceador de carga diseñado para manejar tráfico de aplicaciones microservicios.
  • NGINX: Servidor web que también puede actuar como proxy inverso y balanceador de carga.
  • Google Cloud Platform: Plataforma de servicios en la nube que proporciona infraestructura, almacenamiento y capacidades de cómputo.
  • SonarQube: Herramienta de análisis de calidad de código que permite identificar vulnerabilidades, bugs y problemas de mantenimiento.
  • Keycloak: Sistema de gestión de identidades y accesos (IAM), que proporciona autenticación y autorización.
  • Kubernetes: Plataforma de orquestación de contenedores que automatiza la implementación, escalado y gestión de aplicaciones en contenedores.

Herramientas de Desarrollo

Plataformas y herramientas utilizadas por los desarrolladores para escribir, probar y desplegar código.

  • IntelliJ IDEA: Entorno de desarrollo integrado (IDE) para desarrollar aplicaciones en Java y otros lenguajes.
  • Visual Studio Code: Editor de código fuente ligero y altamente extensible.
  • GitLab: Plataforma para el control de versiones, CI/CD y colaboración en desarrollo de software.
  • Selenium: Herramienta de automatización para pruebas de aplicaciones web.
  • JUnit 5: Marco de pruebas unitarias para aplicaciones Java.
  • Postman: Herramienta para probar y documentar APIs.

Servicios

Plataformas y servicios que ofrecen capacidades avanzadas de almacenamiento y análisis de datos.

  • Snowflake: Plataforma de almacenamiento y análisis de datos basada en la nube, diseñada para el análisis de grandes volúmenes de datos.
  • Oracle Autonomous Database: Base de datos en la nube que se gestiona automáticamente y optimiza su rendimiento.
  • Microsoft Fabric: Plataforma que proporciona servicios integrados para análisis y automatización empresarial.

Telemetría

Herramientas utilizadas para monitorizar y observar el comportamiento de los sistemas.

  • Prometheus: Sistema de monitoreo y alerta diseñado para la recolección de métricas y su análisis en tiempo real.
  • Grafana: Plataforma de observabilidad que permite visualizar métricas y logs a través de paneles personalizables.
  • Istio: Malla de servicios que gestiona la comunicación, seguridad y monitoreo entre microservicios.

CI / CD y Control de Versiones

Herramientas que permiten la integración continua, entrega continua y control de versiones.

  • GitLab CI/CD: Plataforma para gestión de código fuente y CI/CD.
  • Jenkins: Herramienta de integración continua que automatiza la construcción, prueba y despliegue de software.
  • Docusaurus: Herramienta para la creación de documentación técnica, orientada a generar sitios web documentales.