Baby breathing monitor system upgrade: optimized development costs

A Innowise actualizou significativamente uma plataforma de monitorização da respiração de bebés e preparou o sistema para a expansão e aumento do conjunto de funcionalidades.

Cliente

Região
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.

As informações pormenorizadas sobre o cliente não podem ser divulgadas ao abrigo das disposições do NDA.

Desafio

Ultrapassar a instabilidade das aplicações em fase inicial e a má estrutura do código

O cliente tinha aplicações móveis e Web para o seu sistema de monitorização da respiração de bebés, mas estas estavam numa fase inicial e eram afectadas por inúmeros erros. A base de código mal estruturada impedia a correção de erros e o desenvolvimento de novas funcionalidades. Os atrasos e a instabilidade do sistema levaram a um aumento dos custos de apoio e desenvolvimento, afectando negativamente o desempenho financeiro. Além disso, estes problemas diminuíram a competitividade e a quota de mercado da empresa.

A Innowise foi contratada para estabilizar o ambiente, resolver os bugs existentes e preparar o sistema para futuras adições de recursos e escalonamento.

Solução

Implementar a correção exaustiva de erros, a refacção do sistema e a implantação automatizada para melhorar a eficiência

A Innowise abordou os desafios corrigindo bugs tanto no backend quanto no frontend. Reestruturámos a base de código, criámos novos microsserviços para melhorar a modularidade e migrámos a base de dados do PostgreSQL para o AWS DynamoDB para melhorar a escalabilidade e reduzir os custos. A nossa equipa também implementou pipelines CI/CD para automatizar a implementação e garantir a qualidade do código. Além disso, fomos responsáveis por automatizar a implantação e o controle de versão da infraestrutura usando o Terraform.

Correção de erros e testes

Em primeiro lugar, resolvemos os erros críticos que afectavam o desempenho e a fiabilidade do sistema. Simultaneamente, a nossa equipa desenvolveu testes unitários e de integração abrangentes para verificar a funcionalidade das caraterísticas novas e existentes. Estes testes rigorosos permitiram-nos identificar e resolver potenciais problemas numa fase inicial, garantindo um produto final de elevada qualidade.

Refactorização do código

A base de código existente não estava estruturada e não seguia as normas PEP-8 e os princípios de arquitetura limpa, o que tornava difícil trabalhar com ela. A nossa equipa refactorou sistematicamente o código, alinhando-o com as diretrizes PEP-8 e melhorando a sua estrutura geral. Este processo envolveu a limpeza do código, a otimização de funções, a garantia de consistência e a adesão aos princípios SOLID.

Documentação

A nossa equipa criou documentação técnica detalhada para a base de código existente, novas funcionalidades, microsserviços e processos de implementação. Esta documentação abrangente permitiu que os actuais e futuros programadores compreendessem melhor o sistema e contribuiu para uma integração e transferência de conhecimentos mais fáceis.

Desenvolvimento de microsserviços

Além de estabilizar o sistema de monitor de respiração do bebé existente, desenvolvemos novos microsserviços utilizando uma plataforma de contentorização como o Docker e orquestrámo-los utilizando o Kubernetes. Isto melhorou a modularidade e a escalabilidade, permitindo a implementação independente e o escalonamento de serviços individuais.

Cada microsserviço, como o módulo de análise de padrões respiratórios ou o serviço de notificação de alarmes, foi concebido para lidar com tarefas específicas, comunicando entre si através de protocolos API RESTful leves. Esta arquitetura melhorou a eficiência global do sistema, o desempenho e a tolerância a falhas, uma vez que os serviços individuais podiam ser actualizados ou substituídos sem afetar todo o sistema.

Migração da base de dados

Nossos especialistas gerenciaram a migração do PostgreSQL para o AWS DynamoDB para aproveitar sua escalabilidade, desempenho, economia e recursos flexíveis de modelagem de dados. Essa transição envolveu um processo meticuloso de redesenho do esquema de dados para se alinhar com a estrutura não relacional do DynamoDB, mapeamento e transformação cuidadosos de dados e validação completa para garantir a integridade dos dados.

