Migração de monolítico para microsserviços: tempos de resposta melhorados

A Innowise migrou com sucesso a plataforma do cliente de uma arquitetura monolítica para microsserviços, melhorando tanto backend como frontend para uma melhor escalabilidade e desempenho.

Cliente

Indústria
Cuidados de saúde
Região
UE
Cliente desde
2023

Our client is a top-tier healthcare staffing service that helps healthcare providers handle soaring staffing needs and simplify the hiring process. On the other side, job seekers get to choose positions that fit their schedules and preferences perfectly. Our client is all about matching the right people with the right jobs.

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

Desafio

Acompanhar o aumento da procura sem falir o orçamento

À medida que o negócio do cliente se expandia rapidamente, enfrentava crescentes desafios técnicos e operacionais que ameaçavam travar o seu progresso. O seu sistema monolítico, outrora fiável, tinha dificuldade em acompanhar as crescentes exigências das instalações de cuidados de saúde e do pessoal médico. Como resultado, eles enfrentaram gargalos de desempenho, atrasos no lançamento de recursos e ineficiências operacionais.

O cliente necessitava de uma revisão do sistema para continuar a crescer, mas não queria ter de recorrer a pessoal em excesso e acumular custos adicionais. Procurava um parceiro de outsourcing de IT que pudesse fornecer um escalonamento flexível de recursos com base em tarefas e prazos específicos, mantendo os custos sob controlo. Foi então que Innowise interveio com os seus conhecimentos especializados para os colocar de novo no caminho certo.

Solução

Mudar para microsserviços para melhorar a escalabilidade e a velocidade

Innowise construiu uma arquitetura de microserviços escalável para o cliente, facilitando o crescimento da sua plataforma. Actualizámos tanto backend como frontend, para que tudo corra bem, seja implementado rapidamente e proporcione aos utilizadores uma experiência muito melhor. Além disso, com testes automatizados e entrega contínua, os nossos especialistas mantiveram tudo fiável e a funcionar como deveria.

Análise e planeamento aprofundados

Innowise começou com uma auditoria completa do sistema monolítico do cliente, mapeando os componentes e identificando os estrangulamentos. Trabalhámos em estreita colaboração com as equipas do cliente para avaliar as funções comerciais cruciais e garantir que todas as necessidades das partes interessadas eram abrangidas pelo planeamento.

Identificámos as áreas que receberiam o maior impulso com esta mudança e criámos um roteiro de migração detalhado. A nossa equipa também se concentrou em estratégias de mitigação de riscos, preparando-se para coisas como problemas de migração de dados, mantendo a empresa a funcionar sem problemas durante a transição.

Migração de monólitos para microsserviços

Após um planeamento sólido, a nossa equipa iniciou uma migração suave de um sistema monolítico para microsserviços. Dividimos os principais componentes da plataforma em microsserviços independentes, permitindo que cada um deles fosse escalado por si próprio. Esta configuração modular corrigiu os estrangulamentos de desempenho, para que os serviços pudessem lidar com as alterações da procura sem abrandar toda a plataforma.

Também configurámos bases de dados específicas dos serviços para melhorar o fluxo de dados e reduzir as dependências que estavam a causar lentidão. Com Kubernetes e Docker implementados, a nossa equipa automatizou a implementação e o dimensionamento de cada microsserviço. Desta forma, a plataforma pode lidar com picos de utilização sem qualquer esforço manual.

Orquestração e comunicação de serviços

Criámos uma camada de orquestração de microsserviços utilizando o Apache Kafka para comunicação orientada por mensagens. Isto manteve os serviços ligados de forma flexível, para que pudessem ser escalados de forma independente. Ao utilizar a comunicação assíncrona, os nossos especialistas reduziram a latência e tornaram o sistema mais reativo.

Refactoring de front-end

Enquanto actualizávamos backend, demos frontend a atenção que merecia. A nossa equipa renovou a interface do utilizador dividindo-a em componentes modulares com o Angular, acelerando o desenvolvimento e assegurando a adição de funcionalidades sem dores de cabeça. Os nossos especialistas também afinaram a ligação frontend com backend utilizando APIs CRUD personalizadas, garantindo actualizações em tempo real e uma latência mínima.

Ensaios de integração

Para manter o código legado e os novos microsserviços estáveis, reunimos um conjunto sólido de testes de integração com o JUnit. Concentrámos estes testes nas principais interações, como a sincronização de dados e a autenticação do utilizador, para evitar falhas durante a implementação de novas funcionalidades.

Ao trabalhar com o nosso ambiente de testes existente, proporcionámos testes consistentes em todos os principais casos de utilização. Cada teste examinou minuciosamente a interação entre os componentes novos e antigos, reduzindo os riscos de migração e aumentando a estabilidade da plataforma.

Tecnologias

Frontend

Angular, TypeScript

Backend

Java 11

Contentores

Docker, Docker Compose, Kubernetes

VCS

VCS: Git, BitBucket

Ensaios

JUnit

Cloud

Azure

Processo

Para este projeto, seguimos uma metodologia Scrum personalizada de acordo com as necessidades do cliente, executando sprints de duas semanas para manter o progresso no caminho certo. A nossa equipa utilizou o Jira para monitorizar todas as tarefas, proporcionando uma visibilidade total dos marcos e dos resultados do projeto. A coordenação diária através do Slack manteve a equipa ligada, permitindo-nos resolver problemas rapidamente.

Our project manager held weekly meetings with the client, sharing detailed updates on development, discussing any challenges, and gathering feedback to keep everyone in sync. This tried-and-tested approach minimized downtime and kept steady progress throughout the project.

Equipa

1

Gestor de projectos

1

Arquiteto de software

3

Programadores Java

2

Programadores Angular

2

Engenheiros DevOps

2

Engenheiros de QA

1

Analista de negócios

Expected results

Our team revamped the client’s platform, boosting operational efficiency. The system now handles more requests without slowing down. Switching to a microservices architecture helped drop response times so that healthcare providers could connect with available medical personnel faster and more reliably.

A automatização da implementação e do escalonamento reduziu o esforço manual e os custos operacionais, permitindo ao cliente lidar com picos de procura sem necessitar de pessoal adicional ou aumentar as despesas de infraestrutura.

Para além disso, testes automatizados reduced system failures and made the platform much more stable. New features could now roll out smoothly without disrupting ongoing services.

Duração do projecto
  • outubro de 2023 - maio de 2024

25%

tempos de resposta mais rápidos

30%

aumento da 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.

    seta