Migrazione da monolitico a microservizi: 25% risposta più rapida

Innowise ha migrato con successo la piattaforma del cliente da un'architettura monolitica a microservizi, potenziando sia il backend che il frontend per migliorare scalabilità e prestazioni.

Cliente

Industria
Assistenza sanitaria
Regione
STATI UNITI
Cliente da
2023

Il nostro cliente è un servizio di staffing sanitario di alto livello con sede negli Stati Uniti che aiuta gli operatori sanitari a gestire l'aumento del fabbisogno di personale e a semplificare il processo di assunzione. Dall'altro lato, le persone in cerca di lavoro possono scegliere posizioni che si adattano perfettamente ai loro orari e alle loro preferenze. Il nostro cliente si occupa di far incontrare le persone giuste con i lavori giusti.

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

Sfida

Tenere il passo con la domanda crescente senza spendere una fortuna.

Con la rapida espansione dell'attività, il cliente ha dovuto affrontare crescenti sfide tecniche e operative che minacciavano di rallentare i suoi progressi. Il sistema monolitico, un tempo affidabile, faticava a tenere il passo con le crescenti richieste delle strutture sanitarie e del personale medico. Di conseguenza, si sono verificati colli di bottiglia nelle prestazioni, ritardi nel lancio delle funzioni e inefficienze operative.

Il cliente aveva bisogno di una revisione del sistema per poter continuare a crescere, ma non voleva avere un esubero di personale e costi aggiuntivi. Era alla ricerca di un partner di outsourcing IT in grado di fornire una scalabilità flessibile delle risorse in base a compiti e scadenze specifiche, mantenendo i costi sotto controllo. Innowise è intervenuta con le nostre conoscenze specialistiche per rimetterli in carreggiata.

Soluzione

Passare ai microservizi per migliorare scalabilità e velocità

Innowise ha realizzato per il cliente un'architettura a microservizi scalabile, che facilita la crescita della piattaforma. Abbiamo aggiornato sia il backend che il frontend, in modo che tutto funzioni senza problemi, si distribuisca velocemente e offra agli utenti un'esperienza migliore. Inoltre, grazie ai test automatizzati e alla continuous delivery, i nostri esperti hanno mantenuto le cose affidabili e funzionanti come dovrebbero.

Analisi e pianificazione approfondite

Innowise ha iniziato con un audit approfondito del sistema monolitico del cliente, mappando i componenti e identificando i colli di bottiglia. Abbiamo lavorato a stretto contatto con i team del cliente per valutare le funzioni aziendali cruciali e assicurarci che tutte le esigenze degli stakeholder fossero coperte nella pianificazione.

Abbiamo identificato le aree che avrebbero ricevuto il maggiore impulso da questo cambiamento e abbiamo creato una roadmap di migrazione dettagliata. Il nostro team si è anche concentrato sulle strategie di mitigazione del rischio, preparandosi a risolvere problemi di migrazione dei dati e mantenendo l'attività senza intoppi durante la transizione.

Migrazione da monolitico a microservizi

Dopo una solida pianificazione, il nostro team ha avviato una migrazione senza problemi da un sistema monolitico a microservizi. Abbiamo diviso i componenti chiave della piattaforma in microservizi indipendenti, lasciando che ognuno scalasse da solo. Questa configurazione modulare ha risolto i colli di bottiglia delle prestazioni, in modo che i servizi potessero gestire le variazioni della domanda senza rallentare l'intera piattaforma.

Abbiamo anche creato database specifici per i servizi per migliorare il flusso dei dati e ridurre le dipendenze che causavano rallentamenti. Con Kubernetes e Docker, il nostro team ha automatizzato il deployment e lo scaling di ogni microservizio. In questo modo, la piattaforma può gestire i picchi di utilizzo senza alcuno sforzo manuale.

Orchestrazione e comunicazione dei servizi

Abbiamo creato un livello di orchestrazione dei microservizi utilizzando Apache Kafka per la comunicazione guidata dai messaggi. In questo modo i servizi sono rimasti collegati in modo lasco, così da poter scalare in modo indipendente. Utilizzando una comunicazione asincrona, i nostri esperti hanno ridotto la latenza e reso il sistema più reattivo.

Rifattorizzazione del frontend

Mentre aggiornavamo il backend, abbiamo dedicato al frontend l'attenzione che meritava. Il nostro team ha rinnovato l'interfaccia utente suddividendola in componenti modulari con Angular, velocizzando lo sviluppo e garantendo l'aggiunta di funzionalità senza problemi. I nostri specialisti hanno anche perfezionato la connessione del frontend con il backend utilizzando API CRUD personalizzate, garantendo aggiornamenti in tempo reale e una latenza minima.

Test di integrazione