Além disso, optimizámos os padrões de consulta e as estratégias de indexação para maximizar as capacidades de desempenho do DynamoDB para os padrões de acesso específicos do sistema de monitor de respiração do bebé.

Implementação de CI/CD

Implementámos pipelines de integração e implementação contínuas (CI/CD) utilizando Jenkins e GitLab CI para automatizar os processos de construção, teste e implementação. Isto simplificou os fluxos de trabalho de desenvolvimento e assegurou ciclos de feedback rápidos. Além disso, utilizámos o Terraform para definir e gerir a nossa infraestrutura de nuvem como código. Isto permitiu-nos provisionar e escalar recursos de forma eficiente, manter a consistência da infraestrutura entre ambientes e acompanhar as alterações através do controlo de versões.

Também integrámos estruturas de teste automatizadas nos nossos pipelines de CI/CD para garantir a qualidade do código e a estabilidade da aplicação antes da implementação. Esta combinação perfeita de práticas de CI/CD e IaC reduziu significativamente a intervenção manual, minimizou os erros e acelerou os ciclos de lançamento, resultando num sistema de monitor de respiração para bebés mais robusto e fiável.

Tecnologias

JavaScript (React, TypeScript), Redux

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

VCS

Git, GitLab

Ferramentas

Material-UI, FastAPI, Tortoise ORM, boto3

Processo

Começámos com uma fase de descoberta, conduzindo reuniões iniciais com as partes interessadas da empresa para compreendermos os seus problemas e requisitos. Os nossos analistas comerciais criaram então um documento exaustivo que detalhava as principais melhorias e assegurava a viabilidade técnica da solução proposta.

Com os requisitos do cliente claramente documentados, a equipa de desenvolvimento da Innowise iniciou o processo de processo de engenharia de software. Utilizando a metodologia Scrum, organizámos o nosso trabalho em sprints de duas semanas para manter um progresso regular e a adaptabilidade. Realizámos reuniões tri-semanais para abordar questões críticas e garantir uma coordenação eficaz. Além disso, o gestor de projeto realizou chamadas semanais para atualizar o cliente sobre o progresso do desenvolvimento e recolher feedback, permitindo-nos aperfeiçoar continuamente a nossa abordagem.

Equipa

1

Gestor de projectos

1

Analista de negócios

2

Programadores Full-Stack

1

Engenheiro de controlo de qualidade manual

1

Engenheiro de automatização 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.

Duração do projecto
  • junho de 2022 - setembro de 2023

25%

redução dos custos de desenvolvimento

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.

    Contactar-nos

    Marcar uma chamada ou preencha o formulário abaixo e entraremos em contacto consigo assim que tivermos processado o seu pedido.

    Envie-nos uma mensagem de voz
    Anexar documentos
    Enviar ficheiro

    Pode anexar um ficheiro com um máximo de 2MB. Formatos de ficheiro válidos: pdf, jpg, jpeg, png.

    Ao clicar em Enviar, o utilizador autoriza a Innowise a processar os seus dados pessoais de acordo com a nossa Política de privacidade para lhe fornecer informações relevantes. Ao enviar o seu número de telefone, o utilizador aceita que o possamos contactar através de chamadas de voz, SMS e aplicações de mensagens. Poderão ser aplicadas tarifas de chamadas, mensagens e dados.

    Pode também enviar-nos o seu pedido
    para contact@innowise.com
    O que é que acontece a seguir?
    1

    Assim que recebermos e processarmos o seu pedido, entraremos em contacto consigo para necessidades do seu projeto e assinar um NDA para garantir a confidencialidade.

    2

    Depois de analisarmos os seus desejos, necessidades e expectativas, a nossa equipa elaborará uma proposta de projeto proposta de projeto com o âmbito do trabalho, dimensão da equipa, tempo e estimativas de custos.

    3

    Marcaremos uma reunião consigo para discutir a oferta e acertar os pormenores.

    4

    Por fim, assinaremos um contrato e começaremos a trabalhar no seu projeto imediatamente.

    seta