Skrevet i samarbeid med KI - Gemini 3.7 Flash
Teknologi - FastAPI
Verktøy - TypeScript
- Gjennomførte et arkitektonisk skifte ved å oppgradere applikasjonen fra rammeverket "Flask til FastAPI.
- Erstattet den eldre standarden WSGI med den moderne ASGI, som gjør det mulig for systemet å utføre mange oppgaver samtidig.
- Installerte og konfigurerte Uvicorn, en rask motor spesielt utviklet for å drive moderne og samtidige web-applikasjoner.
- Gjennomførte en fullstendig rens av prosjektets biblioteker og avhengigheter for å sikre en lett og stabil installasjon.
- Valgte en kontrollert utrulling ved å beholde eksisterende datastrukturer midlertidig. Dette ble gjort for å verifisere at ytelsen økte som forventet før videre strukturelle endringer gjøres med Pydantic.
- Bekreftet at den nye arkitekturen fjernet tidligere kø-problematikk og økte systemets kapasitet betydelig.
Dagen er så fin den kan bli !
Utfordring & Løsninger
Da prosjektet vokste, ble det tydelig at den eksisterende arkitekturen basert på Flask ikke lenger klarte å holde tritt med kravene til effektivitet. Applikasjonen fungerte primært som et bindeledd mot eksterne tjenester som GitHub, og den tradisjonelle metoden for å håndtere data førte til at hele systemet ble stående og vente på svar. Dette skapte en kø som begrenset systemets kapasitet og resulterte i en tregere opplevelse for sluttbrukerne etter hvert som datamengden økte.
Min oppgave var å gjennomføre en teknisk modernisering ved å oppgradere til et verktøyet som støtter moderne IT standarder for håndtering av flere oppgaver samtidig. Hensikten var ikke bare å øke hastigheten på datahenting, men også å utvikle en mer pålitelig og typesikker grunnmur som ville redusere fremtidige vedlikehold og gjøre løsningen klar for å vokse.
- For å løse dette utførte jeg følgende tiltak:
- Jeg oppgraderte verktøyet, fra Flask til verktøyet FastAPI. Dette innebar et skifte fra en eldre standard WSGI til et mer moderne standard ASGI. Denne oppgraderingen gjør det mulig for å håndterer opp til flere forespørsler samtidig.
- Jeg valgte å beholde eksisterende strukturen midlertidig og utsatte bruken av verktøyet Pydantic.
- Ryddet i prosjektets biblioteker og installerte verktøyet Uvicorn som er optimalisert for den moderne standarden.
Oppgraderingen fjernet kø-problematikken helt. Resultatet er et system som kan håndtere langt flere forespørsler med de samme ressursene, noe som gir økt pålitelighet og lavere driftsrisiko. Den viktigste erfaringen var verdien av en trinnvis metodikk; ved å prioritere ytelse først, fikk jeg bekreftet at det arkitektoniske valget fungerte før koden ble videreutviklet.