Uma aplicação de monitorização da exposição à radiação

O Innowise actualizou uma aplicação de monitorização da exposição à radiação, melhorando o tempo de resposta e lançando as bases para o aumento da funcionalidade do software.

Desafio

A aplicação de monitorização da exposição à radiação do cliente já estava no mercado há mais de 10 anos, mas a sua base de código não tinha sofrido quaisquer actualizações ou reescritas significativas durante esse tempo. À medida que o negócio do cliente crescia, crescia também a sua necessidade de uma solução mais robusta e escalável.

Pretendiam modernizar o software, corrigir bugs e resolver vários problemas sistémicos que estavam a afetar o desempenho e a usabilidade geral:

  • Desempenho inadequado. A aplicação abrandava significativamente quando vários clientes finais apresentavam consultas em simultâneo, resultando por vezes em longos tempos de espera e deixando os utilizadores frustrados. Como o cliente tinha planos de expansão do negócio e esperava que a base de utilizadores crescesse, era evidente, a partir das métricas de desempenho, que a aplicação não conseguia lidar com o aumento da carga.
  • Capacidades limitadas. Ao longo dos anos de atividade, o cliente apercebeu-se de que a aplicação carecia de várias caraterísticas importantes necessárias para responder melhor às exigências dos seus clientes. Pretendiam aumentar a solução de monitorização da exposição à radiação com funcionalidades novas e avançadas.
  • Arquitetura deficiente da aplicação. A arquitetura original não foi concebida com a escalabilidade em mente, deixando o cliente preocupado com a possibilidade de não poder acomodar um maior crescimento.
  • Documentação fragmentada. Grande parte da documentação da aplicação estava desactualizada ou incompleta. Para simplificar as actualizações da aplicação e a integração de novos utilizadores, o cliente precisava de refletir todos os aspectos da solução existente na documentação completa do projeto.
Na altura, a aplicação de monitorização da exposição à radiação era mantida por uma equipa subcontratada que não conseguia resolver estes problemas com a rapidez necessária. Por isso, o cliente estava à procura de um profissional de saúde experiente parceiro de desenvolvimento de software para assumir a renovação da aplicação de controlo da exposição à radiação.

Solução

A equipa da Innowise iniciou o projeto com uma auditoria aprofundada da aplicação de monitorização da exposição à radiação para compreender as causas principais dos problemas que afectavam o sistema. Eis o que descobrimos:

  • Tecnologia desactualizada. A aplicação estava a utilizar versões mais antigas de linguagens de programação, incluindo Node.js e Angular.js, bem como diferentes versões de linguagens em toda a aplicação.
  • Consultas SQL ineficientes. Havia uma série de antipadrões na forma como as consultas SQL eram escritas, o que contribuía para um fraco desempenho da aplicação.
  • Problemas de controlo de versões. A aplicação sofria de práticas ineficientes de controlo de versões de software, com ficheiros desactualizados, plugins de terceiros e executáveis armazenados sob controlo de origem.
  • Repositórios desorganizados. A estrutura dos repositórios e dos projectos não era intuitiva, o que dificultava a navegação e a gestão da base de código.
  • Implantação manual. A aplicação foi implementada manualmente, sem um pipeline de CI/CD, aumentando os riscos comerciais e conduzindo a potenciais erros humanos.
  • Sem mecanismos de backup ou recuperação. Não existiam mecanismos para fazer cópias de segurança dos dados da aplicação ou para recuperar a aplicação se algo corresse mal.

Com base nos resultados da auditoria, a equipa de projeto da Innowise criou um roteiro claro das melhorias essenciais para a estabilidade, o desempenho e a escalabilidade da aplicação de monitorização da exposição à radiação. Depois que o cliente deu luz verde ao nosso plano, passamos a fazer melhorias constantes. 

O cliente pretendia que a evolução da aplicação ocorresse da forma mais suave possível, pelo que tornámos as alterações invisíveis para os utilizadores finais, garantindo que não houvesse interrupções na atividade. Em seguida, a equipa da Innowise introduziu as seguintes alterações na aplicação de monitorização da exposição à radiação.

Contentorização de aplicações

Para aumentar o desempenho e suportar futuras necessidades de escalonamento, dividimos a aplicação em vários componentes principais: frontend, backend, módulos de relatórios, módulo de registo e monitorização e base de dados. Depois, a nossa equipa contentorizou cada componente e migrou-os para máquinas virtuais separadas. Estas alterações suportaram as crescentes cargas de trabalho previstas pelo cliente.

