Baby breathing monitor system upgrade: optimized development costs

Innowise a considérablement amélioré une plateforme de surveillance de la respiration des bébés et a préparé le système à l'expansion et à la mise à l'échelle de l'ensemble des fonctionnalités.

Client

Région
UE
Client depuis
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.

Les informations détaillées sur le client ne peuvent être divulguées en vertu des dispositions de la NDA.

Défi

Surmonter l'instabilité des applications à un stade précoce et la mauvaise structure du code

Le client disposait d'applications mobiles et web pour son système de surveillance de la respiration des bébés, mais celles-ci en étaient à leurs débuts et souffraient de nombreux bogues. La base de code mal structurée entravait à la fois la correction des bogues et le développement de nouvelles fonctionnalités. Les retards et l'instabilité du système ont entraîné une augmentation des coûts d'assistance et de développement, ce qui a eu un impact négatif sur les performances financières. En outre, ces problèmes ont réduit la compétitivité et la part de marché de l'entreprise.

Innowise a été engagé pour stabiliser l'environnement, résoudre les bogues existants et préparer le système à de futurs ajouts de fonctionnalités et à une mise à l'échelle.

Solution

Mise en œuvre d'une correction complète des bogues, d'une refonte du système et d'un déploiement automatisé pour améliorer l'efficacité.

Innowise a relevé les défis en corrigeant les bogues à la fois sur le backend et le frontend. Nous avons restructuré la base de code, créé de nouveaux microservices pour améliorer la modularité et migré la base de données de PostgreSQL vers AWS DynamoDB pour améliorer l'évolutivité et réduire les coûts. Notre équipe a également mis en place des pipelines CI/CD pour automatiser le déploiement et assurer la qualité du code. En outre, nous étions responsables de l'automatisation du déploiement et du versionnage de l'infrastructure à l'aide de Terraform.

Correction de bugs et tests

Tout d'abord, nous avons corrigé les bogues critiques ayant un impact sur les performances et la fiabilité du système. Simultanément, notre équipe a mis au point des tests unitaires et d'intégration complets pour vérifier la fonctionnalité des fonctions nouvelles et existantes. Ces tests rigoureux nous ont permis d'identifier et de résoudre les problèmes potentiels dès le début, garantissant ainsi un produit final de haute qualité.

Refonte du code

La base de code existante n'était pas structurée et ne respectait pas les normes PEP-8 et les principes d'architecture propre, ce qui la rendait difficile à utiliser. Notre équipe a systématiquement remanié le code, en l'alignant sur les directives PEP-8 et en améliorant sa structure générale. Ce processus a consisté à nettoyer le code, à optimiser les fonctions, à assurer la cohérence et à adhérer aux principes SOLID.

Documentation

Notre équipe a créé une documentation technique détaillée pour la base de code existante, les nouvelles fonctionnalités, les microservices et les processus de déploiement. Cette documentation complète a permis aux développeurs actuels et futurs de mieux comprendre le système et a contribué à faciliter l'intégration et le transfert de connaissances.

Développement de microservices

En plus de stabiliser le système existant de moniteur de respiration pour bébé, nous avons développé de nouveaux microservices en utilisant une plateforme de conteneurisation comme Docker et les avons orchestrés à l'aide de Kubernetes. Cela a amélioré la modularité et l'évolutivité, permettant un déploiement et une mise à l'échelle indépendants des services individuels.

Chaque microservice, tel que le module d'analyse des schémas respiratoires ou le service de notification des alarmes, a été conçu pour gérer des tâches spécifiques, en communiquant les uns avec les autres par le biais de protocoles API RESTful légers. Cette architecture a permis d'améliorer l'efficacité globale, les performances et la tolérance aux pannes du système, car les services individuels peuvent être mis à jour ou remplacés sans affecter l'ensemble du système.

Migration des bases de données

Nos experts ont géré la migration de PostgreSQL vers AWS DynamoDB afin de tirer parti de son évolutivité, de ses performances, de sa rentabilité et de ses capacités de modélisation de données flexibles. Cette transition a impliqué un processus méticuleux de refonte du schéma de données pour s'aligner sur la structure non relationnelle de DynamoDB, un mappage et une transformation minutieux des données, ainsi qu'une validation approfondie pour garantir l'intégrité des données.

