Hopp til hovedinnhold

DevOps og CI/CD

Bygg, tester og utrulling som går av seg selv — slik at teamet kan levere ofte, trygt og uten manuelle steg som bare én person kan.

Håndtegnet illustrasjon for DevOps og CI/CD

Verktøy og rammeverk vi bruker

  • Azure DevOps Pipelines
  • GitHub Actions
  • Docker
  • docker-compose
  • Azure Container Registry
  • Vercel
  • Fly.io
  • Caddy
  • systemd
  • Xcode- og Gradle-signering
  • TestFlight
  • Google Play
  • Firebase App Distribution
  • GitVersion
  • SonarQube
  • CodeQL og GitHub Advanced Security
  • Husky og pre-commit
  • Unleash
  • OpenTelemetry
  • Application Insights
  • Grafana
  • Microsoft Teams

DevOps som gjør leveransene kjedelige

Når en release krever en sjekkliste, en bestemt person og en rolig fredag, blir det levert sjeldnere enn det burde. Vi bygger pipelines som gjør at bygg, tester og utrulling skjer likt hver gang. Vi har jobbet med flere hundre YAML-pipelines og maler i Azure DevOps for en stor plattform, og med GitHub Actions, Vercel og Fly.io i mindre prosjekter.

Vi har også bygget en intern bot som sender varsler om pull requests, deploys og releaser til Microsoft Teams, slik at teamet ser hva som skjer uten å følge med i flere verktøy.

Valg vi tar når vi designer CI/CD-pipelines

En pipeline er kode som hele teamet er avhengig av, og den fortjener samme omtanke som applikasjonen. Dette er valgene vi oftest tar:

  • Bygg én gang, rull ut mange ganger. Det samme artefaktet eller container-imaget flyttes fra test til produksjon, i stedet for å bygges på nytt per miljø.
  • Delte maler fremfor kopiering. Felles steg for bygg, test og utrulling ligger i versjonerte maler i Azure DevOps eller gjenbrukbare workflows i GitHub Actions, slik at en forbedring havner i alle pipelines samtidig.
  • Føderert identitet i stedet for lagrede hemmeligheter. Workload identity federation med OIDC lar pipelinen logge inn i Azure uten nøkler som må roteres.
  • Rask tilbakemelding på pull requests. Linting, enhetstester og sikkerhetsskanning kjører på hver endring, mens tyngre integrasjons- og lasttester kjøres før produksjon.
  • Versjon fra Git. GitVersion utleder versjonsnummeret fra historikken, så ingen trenger å huske å oppdatere det.

Målet er at en ny tjeneste får en fungerende pipeline ved å ta i bruk eksisterende maler, ikke ved å skrive alt fra bunnen.

CI/CD for apper, tjenester og egne servere

Mobilapper har egne behov. Vi automatiserer signering i Xcode og Gradle og distribusjon til TestFlight, Google Play-spor og Firebase App Distribution, slik at testere og brukere får nye versjoner uten manuelle opplastinger.

Ikke alt trenger en stor skyplattform. For mindre tjenester drifter vi containere på en VPS med Caddy, systemd, backup og deploy-webhooks, eller på Fly.io. Vi leverer også egen åpen kildekode som Docker-image og StartOS-pakke, slik at andre kan kjøre den selv.

Typiske oppdrag

CI/CD fra bunnen av

Vi setter opp bygg, tester og utrulling i Azure DevOps eller GitHub Actions, med godkjenning før produksjon der det trengs.

Automatiserte app-releaser

Vi automatiserer signering og distribusjon for iOS og Android, med TestFlight, Google Play-spor og Firebase App Distribution.

Containere og enkel drift

Vi pakker tjenester i Docker og drifter dem i Azure, på Fly.io eller på egen VPS med Caddy, systemd, backup og deploy-webhooks.

Kvalitet og innsyn

Vi legger inn kodeanalyse, sikkerhetsskanning, feature flags og overvåking, slik at teamet ser hva som skjer og kan rulle ut gradvis.

Vanlige spørsmål

Bruker dere Azure DevOps eller GitHub Actions?

Begge. Vi har jobbet med flere hundre YAML-pipelines og maler i Azure DevOps, og bruker GitHub Actions i mange mindre prosjekter. Vi følger det teamet allerede bruker der det fungerer.

Kan dere automatisere publisering av mobilapper?

Ja. Vi setter opp signering i Xcode og Gradle, versjonering med GitVersion og automatisk distribusjon til TestFlight, Google Play og Firebase App Distribution.

Hvordan ruller dere ut endringer trygt?

Med automatiserte tester, godkjenning før produksjon, deployment slots og feature flags i Unleash, slik at nye funksjoner kan slås på gradvis og av igjen ved behov.

Trenger vi Kubernetes?

Ofte ikke. Mange løsninger klarer seg godt med Azure App Service, Container Apps, Fly.io eller en enkel VPS. Vi anbefaler det enkleste oppsettet som dekker behovet.

Hvor raskt kan dere starte?

Ta kontakt med en kort beskrivelse av behovet, så svarer vi med en vurdering av omfang og når vi kan bidra.

Trenger dere hjelp med DevOps og CI/CD?

Fortell kort om produktet, teamet eller systemet. Vi svarer med et konkret forslag til neste steg — enten det er en hel leveranse, senior kapasitet i teamet eller tekniske råd.

E-postadressen og meldingen brukes bare til å svare på henvendelsen din.

Telefon
920 50 946
Sted
Oslo, Norge