En app for overvåking av strålingseksponering

Innowise har oppgradert en app for overvåking av strålingseksponering, forbedret responstiden og lagt grunnlaget for en oppskalering av programvarefunksjonaliteten.

Utfordring

Kundens applikasjon for overvåking av strålingseksponering har vært på markedet i over 10 år, men kodebasen hadde ikke gjennomgått noen vesentlige oppdateringer eller omskrivninger i løpet av denne tiden. Etter hvert som kundens virksomhet vokste, økte også behovet for en mer robust og skalerbar løsning.

De ønsket å modernisere programvaren, fikse feil og løse flere systemiske problemer som hadde påvirket ytelsen og den generelle brukervennligheten:

  • Utilstrekkelig ytelse. Applikasjonen ble betydelig tregere når flere sluttkunder sendte inn forespørsler samtidig, noe som noen ganger resulterte i lange ventetider og frustrerte brukere. Ettersom kunden hadde planer om å utvide virksomheten og forventet at brukerbasen ville vokse, var det tydelig ut fra ytelsesmålingene at appen ikke kunne håndtere den økte belastningen.
  • Begrensede muligheter. I løpet av årene i bransjen innså kunden at appen manglet flere viktige funksjoner som var nødvendige for å møte kundenes krav på en bedre måte. De ønsket å utvide løsningen for overvåking av strålingseksponering med ny, avansert funksjonalitet.
  • Dårlig applikasjonsarkitektur. Den opprinnelige arkitekturen var ikke utformet med tanke på skalerbarhet, og kunden var derfor bekymret for at den ikke ville kunne håndtere ytterligere vekst.
  • Fragmentert dokumentasjon. Mye av dokumentasjonen til appen var enten utdatert eller ufullstendig. For å effektivisere oppgraderinger av appen og introduksjonen av nye brukere, måtte kunden gjenspeile alle aspekter ved den eksisterende løsningen i en grundig prosjektdokumentasjon.
På den tiden ble appen for overvåking av strålingseksponering vedlikeholdt av et outsourcet team som ikke kunne løse disse problemene raskt nok. Kunden var derfor på utkikk etter en erfaren helsearbeider partner for programvareutvikling til å overta moderniseringen av applikasjonen for overvåking av strålingseksponering.

Løsning

Innowises team startet prosjektet med en grundig gjennomgang av appen for overvåking av strålingseksponering for å forstå de grunnleggende årsakene til problemene som påvirket systemet. Her er hva vi fant:

  • Utdatert teknologi. Appen brukte eldre versjoner av programmeringsspråk, blant annet Node.js og Angular.js, samt ulike språkversjoner i hele appen.
  • Ineffektive SQL-spørringer. Det fantes en rekke anti-mønstre i måten SQL-spørringer ble skrevet på, noe som bidro til dårlig applikasjonsytelse.
  • Problemer med versjonskontroll. Programmet led under ineffektiv versjonskontroll av programvare, med utdaterte filer, tredjeparts plugins og kjørbare filer lagret under kildekontroll.
  • Uorganiserte repositorier. Strukturen i repositoriene og prosjektene var ikke intuitiv, noe som gjorde det vanskelig å navigere i og administrere kodebasen.
  • Manuell distribusjon. Applikasjonen ble distribuert manuelt, uten en CI/CD-pipeline, noe som økte forretningsrisikoen og førte til potensielle menneskelige feil.
  • Ingen mekanismer for sikkerhetskopiering eller gjenoppretting. Det fantes ingen mekanismer for å ta sikkerhetskopi av applikasjonsdataene eller gjenopprette appen hvis noe gikk galt.

Basert på revisjonsresultatene utarbeidet Innowises prosjektteam et klart og tydelig veikart over forbedringene som var avgjørende for stabiliteten, ytelsen og skalerbarheten til appen for overvåking av strålingseksponering. Etter at kunden hadde gitt grønt lys for planen vår, gikk vi i gang med stadige forbedringer. 

Kunden ønsket at utviklingen av appen skulle skje så smidig som mulig, så vi gjorde endringene usynlige for sluttbrukerne og sørget for at det ikke oppstod noen driftsforstyrrelser. Deretter introduserte Innowises team følgende endringer i applikasjonen for overvåking av strålingseksponering.

Søknad om containerisering

For å øke ytelsen og støtte fremtidige skaleringsbehov delte vi applikasjonen inn i flere nøkkelkomponenter: frontend, backend, rapporteringsmoduler, loggings- og overvåkingsmodul og database. Deretter containeriserte teamet vårt hver komponent og migrerte dem til separate virtuelle maskiner. Disse endringene støttet den økende arbeidsmengden som kunden forventet.

Modernisering av teknologistakken

Vi oppgraderte appens tekniske stakk ved å oppdatere utdaterte rammeverk og verktøy, løse feil og sørge for at systemet kunne støtte fremtidige forbedringer. Dette ga applikasjonen et sårt tiltrengt løft når det gjelder ytelse og vedlikeholdbarhet.

Refaktorisering av databaser

Innowises team refaktoriserte databasen til appen for overvåking av strålingseksponering ved å forbedre databasespørringer, legge til indekser og innføre fremmednøkler. Vår omfattende tilnærming økte databasens ytelse etter refaktoriseringen.

