Start med en kendt leverance
En deployment bør bygge på en bestemt version af koden og en dokumenteret konfiguration. Hvis løsningen kun kan sættes i drift gennem en række manuelle trin, som én person kan huske, er den svær at genskabe og risikabel at opdatere.
Hold kode og konfiguration adskilt
Domæner, adgangsnøgler, databaseforbindelser og miljøspecifikke valg hører ikke hjemme direkte i kildekoden. Miljøvariabler eller særskilte konfigurationsfiler gør det muligt at bruge samme kode i flere miljøer uden at dele hemmeligheder.
En konfigurationsfil er ikke automatisk sikker. Adgang, backup og logning skal stadig afgrænses, og hemmeligheder bør aldrig ende i et offentligt repository.
Reverse proxy og TLS
En reverse proxy som nginx kan modtage trafikken, håndtere HTTPS og sende forespørgsler videre til applikationen. Det samler certifikater, domæner og standardheaders ét sted og gør applikationen mindre afhængig af serveropsætningen.
Backup skal kunne gendannes
En backup, der aldrig er prøvet, er kun en antagelse. Det skal være klart, hvilke data der er vigtige, hvor ofte de ændrer sig, hvor kopien ligger, og hvordan en gendannelse udføres. Statiske sider kræver typisk mindre end en app med database og brugerdata.
Logs skal besvare konkrete spørgsmål
Ved en fejl skal man kunne se, hvornår den opstod, hvilken del af systemet der fejlede, og om problemet rammer én forespørgsel eller hele løsningen. Logs må samtidig ikke samle følsomme data uden grund.
Opdateringer skal være kedelige
En god opdateringsvej er forudsigelig: byg, kontroller, udrul, verificer og rul tilbage, hvis den nye version ikke virker. Jo mere processen kan gentages, desto mindre afhænger resultatet af held.
Dokumentér ejerskabet
Domæne, hosting, DNS, mail, certifikater, repository og eksterne tjenester kan ligge forskellige steder. En kort oversigt over ejer, adgang og fornyelse forebygger mange driftsproblemer senere.