Aggiornamento del sistema di monitoraggio della respirazione del bambino: costi di sviluppo ottimizzati

Innowise ha aggiornato in modo significativo una piattaforma di monitoraggio della respirazione dei bambini e ha preparato il sistema per l'espansione e la scalabilità delle funzionalità.

Cliente

Regione
UE
Cliente da
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.

Le informazioni dettagliate sul cliente non possono essere divulgate in base alle disposizioni dell NDA.

Sfida

Superare l'instabilità delle applicazioni nelle fasi iniziali e la scarsa struttura del codice

Il cliente disponeva di applicazioni mobili e web per il suo sistema di monitoraggio della respirazione dei bambini, ma queste erano in fase iniziale e afflitte da numerosi bug. La scarsa struttura del codice ostacolava sia la correzione dei bug sia lo sviluppo di nuove funzionalità. I ritardi e l'instabilità del sistema hanno comportato un aumento dei costi di assistenza e sviluppo, con un impatto negativo sulle prestazioni finanziarie. Inoltre, questi problemi hanno diminuito la competitività e la quota di mercato dell'azienda.

Innowise è stata incaricata di stabilizzare l'ambiente, risolvere i bug esistenti e preparare il sistema per le future aggiunte di funzionalità e per il ridimensionamento.

Soluzione

Implementare la correzione completa dei bug, il refactoring del sistema e la distribuzione automatizzata per migliorare l'efficienza.

Innowise ha affrontato le sfide risolvendo i bug sia sul backend che sul frontend. Abbiamo ristrutturato la base di codice, creato nuovi microservizi per migliorare la modularità e migrato il database da PostgreSQL a AWS DynamoDB per migliorare la scalabilità e ridurre i costi. Il nostro team ha anche implementato pipeline CI/CD per automatizzare la distribuzione e garantire la qualità del codice. Inoltre, siamo stati responsabili dell'automazione del deployment e del versioning dell'infrastruttura utilizzando Terraform.

Correzione di bug e test

In primo luogo, abbiamo risolto i bug critici che influiscono sulle prestazioni e sull'affidabilità del sistema. Contemporaneamente, il nostro team ha sviluppato test completi di unità e integrazione per verificare la funzionalità delle funzioni nuove ed esistenti. Questi test rigorosi ci hanno permesso di identificare e risolvere tempestivamente i potenziali problemi, garantendo un prodotto finale di alta qualità.

Rifattorizzazione del codice

La base di codice esistente non era strutturata e non seguiva gli standard PEP-8 e i principi dell'architettura pulita, rendendo difficile il lavoro. Il nostro team ha sistematicamente rifattorizzato il codice, allineandolo alle linee guida PEP-8 e migliorandone la struttura complessiva. Questo processo ha comportato la pulizia del codice, l'ottimizzazione delle funzioni, la garanzia di coerenza e l'adesione ai principi SOLID.

Documentazione

Il nostro team ha creato una documentazione tecnica dettagliata per la base di codice esistente, le nuove funzionalità, i microservizi e i processi di distribuzione. Questa documentazione completa ha permesso agli sviluppatori attuali e futuri di comprendere meglio il sistema e ha contribuito a rendere più agevole l'onboarding e il trasferimento delle conoscenze.

Sviluppo di microservizi

Oltre a stabilizzare il sistema di monitoraggio della respirazione del bambino esistente, abbiamo sviluppato nuovi microservizi utilizzando una piattaforma di containerizzazione come Docker e orchestrandoli con Kubernetes. Questo ha migliorato la modularità e la scalabilità, consentendo la distribuzione e la scalabilità indipendente dei singoli servizi.

Ogni microservizio, come il modulo di analisi dei modelli di respirazione o il servizio di notifica degli allarmi, è stato progettato per gestire compiti specifici, comunicando tra loro attraverso leggeri protocolli API RESTful. Questa architettura ha migliorato l'efficienza complessiva del sistema, le prestazioni e la tolleranza ai guasti, in quanto i singoli servizi potevano essere aggiornati o sostituiti senza influenzare l'intero sistema.

Migrazione del database

I nostri esperti hanno gestito la migrazione da PostgreSQL a AWS DynamoDB per sfruttarne la scalabilità, le prestazioni, l'economicità e le capacità di modellazione flessibile dei dati. Questa transizione ha comportato un processo meticoloso di riprogettazione dello schema dei dati per allinearsi alla struttura non relazionale di DynamoDB, un'accurata mappatura e trasformazione dei dati e un'accurata convalida per garantire l'integrità dei dati.

