Migración de monolíticos a microservicios: mejores tiempos de respuesta

Innowise migró con éxito la plataforma del cliente de una arquitectura monolítica a microservicios, impulsando tanto backend como frontend para una mejor escalabilidad y rendimiento.

Desafío

A medida que el negocio del cliente se expandía rápidamente, se enfrentaba a crecientes retos técnicos y operativos que amenazaban con frenar su progreso. Su sistema monolítico, antaño fiable, tenía dificultades para seguir el ritmo de las crecientes demandas de los centros sanitarios y el personal médico. Como resultado, se enfrentaron a cuellos de botella en el rendimiento, retrasos en el despliegue de funciones e ineficiencias operativas.

The client needed a system overhaul to keep growing but didn’t want to overstaff and rack up extra costs. They were looking for an IT outsourcing partner who could provide flexible resource scaling based on specific tasks and deadlines while keeping costs in check.

Solución

Innowise construyó una arquitectura de microservicios escalable para el cliente, facilitando el crecimiento de su plataforma. Actualizamos tanto backend como frontend, por lo que todo funciona sin problemas, se despliega rápidamente y ofrece a los usuarios una experiencia mucho mejor. Además, con las pruebas automatizadas y la entrega continua, nuestros expertos mantuvieron la fiabilidad y el funcionamiento tal y como debían.

Análisis y planificación en profundidad

Innowise comenzó con una auditoría exhaustiva del sistema monolítico del cliente, mapeando los componentes e identificando los cuellos de botella. Trabajamos estrechamente con los equipos del cliente para evaluar las funciones empresariales cruciales y asegurarnos de que todas las necesidades de las partes interesadas estaban cubiertas en la planificación.

Identificamos las áreas que más se beneficiarían de este cambio y creamos una hoja de ruta detallada para la migración. Nuestro equipo también se centró en las estrategias de mitigación de riesgos, preparándose para cosas como los problemas de migración de datos, al tiempo que la empresa seguía funcionando sin problemas durante la transición.

Migración de monolitos a microservicios

Tras una sólida planificación, nuestro equipo inició una migración fluida de un sistema monolítico a microservicios. Dividimos los componentes clave de la plataforma en microservicios independientes, dejando que cada uno escalara por su cuenta. Esta configuración modular solucionó los cuellos de botella de rendimiento, de modo que los servicios podían gestionar los cambios de demanda sin ralentizar toda la plataforma.

También creamos bases de datos específicas de cada servicio para mejorar el flujo de datos y reducir las dependencias que causaban ralentizaciones. Con Kubernetes y Docker, nuestro equipo automatizó el despliegue y el escalado de cada microservicio. De este modo, la plataforma puede gestionar picos de uso sin ningún esfuerzo manual.

Orquestación de servicios y comunicación

Creamos una capa de orquestación de microservicios con Apache Kafka para la comunicación basada en mensajes. De este modo, los servicios se mantuvieron conectados de forma flexible para que pudieran escalar de forma independiente. Gracias a la comunicación asíncrona, nuestros expertos redujeron la latencia y mejoraron la capacidad de respuesta del sistema.

Refactorización del frontend

Mientras mejorábamos backend, prestamos frontend la atención que merecía. Nuestro equipo renovó la interfaz de usuario dividiéndola en componentes modulares con Angular, lo que aceleró el desarrollo y permitió añadir funciones sin quebraderos de cabeza. Nuestros especialistas también perfeccionaron la conexión frontend con backend mediante API CRUD personalizadas, garantizando actualizaciones en tiempo real y una latencia mínima.

Pruebas de integración

Para mantener estables tanto el código heredado como los nuevos microservicios, creamos un sólido conjunto de pruebas de integración con JUnit. Centramos estas pruebas en interacciones clave como la sincronización de datos y la autenticación de usuarios para evitar fallos al desplegar nuevas funciones.

Al trabajar en nuestro entorno de pruebas existente, realizamos pruebas coherentes en los principales casos de uso. Cada prueba examinó a fondo cómo interactuaban los componentes nuevos y heredados, reduciendo los riesgos de migración y aumentando la estabilidad de la plataforma.

Tecnologías

Frontend

Angular, TypeScript

Backend

Java 11

Contenedores

Docker, Docker Compose, Kubernetes

VCS

VCS: Git, BitBucket

Pruebas

JUnit

Cloud

Azure

Proceso

Para este proyecto, seguimos una metodología Scrum adaptada a las necesidades del cliente, con sprints de dos semanas para mantener el progreso en el buen camino. Nuestro equipo utilizó Jira para supervisar cada tarea, proporcionando una visibilidad completa de los hitos y los entregables del proyecto. La coordinación diaria a través de Slack mantuvo al equipo conectado, lo que nos permitió abordar los problemas con rapidez.

Nuestro gestor de proyectos celebró reuniones semanales con el cliente, en las que se compartieron actualizaciones detalladas sobre el desarrollo, se habló de los posibles retos y se recabaron comentarios para mantener a todo el mundo sincronizado. Este enfoque de eficacia probada redujo al mínimo el tiempo de inactividad y mantuvo un progreso constante durante todo el proyecto.

Team required

1

Jefe de proyecto

1

Arquitecto de software

3

Desarrolladores Java

2

Angular Desarrolladores

2

Ingenieros DevOps

2

Ingenieros de QA

1

Analista de negocio

Resultados esperados

Nuestro equipo renovó la plataforma del cliente, aumentando la eficacia operativa. Ahora el sistema gestiona más solicitudes sin ralentizarse. El cambio a una arquitectura de microservicios ayudó a reducir los tiempos de respuesta, de modo que los profesionales sanitarios pudieron conectar con el personal médico disponible de forma más rápida y fiable.

La automatización de la implantación y el escalado redujo el esfuerzo manual y los costes operativos, lo que permitió al cliente gestionar los picos de demanda sin necesidad de personal adicional ni de aumentar los gastos de infraestructura.

Además, pruebas automatizadas redujo los fallos del sistema e hizo la plataforma mucho más estable. Ahora las nuevas funciones pueden desplegarse sin problemas y sin interrumpir los servicios en curso.

    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