Azure-moln och DevOps
Infrastruktur som kod, pipelines som driftsätter flera gånger om dagen, en säkerhetsbaslinje som nekar som standard och en räkning som förblir förutsägbar. Så bygger vi en molnmiljö, och så driver vi vår egen.
Själva DevOps-arbetet
- Pipelines. Bygge, test, säkerhetsskanning och driftsättning i GitHub Actions, med federerade inloggningsuppgifter i stället för lagrade hemligheter och varje action låst med hash.
- Infrastruktur som kod. Terraform för allt, granskat som en plan innan det tillämpas, med schemalagd detektering av konfigurationsdrift som rapporterar vad någon ändrat för hand.
- Databasleverans. Schemaändringar som versionerade migreringar som körs i pipelinen, så att en driftsättning som levererar kod utan sitt schema inte kan inträffa.
- Övervakning och larm. Loggar, mätvärden och traces i en gemensam workspace, med larm som når en person först när en utvecklare kan agera på dem.
- Kostnadskontroll. Rätt dimensionerade nivåer, förbrukningsbaserad prissättning där lasten är ojämn och en månadsräkning som någon faktiskt läser.
Vad vi bygger med
Varje resurs deklareras i Terraform och driftsätts från GitHub Actions med federerade inloggningsuppgifter. Ingenting klickas ihop i en portal, varken i våra miljöer eller i era.
Beräkning
Azure Functions på .NET 10 isolated worker för API:et och 40 schemalagda jobb; Container Apps Jobs kör databasdriftsättningar och EF Core-migreringar.
Data
Azure SQL med row-level security och Always Encrypted-kolumner under kundhanterade nycklar i Key Vault; Blob Storage för dokument och signerade PDF:er.
Frontends
Två Static Web Apps, portalen och den här webbplatsen, båda serverade med en strikt Content Security Policy och förrenderade där sökrobotar behöver HTML.
Identitet
Entra ID för personer och grupper, användartilldelade managed identities för varje arbetsbelastning, OIDC från GitHub Actions. Inga långlivade inloggningsuppgifter i pipelinen.
Observerbarhet
Application Insights och Log Analytics med larmregler som når teamet som Teams-meddelanden. Bara signaler som en utvecklare kan agera på blir larm.
Styrning
Policyer på resursgruppsnivå, hanteringslås, skydd mot rensning (purge protection) och diagnostikinställningar, allt deklarerat i Terraform med skälet bredvid varje regel.
Kostnadsdisciplin
Våra utvecklingsprinciper rangordnar prioriteringarna i en fast ordning: kostnad först, sedan säkerhet, sedan modernitet, sedan prestanda. Ett kostnadstak sätts innan arkitekturen ritas, och varje designbeslut prövas mot det. I praktiken innebär det förbrukningsbaserad prissättning i stället för servrar som alltid är igång där lasten är ojämn, en rätt dimensionerad databasnivå i stället för den leverantören rekommenderar och larm byggda av tjänster som redan finns i prenumerationen i stället för en betald jourprodukt.
Säkerhetsbaslinje
- Brandväggar nekar som standard; SQL kan nås endast från Functions-subnätet.
- Hemligheter finns bara i Key Vault och läses via managed identities.
- Personliga och finansiella kolumner är Always Encrypted, så att inte ens en databasadministratör kan läsa dem.
- Actions och containerbilder är låsta med hash; beroendeuppdateringar kommer som granskade pull requests och en säkerhetsvarning är en ovillkorlig uppgradering.
- CodeQL körs vid varje push, Terraform-planer valideras före tillämpning och drift upptäcks enligt schema.
Vår molnerfarenhet
Mer än 20 CI/CD-pipelines byggda, tvåveckorsreleaser omvandlade till dagliga driftsättningar, releasetiden nedkortad från fyra timmar till 25 minuter, Azure-kostnaden sänkt med 30 procent på en plattform. Siffror från vår leveranshistorik.
Vi rekryterar för det, vi improviserar inte
DevOps är en roll vi rekryterar för med avsikt: vår tjänstehistorik inkluderar en DevOps-ingenjör och en dedikerad teknisk DevOps-intervjuare, så kandidaterna bedöms av någon som gör arbetet snarare än av en generalist som läser en checklista.
Vill ni ha er Azure-miljö som kod, med en mindre räkning?
Skicka läsåtkomst till er prenumeration eller en beskrivning av vad som körs var. Ni får en skriftlig bedömning och en plan inom en arbetsdag.