Baby breathing monitor system upgrade: optimized development costs

Innowise ha mejorado significativamente una plataforma de monitorización de la respiración de bebés y ha preparado el sistema para ampliar y escalar el conjunto de funciones.

Cliente

Industria
Región
UE
Cliente desde
2022

The customer is a global manufacturer of a wide range of consumer electronics, with a specialized division dedicated to baby healthcare devices. This division focuses on creating innovative products, such as breathing monitors, video baby monitors, and dreamers, designed to monitor infants’ breathing patterns and improve their sleep. Parents can access essential health monitoring and support through web and mobile applications.

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

Desafío

Superar la inestabilidad de las aplicaciones en su fase inicial y la mala estructura del código

El cliente disponía de aplicaciones móviles y web para su sistema de monitorización de la respiración del bebé, pero se encontraban en sus primeras fases y estaban plagadas de numerosos errores. La base de código mal estructurada dificultaba tanto la corrección de errores como el desarrollo de nuevas funciones. Los retrasos y la inestabilidad del sistema provocaron un aumento de los costes de soporte y desarrollo, lo que repercutió negativamente en los resultados financieros. Además, estos problemas mermaron la competitividad y la cuota de mercado de la empresa.

Innowise fue contratada para estabilizar el entorno, resolver los errores existentes y preparar el sistema para futuras ampliaciones y adiciones de funciones.

Solución

Corrección de errores, refactorización del sistema y despliegue automatizado para mejorar la eficacia.

Innowise abordó los desafíos corrigiendo errores tanto en el backend como en el frontend. Reestructuramos el código base, creamos nuevos microservicios para mejorar la modularidad y migramos la base de datos de PostgreSQL a AWS DynamoDB para mejorar la escalabilidad y reducir los costes. Nuestro equipo también implementó canalizaciones CI/CD para automatizar la implementación y garantizar la calidad del código. Además, nos encargamos de automatizar la implementación y el versionado de la infraestructura mediante Terraform.

Corrección de errores y pruebas

En primer lugar, solucionamos errores críticos que afectaban al rendimiento y la fiabilidad del sistema. Al mismo tiempo, nuestro equipo desarrolló exhaustivas pruebas unitarias y de integración para verificar la funcionalidad de las funciones nuevas y existentes. Estas rigurosas pruebas nos permitieron detectar y resolver posibles problemas desde el principio, garantizando un producto final de alta calidad.

Refactorización del código

El código base existente estaba desestructurado y no seguía las normas PEP-8 ni los principios de arquitectura limpia, lo que dificultaba el trabajo. Nuestro equipo refactorizó sistemáticamente el código, alineándolo con las directrices PEP-8 y mejorando su estructura general. Este proceso consistió en limpiar el código, optimizar las funciones, garantizar la coherencia y respetar los principios SOLID.

Documentación

Nuestro equipo creó documentación técnica detallada para el código base existente, las nuevas funciones, los microservicios y los procesos de despliegue. Esta documentación exhaustiva permitió a los desarrolladores actuales y futuros comprender mejor el sistema y contribuyó a facilitar la incorporación y la transferencia de conocimientos.

Desarrollo de microservicios

Además de estabilizar el sistema existente de monitorización de la respiración del bebé, desarrollamos nuevos microservicios utilizando una plataforma de contenedorización como Docker y los orquestamos mediante Kubernetes. Esto mejoró la modularidad y la escalabilidad, permitiendo el despliegue independiente y el escalado de servicios individuales.

Cada microservicio, como el módulo de análisis de patrones respiratorios o el servicio de notificación de alarmas, se diseñó para gestionar tareas específicas, comunicándose entre sí mediante protocolos ligeros de API RESTful. Esta arquitectura mejoró la eficiencia general, el rendimiento y la tolerancia a fallos del sistema, ya que los servicios individuales podían actualizarse o sustituirse sin afectar a todo el sistema.

Migración de bases de datos

Nuestros expertos administraron la migración de PostgreSQL a AWS DynamoDB para aprovechar su escalabilidad, desempeño, rentabilidad y capacidades flexibles de modelado de datos. Esta transición implicó un meticuloso proceso de rediseño del esquema de datos para alinearlo con la estructura no relacional de DynamoDB, un cuidadoso mapeo y transformación de datos y una validación exhaustiva para garantizar la integridad de los datos.

Además, optimizamos los patrones de consulta y las estrategias de indexación para maximizar las capacidades de rendimiento de DynamoDB para los patrones de acceso específicos del sistema de monitorización de la respiración del bebé".

Implantación de CI/CD

Implantamos canales de integración y despliegue continuos (CI/CD) con Jenkins y GitLab CI para automatizar los procesos de creación, prueba y despliegue. Esto agilizó los flujos de trabajo de desarrollo y garantizó ciclos de retroalimentación rápidos. Además, empleamos Terraform para definir y gestionar nuestra infraestructura en la nube como código. Esto nos permitió aprovisionar y escalar recursos de forma eficiente, mantener la coherencia de la infraestructura en todos los entornos y realizar un seguimiento de los cambios mediante el control de versiones.

También integramos marcos de pruebas automatizadas en nuestras canalizaciones CI/CD para garantizar la calidad del código y la estabilidad de la aplicación antes de su despliegue. Esta combinación perfecta de prácticas CI/CD e IaC redujo significativamente la intervención manual, minimizó los errores y aceleró los ciclos de lanzamiento, lo que dio como resultado un sistema de monitorización de la respiración del bebé más sólido y fiable.

Tecnologías

JavaScript (ReactTypeScript), Redux

AWS, Lambda, SQS, SNS, SES, IoT Core, Timestream, Cognito, DynamoDB

VCS

Git, GitLab

Herramientas

Material-UI, FastAPI, Tortoise ORM, boto3

Proceso

Comenzamos con una fase de descubrimiento, celebrando reuniones iniciales con las partes interesadas de la empresa para comprender a fondo sus puntos débiles y requisitos. A continuación, nuestros analistas de negocio elaboraron un documento exhaustivo en el que se detallaban las principales mejoras y se garantizaba la viabilidad técnica de la solución propuesta.

Con los requisitos del cliente claramente documentados, el equipo de desarrollo de Innowise comenzó el proceso de ingeniería del software. Utilizando la metodología Scrum, organizamos nuestro trabajo en sprints de dos semanas para mantener un progreso regular y la adaptabilidad. Celebramos reuniones cada tres semanas para abordar cuestiones críticas y garantizar una coordinación eficaz. Además, el gestor del proyecto realizó llamadas semanales para poner al cliente al día de los avances en el desarrollo y recabar opiniones, lo que nos permitió perfeccionar continuamente nuestro enfoque.

Equipo

1

Jefe de proyecto

1

Analista de negocio

2

Desarrolladores Full-Stack

1

Ingeniero de QA manual

1

Ingeniero de automatización de QA

Expected results

The implementation of the project leds to a significant improvement in system stability and reliability, resulting in increased user satisfaction and enhanced brand trust. The optimized architecture and rewritten codebase simplifies further development and support, reducing development costs.

Migrating to a higher-performing database and introducing microservices provides flexibility and scalability, enabling a faster response to user growth. Automating testing and deployment also cuts down the time it takes to release updates, speeding up the launch of new features.

Duración del proyecto
  • Junio 2022 - Septiembre 2023

25%

reducción de los costes de desarrollo

15%

increase in solution performance
*The expected results outlined in this section are examples of what can be achieved with such solutions. These results do not pertain to a specific project and do not reflect the actual outcomes of the described case.

    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