Per mantenere stabile sia il codice legacy che i nuovi microservizi, abbiamo messo insieme un solido set di test di integrazione con JUnit. I test si sono concentrati su interazioni chiave come la sincronizzazione dei dati e l'autenticazione degli utenti, per evitare errori durante l'introduzione di nuove funzionalità.

Lavorando all'interno del nostro ambiente di test esistente, abbiamo fornito test coerenti per tutti i principali casi d'uso. Ogni test ha esaminato a fondo l'interazione tra i componenti nuovi e quelli legacy, riducendo i rischi di migrazione e aumentando la stabilità della piattaforma.

Tecnologie

Frontend

Angular, TypeScript

Backend

Java 11

Contenitori

Docker, Docker Compose, Kubernetes

VCS

VCS: Git, BitBucket</span

Test

JUnit

Cloud

Azure

Processo

Per questo progetto abbiamo seguito una metodologia Scrum personalizzata in base alle esigenze del cliente, eseguendo sprint mirati di due settimane per mantenere i progressi in linea. Il nostro team ha utilizzato Jira per monitorare ogni attività, fornendo una visibilità completa delle milestone e dei deliverable del progetto. Il coordinamento quotidiano tramite Slack ha mantenuto il team in contatto, permettendoci di affrontare rapidamente i problemi.

Il nostro project manager ha tenuto riunioni settimanali di Zoom con il cliente, condividendo aggiornamenti dettagliati sullo sviluppo, discutendo eventuali problemi e raccogliendo feedback per mantenere tutti in sintonia. Questo approccio collaudato ha permesso di ridurre al minimo i tempi di inattività e di mantenere costanti i progressi del progetto.

Team

1

Responsabile di progetto

1

Architetto software

3

Sviluppatori Java

2

Sviluppatori
Angular

2

Ingegneri DevOps

2

Ingegneri QA

1

Analista
aziendale

Risultati

30% operazioni più fluide e 25% tempi di risposta più rapidi

Il nostro team ha rinnovato la piattaforma del cliente, aumentando l'efficienza operativa di 30%. Il sistema ora gestisce un maggior numero di richieste senza rallentamenti. Passando a un'architettura a microservizi, i tempi di risposta sono diminuiti di 25%, in modo che gli operatori sanitari potessero connettersi con il personale medico disponibile in modo più rapido e affidabile.

L'automazione dell'implementazione e dello scaling ha ridotto l'impegno manuale e i costi operativi, consentendo al cliente di gestire i picchi di domanda senza dover ricorrere a personale aggiuntivo o aumentare le spese per l'infrastruttura.

Inoltre, test automatizzati ha ridotto i guasti del sistema di 35%, rendendo la piattaforma molto più stabile. Le nuove funzionalità possono ora essere introdotte senza problemi senza interrompere i servizi in corso.

Durata del progetto
  • Ottobre 2023 - Maggio 2024

25%

tempi di risposta più rapidi

30%

aumento dell'efficienza operativa

Contattateci

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

    Si prega di includere i dettagli del progetto, la durata, lo stack tecnologico, i professionisti IT necessari e altre informazioni pertinenti
    Registra un messaggio vocale sul tuo
    progetto per aiutarci a capirlo meglio
    Allega ulteriori documenti se necessario
    Caricare il file

    È possibile allegare fino a 1 file di 2 MB complessivi. File validi: pdf, jpg, jpeg, png

    Vi informiamo che quando cliccate sul pulsante Invia Innowise tratterà i vostri dati personali in conformità con la nostra Informativa sulla privacy allo scopo di fornirvi informazioni adeguate. Fornendo un numero di telefono e inviando questo modulo, acconsentite a essere contattati tramite SMS. Potrebbero essere applicate tariffe per messaggi e dati. È possibile rispondere STOP per non ricevere più messaggi. Rispondere a Help per ulteriori informazioni.

    Cosa succede dopo?

    1

    Dopo aver ricevuto ed elaborato la vostra richiesta, vi ricontatteremo a breve per illustrare le esigenze del progetto e firmare un NDA per garantire la riservatezza delle informazioni.

    2

    Dopo aver esaminato i requisiti, i nostri analisti e sviluppatori elaborano una proposta di progetto con l'ambito di lavoro, le dimensioni del team, i tempi e i costi stimati.

    3

    Organizziamo un incontro con voi per discutere l'offerta e giungere a un accordo.

    4

    Firmiamo un contratto e iniziamo a lavorare sul vostro progetto il prima possibile.

    Спасибо!

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

    Grazie!

    Il tuo messaggio è stato inviato.
    Elaboreremo la vostra richiesta e vi ricontatteremo al più presto.

    Grazie!

    Il tuo messaggio è stato inviato. 

    Elaboreremo la vostra richiesta e vi ricontatteremo al più presto.

    freccia