Alv Logo
Del

8 steg for en bedre teknisk arkitektur

Når man skal evaluere arkitekturen til en løsning er det fort å bli overveldet og ikke helt vite hvor man skal begynne eller å bruke nesten all tid på det du selv kan best. For å sikre at man får evaluert de viktigste tingene og sett løsningen fra flere sider har vi laget en sjekkliste på 8 punkter for hva du bør ta en nærmere titt på.

Overordnet arkitektur​

Som arkitekt er du ansvarlig for de «arkitekturelle karakteristikkene» som påvirker din løsning som også ofte kalles «ikke-funksjonelle krav». I min erfaring er skalerbarhet, ytelse, fleksibilitet, sikkerhet og spesielt enkapsulering av 3. part systemer de viktigste av disse karakteristikkene. Med det sagt er det viktig å påpeke at arkitekten ikke er ansvarlig for å løse og implementere alle disse selv! Da blir man en flaskehals. Jobben er å belyse og måle effekten av arkitekturmessige valg man tar, og legge til rette for disse kravene på et overordnet nivå.

Skalerbarhet/ ytelse​ går ofte ut på å vite hvor og når det kommer til å være mye last, og legge til rette for skalering på en fleksibel og kosteffektiv måte. Dette fører ofte til at man må splitte opp datalager eller API-er i mer spesialiserte enheter.

Fleksibilitet​ går på hvor lett det er å gjøre endringer eller utvidelser i arkitekturen, api-er eller data.

Sikker arkitektur handler om å bruke kjente mønster for autentisering og autorisasjon på tvers og beskyttelse av infrastrukturen gjennom brannmur, IP whitelist og V-nett. ​

Endringshåndtering i 3. part systemer​ er alltid vanskelig å koordinere siden det går på tvers av bedrifter. Det er derfor viktig å innkapsle disse avhengighetene så tidlig som mulig slik at datatyper og logikk ikke sprer seg inn i resten av systemet man bygger. 

CI/CD​

En av de andre hovedoppgavene som arkitekt er å legge til rette for at teamet kan utføre arbeidet sitt raskt og effektivt over lang tid. Dette betyr ofte at man bør automatisere så mye som mulig og gjøre det lett for alle å gjøre ting rett. Her er spesielt infrastrukturer som kode, passord og konfigstyring, ​utrulling uten nedetid​ og kontroll på miljøene blant det viktigste å se på. ​

Backup/retention​

Når uhellet først er ute så er det viktig å kunne rulle tilbake eller migrere med en tidligere versjon for å sikre seg mot tap av data og lenger nedetid på løsningen. En ting mange glemmer er at det kan være VELDIG lurt å teste dette av og til, også slik at man har erfaring med hvordan å utføre en gjenoppbygging og hvor lang retentionpolicy man trenger for å klare å få dette til i praksis.

Database – arkitektur​

Det er få ting som kan ta ned en løsning så hardt som dårlig database-arkitektur eller feil valg av lagring. Som regel vokser datastørrelse fort og det å bytte fra dokument-database til relasjonell-database, eller motsatt, kan fort være en stor investering. Det å gjøre litt analyse av hva man tror størrelsesbehovet er, hvilke type data man skal lagre og hvilke aksessmønster som skal benyttes kan være essensielt. 

Kodestruktur​

Her er det viktig å ikke dykke for dypt, men heller passe på at man har brukt riktig og standardiserte kodemønster for å dele opp og innkapsle logikk på en god måte.

Logging & monitorering​

Det er mange gode systemer der ute som gir deg generiske logger og monitorering. Dette er en veldig god start, men man har som regel behov for mer spesialisert monitorering og metrikker for å ikke bare sikre at serveren kjører, men at den også gjør jobben sin og det å avdekke tidlig at man sliter med ytelse eller at ingen av kundene faktisk får gjennomført noen handler. Det er også viktig at man har et begrep om data som ikke bør logges slik som passord og person-data.

GDPR​

GDPR er vanskelig, men også viktig! Det å tidlig kartlegge hva man har grunnlag for å lagre av data og hvor lenge, samt rutiner for sletting og innsyn er essensielt. En god start er å se om alle tjenestene kjøres innenfor EU for eksempel. Dersom du er usikker, så har mange bedrifter en ansvarlig nettopp for dette som bør rådføres.

Driftskostnader

Mye av driftskostnader er innlysende, men lisenser på data og sikring mot at automatisk skalering ikke koster uendelig med penger er ting man fort kan overse. 

Del
Les også
Les mer

Er Identity API Endpoints i .net 8 kroken på døra for tredjepartsautentisering?

.net 8 med nye Identity Endpoints oppsett. Vi har tatt en en nærmere titt på det. Er Identity API Endpoints i .net 8 kroken på døra for tredjepartsautentisering?

Er Identity API Endpoints i .net 8 kroken på døra for tredjepartsautentisering?

Systemutvikling
Lars Espen Nordhus - 3/1/2024
Les mer

6 tips for å lykkes som Techlead

Mange tenker på Techlead kun som en flink utvikler, mens Techleadene selv ofte tenker på seg selv som et teknisk orakel som bør bestemme det meste. Begge disse ytterpunktene står...

6 tips for å lykkes som Techlead

Systemutvikling
Lars Espen Nordhus - 1/3/2024
Les mer

Hvordan briljere på teknisk intervju

I denne bloggposter skriver jeg litt om hva som skiller en GOD og en OK utvikler og hvordan vi tester kandidater i Alv for å finne de riktige folkene.

Hvordan briljere på teknisk intervju

Systemutvikling
Lars Espen Nordhus - 11/12/2021