Migração de monolítico para microsserviços: resposta 25% mais rápida

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

Cliente

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

O nosso cliente é um serviço de recrutamento de pessoal de cuidados de saúde de topo, sediado nos EUA, que ajuda os prestadores de cuidados de saúde a lidar com as crescentes necessidades de pessoal e a simplificar o processo de contratação. Por outro lado, os candidatos a emprego podem escolher posições que se adaptam perfeitamente aos seus horários e preferências. O nosso cliente tem como objetivo fazer corresponder as pessoas certas aos empregos certos.

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 TI 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 a 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

A Innowise construiu uma arquitetura de microserviços escalável para o cliente, facilitando o crescimento da sua plataforma. Actualizámos tanto o backend como o 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

A 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 o Kubernetes e o 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 o backend, demos ao 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 do frontend com o 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</span

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.

O nosso gestor de projeto realizou reuniões semanais no Zoom com o cliente, partilhando actualizações detalhadas sobre o desenvolvimento, discutindo quaisquer desafios e recolhendo feedback para manter todos em sincronia. Esta abordagem testada e comprovada minimizou o tempo de inatividade e manteve um progresso constante ao longo do projeto.

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

Resultados

30% operações mais suaves e 25% tempos de resposta mais rápidos

A nossa equipa renovou a plataforma do cliente, aumentando a eficiência operacional em 30%. O sistema trata agora de mais pedidos sem abrandar. Ao mudar para uma arquitetura de microsserviços, os tempos de resposta diminuíram em 25% para que os prestadores de cuidados de saúde pudessem estabelecer uma ligação com o pessoal médico disponível de forma mais rápida e fiável.

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 reduziu as falhas do sistema em 35%, tornando a plataforma muito mais estável. As novas funcionalidades podem agora ser implementadas sem problemas, sem perturbar os serviços em curso.

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.

    Inclua os detalhes do projeto, a duração, o conjunto de tecnologias, os profissionais de TI necessários e outras informações relevantes
    Gravar uma mensagem de voz sobre o seu
    projeto para nos ajudar a compreendê-lo melhor
    Anexar documentos adicionais, se necessário
    Enviar ficheiro

    Pode anexar até 1 ficheiro de 2MB no total. Ficheiros válidos: pdf, jpg, jpeg, png

    Informamos que, ao clicar no botão Enviar, o Grupo Innowise processará os seus dados pessoais de acordo com os nossos Política de privacidade com o objetivo de lhe fornecer informações adequadas. Ao fornecer um número de telefone e enviar este formulário, está a consentir ser contactado por mensagem de texto SMS. Podem ser aplicadas taxas de mensagens e dados. Pode responder STOP para optar por não receber mais mensagens. Responder Ajuda para obter mais informações.

    O que é que acontece a seguir?

    1

    Após termos recebido e processado o seu pedido, entraremos em contacto consigo para detalhar as necessidades do seu projecto e assinar um NDA para garantir a confidencialidade das informações.

    2

    Após a análise dos requisitos, os nossos analistas e programadores elaboram uma proposta de projecto com o âmbito dos trabalhos, tamanho da equipa, tempo e custos e custos.

    3

    Marcamos uma reunião consigo para discutir a oferta e chegar a um acordo.

    4

    Assinamos um contrato e começamos a trabalhar no seu projecto o mais rapidamente possível.

    Спасибо!

    Cообщение отправлено.
    Мы обработаем ваш запрос и свяжемся с вами в кратчайшие сроки.

    Obrigado!

    A sua mensagem foi enviada.
    Processaremos o seu pedido e contactá-lo-emos o mais rapidamente possível.

    Obrigado!

    A sua mensagem foi enviada. 

    Processaremos o seu pedido e contactá-lo-emos logo que possível.

    seta