Actualización de una aplicación de control de la exposición a las radiaciones

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

Cliente

Industria
Sanidad
Región
UE
Cliente desde
2024

Nuestro cliente es una empresa europea de consultoría y tecnología especializada en la gestión de la protección radiológica, la calidad y la seguridad. La empresa presta apoyo a empresas de los sectores de la sanidad, el transporte y la energía y les ayuda a cumplir las normativas regionales de protección contra las radiaciones y las normas internacionales, incluidas ISO 9001, ISO 14001 e ISO 19443.

Más de 200 empresas utilizan a diario uno de sus productos estrella, una completa plataforma SaaS, para controlar la exposición a la radiación y el estado de salud del personal. Destinada a mejorar la seguridad y el bienestar de los empleados, la aplicación web permite calcular el nivel de exposición a la radiación a partir de la introducción manual de datos dosimétricos. La aplicación también permite supervisar los datos de salud de los empleados, realizar controles de salud personalizados y evaluar de forma proactiva los riesgos médicos de quienes trabajan en entornos potencialmente peligrosos.

La información detallada sobre el cliente no puede divulgarse en virtud de las disposiciones del acuerdo de confidencialidad.

Desafío

Problemas arraigados en la aplicación que obstaculizan el crecimiento de la empresa

La aplicación de control de la exposición a la radiación lleva ya más de 10 años en el mercado, pero su código base no había sufrido actualizaciones ni reescrituras significativas 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 tiempos de espera de más de 500 ms 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 dejaban claro 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

Auditoría, modernización y refactorización de aplicaciones en profundidad

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 se produjera de la forma más fluida posible, por lo que hicimos que los cambios fueran invisibles para los usuarios finales, asegurándonos de que no hubiera interrupciones en el negocio. En solo 3 meses, el equipo de Innowise introdujo los siguientes cambios en la aplicación de monitorización 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 monitorización de la exposición a la radiación, mejorando las consultas a la base de datos, añadiendo índices e introduciendo claves foráneas. Nuestro enfoque integral aumentó el rendimiento de la base de datos entre 1,5 y 3 veces después de 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ó Infrastructure as Code (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 tan solo 15 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

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

Mejor rendimiento y arquitectura robusta de la aplicación

Ahora, en sólo 3 meses, 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 asegurado que la arquitectura pueda manejar el crecimiento futuro. El equipo de Innowise también ha establecido una hoja de ruta clara para el desarrollo de las próximas características y mejoras del sistema, lo que ayudará a mejorar aún más la experiencia del usuario y la eficiencia operativa.

En los próximos meses, nuestro equipo llevará a cabo las actualizaciones previstas para ayudar al cliente a satisfacer las cambiantes necesidades de los usuarios.

Duración del proyecto
  • Diciembre de 2024 - En curso

3.3

veces más rápido

1.5-3

veces mejor rendimiento de la base de datos

Contáctenos

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

    Por favor, facilítenos detalles del proyecto, duración, tecnologías, especialistas informáticos necesarios y otra información relevante.
    Grabe un mensaje de voz sobre su proyecto
    para ayudarnos a comprenderlo mejor.
    Adjunte los documentos adicionales si es necesario
    Cargar archivo

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

    Le informamos de que cuando haga clic en el botón Enviar, Innowise procesará sus datos personales de acuerdo con nuestra Política de privacidad con el fin de proporcionarle la información adecuada.

    ¿Qué pasa después?

    1

    Una vez recibida y procesada su solicitud, nos pondremos en contacto con usted para detallar las necesidades de su proyecto y firmar un acuerdo de confidencialidad que garantice la confidencialidad de la información.

    2

    Después de examinar los requisitos, nuestros analistas y desarrolladores elaboran una propuesta de proyecto con el alcance de las obras, el tamaño del equipo, el tiempo y las estimaciones de costos.

    3

    Concertamos una reunión con usted para discutir la oferta y llegar a un acuerdo.

    4

    Firmamos un contrato y comenzamos a trabajar en su proyecto lo más rápido posible.

    ¡Спасибо!

    Cообщение отправлено.
    Мы обработаем ваш запрос и свяжемся с вами в кратчайшие сроки.

    Gracias.

    Su mensaje ha sido enviado.
    Procesaremos su solicitud y nos pondremos en contacto con usted lo antes posible.

    Gracias.

    Su mensaje ha sido enviado. 

    Procesaremos su solicitud y nos pondremos en contacto con usted lo antes posible.

    flecha