Inoltre, abbiamo ottimizzato i modelli di query e le strategie di indicizzazione per massimizzare le prestazioni di DynamoDB per gli specifici modelli di accesso del sistema di monitoraggio della respirazione dei bambini.

Implementazione CI/CD

Abbiamo implementato pipeline di integrazione e distribuzione continua (CI/CD) utilizzando Jenkins e GitLab CI per automatizzare i processi di compilazione, test e distribuzione. In questo modo abbiamo semplificato i flussi di sviluppo e garantito cicli di feedback rapidi. Inoltre, abbiamo utilizzato Terraform per definire e gestire la nostra infrastruttura cloud come codice. Questo ci ha permesso di fornire e scalare le risorse in modo efficiente, mantenere la coerenza dell'infrastruttura tra gli ambienti e tenere traccia delle modifiche attraverso il controllo delle versioni.

Abbiamo anche integrato framework di test automatizzati nelle nostre pipeline CI/CD per garantire la qualità del codice e la stabilità dell'applicazione prima della distribuzione. Questa combinazione perfetta di pratiche CI/CD e IaC ha ridotto significativamente l'intervento manuale, minimizzato gli errori e accelerato i cicli di rilascio, dando vita a un sistema di monitoraggio della respirazione dei bambini più robusto e affidabile.

Tecnologie

JavaScript (React, TypeScript), Redux

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

VCS

Git, GitLab

Strumenti

Material-UI, FastAPI, Tortoise ORM, boto3

Processo

Abbiamo iniziato con una fase di scoperta, conducendo incontri iniziali con gli stakeholder dell'azienda per comprendere a fondo i loro punti dolenti e le loro esigenze. I nostri analisti aziendali hanno quindi creato un documento completo che illustra i miglioramenti principali e garantisce la fattibilità tecnica della soluzione proposta.

Con i requisiti del cliente chiaramente documentati, il team di sviluppo di Innowise ha iniziato la processo di ingegneria del software. Utilizzando la metodologia Scrum, abbiamo organizzato il nostro lavoro in sprint di due settimane per mantenere progressi regolari e adattabilità. Abbiamo tenuto riunioni trisettimanali per affrontare le questioni critiche e garantire un coordinamento efficace. Inoltre, il project manager ha effettuato chiamate settimanali per aggiornare il cliente sui progressi dello sviluppo e raccogliere feedback, consentendoci di perfezionare continuamente il nostro approccio.

Team

1

Responsabile di progetto

1

Analista aziendale

2

Sviluppatori full-stack

1

Ingegnere QA manuale

1

Ingegnere di automazione QA

Risultati attesi

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.

Durata del progetto
  • Giugno 2022 - Settembre 2023

25%

riduzione dei costi di sviluppo

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.

    Contattateci

    Prenota una chiamata oppure compilate il modulo sottostante e sarete ricontattati una volta elaborata la vostra richiesta.

    Inviaci un messaggio vocale
    Allegare i documenti
    Caricare il file

    È possibile allegare 1 file di dimensioni massime di 2 MB. Formati di file validi: pdf, jpg, jpeg, png.

    Facendo clic su Invia, l'utente acconsente al trattamento dei propri dati personali da parte di Innowise in base alla nostra Informativa sulla privacy per fornirvi informazioni pertinenti. Inviando il vostro numero di telefono, accettate che possiamo contattarvi tramite chiamate vocali, SMS e applicazioni di messaggistica. Potrebbero essere applicate tariffe per chiamate, messaggi e dati.

    Potete anche inviarci la vostra richiesta
    a contact@innowise.com
    Cosa succede dopo?
    1

    Una volta ricevuta ed elaborata la vostra richiesta, vi contatteremo per illustrarvi le esigenze del vostro progetto. Progetto e firmare un NDA per garantire la riservatezza.

    2

    Dopo aver esaminato i vostri desideri, le vostre esigenze e le vostre aspettative, il nostro team elaborerà una proposta di progetto con l'ambito di lavoro, le dimensioni del team, i tempi e le stime dei costi.

    3

    Organizzeremo un incontro con voi per discutere l'offerta e definire i dettagli.

    4

    Infine, firmeremo un contratto e inizieremo subito a lavorare sul vostro progetto.

    freccia