Tech stack modernization

Melhorámos a pilha tecnológica da aplicação, actualizando estruturas e ferramentas desactualizadas, resolvendo bugs e garantindo que o sistema podia suportar melhorias futuras. Isto deu à aplicação um impulso muito necessário em termos de desempenho e facilidade de manutenção.

Refactorização de bases de dados

A equipa do Innowise refatorou a base de dados da aplicação de monitorização da exposição à radiação, melhorando as consultas à base de dados, adicionando índices e introduzindo chaves estrangeiras. A nossa abordagem abrangente aumentou o desempenho da base de dados após a refacção.

CI/CD pipeline implementation

Introduzimos um pipeline de integração e implementação contínuas (CI/CD) para substituir o processo de implementação manual. Com esta nova abordagem, a nossa equipa automatizou o processo de implementação, garantindo actualizações mais rápidas e fiáveis. Também implementámos o registo e a monitorização do sistema utilizando Prometheus e Grafana para acompanhar e visualizar o desempenho do sistema e os problemas em tempo real.

Cópias de segurança e recuperação de desastres

A equipa do Innowise utilizou a Infraestrutura como Código (IaC) para a recuperação de desastres, o que significa que toda a aplicação pode agora ser reimplantada num novo ambiente numa questão de minutos. Também criámos procedimentos de cópia de segurança robustos para garantir que os dados estão seguros e podem ser restaurados rapidamente, se necessário.

Documentação de candidatura

Paralelamente à refacção, a equipa da Innowise criou meticulosamente a documentação para a aplicação de monitorização da exposição à radiação, incluindo todas as alterações à arquitetura e ao sistema.

Upcoming development and UI redesign

Depois de lançarmos as bases para a evolução de uma aplicação de monitorização da exposição à radiação, íamos passar ao desenvolvimento de funcionalidades e à reformulação da interface do utilizador. Eis as melhorias futuras que a nossa equipa já planeou:
  • Melhorias nos relatórios. Vamos melhorar as funcionalidades de relatório, acrescentando novos tipos de exames médicos e introduzindo mais formatos de relatório.
  • Redesenho da interface do utilizador. Iremos redesenhar a interface do utilizador ser mais intuitivo e adaptável a diferentes dispositivos e tamanhos de ecrã, proporcionando uma melhor experiência ao utilizador final
  • Outras melhorias na arquitetura. Com base nos dados e nas métricas de desempenho, a Innowise continuará a melhorar a arquitetura da aplicação para garantir que esta possa ser escalada de forma eficaz.

Tecnologias

Frontend

Angular

Backend

Node.js, WinDev

Cloud

OVHcloud

Base de dados

MySQL

DevOps

Terraform, Bitbucket, Grafana, Prometheus, Docker, Docker Compose

Processo

Dado que o cliente pretendia flexibilidade no âmbito do projeto, acordámos um modelo de preços Time & Material, o que significa que estimámos antecipadamente as horas do projeto, mas só cobrámos ao cliente as horas efetivamente gastas. Quando o cliente necessitou de alargar o âmbito do projeto, o nosso gestor de projeto forneceu cálculos adicionais, para que o cliente pudesse acompanhar facilmente as despesas e o progresso do projeto.

Adoptámos uma abordagem de gestão de projectos iterativa, dividindo o projeto em sprints e definindo marcos claros para cada fase. Todas as semanas, a nossa equipa de projeto realizou chamadas com as partes interessadas do cliente para partilhar o progresso e os resultados, melhorando o alinhamento geral da equipa.

Equipa necessária

1

Gestor de projectos

1

Gestor de entregas

1

Analista de negócios

1

Arquiteto de soluções

1

Programador Back-End

1

Programador Front-End

1

Engenheiro DevOps

1

Engenheiro de QA

1

Engenheiro de Testes de Penetração

Resultados

Agora, o cliente tem uma aplicação muito mais robusta, escalável e de fácil manutenção para a monitorização da exposição à radiação. Renovámos com sucesso a infraestrutura de software, corrigimos problemas de desempenho e assegurámos que a arquitetura pode suportar o crescimento futuro. A equipa do Innowise também definiu um roteiro claro para o desenvolvimento de futuras funcionalidades e melhorias do sistema, o que ajudará a melhorar ainda mais a experiência do utilizador e a eficiência operacional.

    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.

    arrow