Una aplicación para controlar la exposición a la radiación

Innowise ha actualizado una aplicación de control de la exposición a la radiación, mejorando el tiempo de respuesta y sentando las bases para la ampliación de la funcionalidad del software.

Desafío

La aplicación de monitorización de la exposición a la radiación del cliente lleva ya más de 10 años en el mercado, pero su código base no había sufrido ninguna actualización o reescritura significativa durante ese tiempo. A medida que el negocio del cliente crecía, también lo hacía su necesidad de una solución más robusta y escalable.

Querían modernizar el software, corregir errores y solucionar varios problemas sistémicos que habían estado afectando al rendimiento y a la usabilidad general:

  • Rendimiento inadecuado. La aplicación se ralentizaba considerablemente cuando varios clientes finales enviaban consultas simultáneamente, lo que a veces provocaba largos tiempos de espera y dejaba a los usuarios frustrados. Como el cliente tenía planes de expansión y esperaba que la base de usuarios creciera, las métricas de rendimiento indicaban claramente que la aplicación no podía soportar el aumento de carga.
  • Capacidades limitadas. Con el paso de los años, el cliente se dio cuenta de que la aplicación carecía de varias funciones importantes necesarias para satisfacer mejor las demandas de sus clientes. Querían aumentar la solución de control de la exposición a la radiación con funciones nuevas y avanzadas.
  • Arquitectura deficiente de la aplicación. La arquitectura original no se diseñó teniendo en cuenta la escalabilidad, por lo que el cliente temía que no pudiera adaptarse a un mayor crecimiento.
  • Documentación fragmentada. Gran parte de la documentación de la aplicación estaba obsoleta o incompleta. Para agilizar las actualizaciones de la aplicación y la incorporación de nuevos usuarios, el cliente necesitaba reflejar todos los aspectos de la solución existente en una documentación exhaustiva del proyecto.
En aquel momento, el mantenimiento de la aplicación de control de la exposición a la radiación corría a cargo de un equipo subcontratado que no podía resolver estos problemas con la suficiente rapidez. Por ello, el cliente buscaba un equipo sanitario con experiencia. socio de desarrollo de software para hacerse cargo de la renovación de la aplicación de control de la exposición a las radiaciones.

Solución

El equipo de Innowise comenzó el proyecto con una auditoría en profundidad de la aplicación de control de la exposición a la radiación para comprender las causas fundamentales de los problemas que afectaban al sistema. Esto es lo que encontramos:

  • Tecnología obsoleta. La aplicación utilizaba versiones antiguas de lenguajes de programación, como Node.js y Angular.js, así como distintas versiones de lenguajes en toda la aplicación.
  • Consultas SQL ineficaces. Había una serie de antipatrones en la forma de escribir las consultas SQL, que contribuían al bajo rendimiento de las aplicaciones.
  • Problemas de control de versiones. La aplicación adolecía de prácticas ineficaces de control de versiones de software, con archivos obsoletos, plugins de terceros y ejecutables almacenados bajo control de código fuente.
  • Repositorios desorganizados. La estructura de los repositorios y proyectos no era intuitiva, lo que dificultaba la navegación y la gestión del código base.
  • Despliegue manual. La aplicación se desplegaba manualmente, sin una canalización CI/CD, lo que aumentaba los riesgos empresariales y daba lugar a posibles errores humanos.
  • Sin mecanismos de copia de seguridad o recuperación. No existían mecanismos para hacer copias de seguridad de los datos de la aplicación o recuperarla si algo iba mal.

Basándose en los resultados de la auditoría, el equipo de proyecto de Innowise creó una hoja de ruta clara de las mejoras esenciales para la estabilidad, el rendimiento y la escalabilidad de la aplicación de control de la exposición a la radiación. Después de que el cliente diera luz verde a nuestro plan, pasamos a realizar mejoras constantes. 

El cliente quería que la evolución de la aplicación fuera lo más fluida posible, así que hicimos que los cambios fueran invisibles para los usuarios finales, asegurándonos de que no hubiera interrupciones en el negocio. A continuación, el equipo de Innowise introdujo los siguientes cambios en la aplicación de control de la exposición a la radiación.

Containerización de aplicaciones

Para aumentar el rendimiento y dar soporte a futuras necesidades de ampliación, dividimos la aplicación en varios componentes clave: frontend, backend, módulos de informes, módulo de registro y supervisión, y base de datos. A continuación, nuestro equipo contenedorizó cada componente y los migró a máquinas virtuales independientes. Estos cambios soportaron las crecientes cargas de trabajo previstas por el cliente.

Modernización de la pila tecnológica

Mejoramos la pila tecnológica de la aplicación actualizando marcos y herramientas obsoletos, resolviendo errores y asegurándonos de que el sistema pudiera soportar futuras mejoras. Esto dio a la aplicación un impulso muy necesario en cuanto a rendimiento y facilidad de mantenimiento.

Refactorización de bases de datos

El equipo de Innowise refactorizó la base de datos de la aplicación de control de la exposición a la radiación, mejorando las consultas a la base de datos, añadiendo índices e introduciendo claves externas. Nuestro enfoque integral aumentó el rendimiento de la base de datos tras la refactorización.

Implantación de canalizaciones CI/CD