Implementering av CI/CD-pipeline

Vi innførte en kontinuerlig integrasjon og distribusjon (CI/CD) for å erstatte den manuelle distribusjonsprosessen. Med denne nye tilnærmingen automatiserte teamet vårt distribusjonsprosessen, noe som sikrer raskere og mer pålitelige oppdateringer. Vi implementerte også systemlogging og -overvåking ved hjelp av Prometheus og Grafana for å spore og visualisere systemytelse og problemer i sanntid.

Sikkerhetskopiering og katastrofegjenoppretting

Innowise-teamet brukte Infrastructure as Code (IaC) for katastrofegjenoppretting, noe som betyr at hele appen nå kan distribueres på nytt til et nytt miljø i løpet av få minutter. Vi har også satt opp robuste prosedyrer for sikkerhetskopiering for å sikre at dataene er trygge og kan gjenopprettes raskt ved behov.

Søknadsdokumentasjon

Parallelt med refaktoriseringen jobbet Innowise-teamet grundig med å lage dokumentasjon for appen for overvåking av strålingseksponering, inkludert alle endringene i arkitekturen og systemet.

Kommende utvikling og redesign av brukergrensesnittet

Etter at vi hadde lagt grunnlaget for utviklingen av en app for overvåking av strålingseksponering, skulle vi gå videre til utvikling av funksjoner og redesign av brukergrensesnittet. Her er de fremtidige forbedringene teamet vårt allerede har planlagt:
  • Forbedringer i rapporteringen. Vi vil forbedre rapporteringsfunksjonene, legge til nye typer medisinske undersøkelser og introdusere flere rapportformater.
  • Redesign av brukergrensesnittet. Vi vil redesigne brukergrensesnittet å være mer intuitiv og tilpasse seg ulike enheter og skjermstørrelser, noe som gir en bedre sluttbrukeropplevelse
  • Ytterligere forbedringer av arkitekturen. Basert på dataene og ytelsesmålingene vil Innowise fortsette å forbedre appens arkitektur for å sikre at den kan skaleres effektivt.

Teknologier

Frontend

Angular

Backend

Node.js, WinDev

Cloud

OVHcloud

Database

MySQL

DevOps

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

Prosess

Siden kunden ønsket fleksibilitet i prosjektets omfang, ble vi enige om en Time & Material-prismodell, noe som betyr at vi estimerte prosjekttimene på forhånd, men kun belastet kunden for de faktiske timene som ble brukt. Når kunden hadde behov for å utvide prosjektomfanget, leverte prosjektlederen vår tilleggsberegninger, slik at kunden enkelt kunne følge med på utgiftene og fremdriften i prosjektet.

Vi brukte en iterativ prosjektstyringsmetode, delte prosjektet inn i sprinter og definerte klare milepæler for hver fase. Hver uke holdt prosjektteamet vårt møter med kundens interessenter for å dele fremdrift og resultater, noe som bidro til å skape et mer samkjørt team.

Team kreves

1

Prosjekt-leder

1

Leveringssjef

1

Business Analyst

1

Løsningsarkitekt

1

Back-End-utvikler

1

Front-End-utvikler

1

DevOps-ingeniør

1

Kvalitets- sikringsingeniør

1

Ingeniør innen penetrasjonstesting

Resultater

Nå har kunden en mye mer robust, skalerbar og vedlikeholdsvennlig applikasjon for overvåking av strålingseksponering. Vi har fornyet programvareinfrastrukturen, løst ytelsesproblemer og sørget for at arkitekturen kan håndtere fremtidig vekst. Innowise-teamet har også lagt et klart veikart for kommende utvikling av funksjoner og systemforbedringer, noe som vil bidra til å forbedre brukeropplevelsen og driftseffektiviteten ytterligere.

    Kontakt oss

    Bestill en samtale eller fyll ut skjemaet nedenfor, så kontakter vi deg når vi har behandlet forespørselen din.

    Send oss en talemelding
    Legg ved dokumenter
    Last opp fil

    Du kan legge ved én fil på opptil 2 MB. Gyldige filformater: pdf, jpg, jpeg, png.

    Ved å klikke på Send, samtykker du til at Innowise behandler dine personopplysninger i henhold til våre Retningslinjer for personvern for å gi deg relevant informasjon. Ved å oppgi telefonnummeret ditt samtykker du i at vi kan kontakte deg via taleanrop, SMS og meldingsapper. Priser for samtaler, meldinger og data kan gjelde.

    Du kan også sende oss en forespørsel

    .til contact@innowise.com
    Hva skjer videre?
    1

    Når vi har mottatt og behandlet forespørselen din, tar vi kontakt med deg for å beskrive prosjektbehov og signerer en taushetserklæring for å sikre konfidensialitet.

    2

    Etter å ha undersøkt dine ønsker, behov og forventninger, utarbeider teamet vårt et prosjektforslag forslag med arbeidsomfang, teamstørrelse, tids- og kostnadsestimater.

    3

    Vi avtaler et møte med deg for å diskutere tilbudet og spikre detaljene.

    4

    Til slutt signerer vi en kontrakt og begynner å jobbe med prosjektet ditt med en gang.

    pil