En outre, nous avons optimisé les modèles de requête et les stratégies d'indexation afin de maximiser les capacités de performance de DynamoDB pour les modèles d'accès spécifiques du système de moniteur de respiration pour bébé.

Mise en œuvre de CI/CD

Nous avons mis en place des pipelines d'intégration et de déploiement continus (CI/CD) en utilisant Jenkins et GitLab CI pour automatiser les processus de construction, de test et de déploiement. Cela a permis de rationaliser les flux de développement et de garantir des boucles de rétroaction rapides. En outre, nous avons utilisé Terraform pour définir et gérer notre infrastructure en nuage en tant que code. Cela nous a permis de provisionner et de dimensionner les ressources de manière efficace, de maintenir la cohérence de l'infrastructure entre les environnements et de suivre les changements grâce au contrôle de version.

Nous avons également intégré des cadres de test automatisés dans nos pipelines CI/CD afin de garantir la qualité du code et la stabilité de l'application avant le déploiement. Cette combinaison transparente de pratiques CI/CD et d'IaC a permis de réduire considérablement les interventions manuelles, de minimiser les erreurs et d'accélérer les cycles de publication, ce qui s'est traduit par un système de moniteurs de respiration pour bébés plus robuste et plus fiable.

Technologies

JavaScript (React, TypeScript), Redux

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

VCS

Git, GitLab

Outils

Material-UI, FastAPI, Tortoise ORM, boto3

Processus

Nous avons commencé par une phase de découverte, en organisant des réunions initiales avec les parties prenantes de l'entreprise afin de bien comprendre leurs problèmes et leurs besoins. Nos analystes commerciaux ont ensuite créé un document complet détaillant les principales améliorations et garantissant la viabilité technique de la solution proposée.

Les exigences du client étant clairement documentées, l'équipe de développement d'Innowise a commencé à travailler sur le projet. processus d'ingénierie logicielle. En utilisant la méthodologie Scrum, nous avons organisé notre travail en sprints de deux semaines afin de maintenir des progrès réguliers et une bonne capacité d'adaptation. Nous avons organisé des réunions trihebdomadaires pour traiter les problèmes critiques et assurer une coordination efficace. En outre, le chef de projet a organisé des appels hebdomadaires pour informer le client de l'avancement du développement et recueillir des commentaires, ce qui nous a permis d'affiner continuellement notre approche.

Équipe

1

Chef de projet

1

Analyste commercial

2

Développeurs Full-Stack

1

Ingénieur QA manuel

1

Ingénieur en automatisation 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.

Durée du projet
  • Juin 2022 - septembre 2023

25%

réduction des coûts de développement

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.

    Contact

    Réserver un appel ou remplissez le formulaire ci-dessous et nous vous contacterons dès que nous aurons traité votre demande.

    Envoyez-nous un message vocal
    Joindre des documents
    Charger fichier

    Vous pouvez joindre un fichier d'une taille maximale de 2 Mo. Formats de fichiers valables : pdf, jpg, jpeg, png.

    En cliquant sur Envoyer, vous consentez à ce qu'Innowise traite vos données personnelles conformément à notre politique de confidentialité. Politique de confidentialité pour vous fournir des informations pertinentes. En communiquant votre numéro de téléphone, vous acceptez que nous puissions vous contacter par le biais d'appels vocaux, de SMS et d'applications de messagerie. Les tarifs des appels, des messages et des données peuvent s'appliquer.

    Vous pouvez également nous envoyer votre demande
    à contact@innowise.com
    Que se passe-t-il ensuite ?
    1

    Une fois que nous aurons reçu et traité votre demande, nous vous contacterons pour détailler les besoins de votre projet et signer un accord de confidentialité. Projet et signer un accord de confidentialité.

    2

    Après avoir examiné vos souhaits, vos besoins et vos attentes, notre équipe élaborera une proposition de projet avec l'étendue des travaux, la taille de l'équipe, les délais et les coûts estimés projet avec l'étendue des travaux, la taille de l'équipe, les délais et les coûts estimés.

    3

    Nous prendrons rendez-vous avec vous pour discuter de l'offre et régler les détails.

    4

    Enfin, nous signons un contrat et commençons immédiatement à travailler sur votre projet.

    flèche