Introdujimos un canal de integración y despliegue continuos (CI/CD) para sustituir el proceso de despliegue manual. Con este nuevo enfoque, nuestro equipo automatizó el proceso de despliegue, garantizando actualizaciones más rápidas y fiables. También implementamos el registro y la supervisión del sistema mediante Prometheus y Grafana para realizar un seguimiento y visualizar el rendimiento y los problemas del sistema en tiempo real.

Copias de seguridad y recuperación en caso de catástrofe

El equipo de Innowise utilizó la Infraestructura como Código (IaC) para la recuperación en caso de desastre, lo que significa que toda la aplicación puede volver a desplegarse en un nuevo entorno en cuestión de minutos. También establecimos sólidos procedimientos de copia de seguridad para garantizar que los datos estén seguros y puedan restaurarse rápidamente en caso necesario.

Documentación de la solicitud

Junto con la refactorización, el equipo de Innowise creó meticulosamente la documentación para la aplicación de control de la exposición a la radiación, incluidos todos los cambios en la arquitectura y el sistema.

Próximo desarrollo y rediseño de la interfaz de usuario

Después de sentar las bases para la evolución de una aplicación de control de la exposición a la radiación, íbamos a pasar al desarrollo de funciones y al rediseño de la interfaz de usuario. Estas son las futuras mejoras que nuestro equipo ya ha planeado:
  • Mejoras en los informes. Mejoraremos las funciones de elaboración de informes, añadiendo nuevos tipos de reconocimientos médicos e introduciendo más formatos de informe.
  • Rediseño de la interfaz de usuario. Nosotros rediseñar la interfaz de usuario ser más intuitivo y adaptable a los distintos dispositivos y tamaños de pantalla, proporcionando una mejor experiencia al usuario final.
  • Otras mejoras de la arquitectura. Basándose en los datos y las métricas de rendimiento, Innowise seguirá mejorando la arquitectura de la aplicación para garantizar que pueda ampliarse de forma eficaz.

Tecnologías

Frontend

Angular

Backend

Node.js, WinDev

Cloud

OVHcloud

Base de datos

MySQL

DevOps

Terraform, Bitbucket, Grafana, Prometheus, Docker, Docker Compose

Proceso

Dado que el cliente quería flexibilidad en el alcance del proyecto, acordamos un modelo de precios Time & Material, lo que significa que calculamos las horas del proyecto por adelantado, pero sólo cobramos al cliente las horas realmente empleadas. Cuando el cliente necesitó ampliar el alcance del proyecto, nuestro gestor de proyectos facilitó cálculos adicionales, para que el cliente pudiera hacer fácilmente un seguimiento de los gastos y el progreso del proyecto.

Adoptamos un enfoque iterativo de gestión de proyectos, dividiendo el proyecto en sprints y definiendo hitos claros para cada fase. Cada semana, nuestro equipo de proyecto se reunía con las partes interesadas del cliente para compartir los avances y resultados, mejorando así la alineación general del equipo.

Equipo necesario

1

Jefe de proyecto

1

Gestor de entregas

1

Analista de negocio

1

Arquitecto de soluciones

1

Desarrollador de Back-End

1

Desarrollador de Front-End

1

Ingeniero DevOps

1

Ingeniero de QA

1

Ingeniero de pruebas de penetración

Resultados

Ahora, el cliente dispone de una aplicación mucho más sólida, escalable y fácil de mantener para el control de la exposición a la radiación. Hemos renovado con éxito la infraestructura de software, solucionado problemas de rendimiento y garantizado que la arquitectura pueda soportar el crecimiento futuro. El equipo de Innowise también ha trazado una hoja de ruta clara para el desarrollo de próximas funciones y mejoras del sistema, que ayudarán a mejorar aún más la experiencia del usuario y la eficiencia operativa.

    Contáctenos

    Reserve usted una llamada o rellene usted el siguiente formulario y nos pondremos en contacto con usted cuando hayamos procesado su solicitud.

    Envíenos un mensaje de voz
    Adjuntar documentos
    Cargar archivo

    Puede adjuntar 1 archivo de hasta 2 MB. Formatos de archivo válidos: pdf, jpg, jpeg, png.

    Al hacer clic en Enviar, autoriza a Innowise a procesar sus datos personales de acuerdo con nuestra política de privacidad. Política de privacidad para proporcionarle información relevante. Al enviar su número de teléfono, acepta que nos pongamos en contacto con usted a través de llamadas de voz, SMS y aplicaciones de mensajería. Pueden aplicarse tarifas de llamadas, mensajes y datos.

    También puede enviarnos su solicitud
    a contact@innowise.com
    ¿Qué pasa después?
    1

    Una vez recibida y procesada su solicitud, nos pondremos en contacto con usted para detallarle las necesidades de su proyecto y firmar un acuerdo de confidencialidad. Proyecto y firmaremos un acuerdo de confidencialidad.

    2

    Tras examinar sus deseos, necesidades y expectativas, nuestro equipo elaborará una propuesta de proyecto con el alcance del trabajo, el tamaño del equipo, el plazo y los costes estimados con el alcance del trabajo, el tamaño del equipo, el tiempo y las estimaciones de costes.

    3

    Concertaremos una reunión con usted para hablar de la oferta y concretar los detalles.

    4

    Por último, firmaremos un contrato y empezaremos a trabajar en su proyecto de inmediato.

    flecha