Formål
For at man kan lave gode Changes og SOP'er (Standard Operating Procedures) er det ligesom at være en kok der skal lære at lave god mad, eller måske den matra man kører indenfor militæret - gentagelse, gentagelse, igen, igen..
Målet er at ende med en god opskrift, så vi kan "lave god mad" hvergang
Lad os starte med de systemer vi normalt har at arbejde med:
System | Formål | Hvem kan deploye her | Gode/dårlige ting |
---|---|---|---|
Development | Grundudvikling, dette kan ofte være udviklerens egen maskine eller viruelle systemer | Developer | Flygtigt miljø med mange ændringer og ingen kontrol Meget flexibelt med mulighed for stor produktivitet |
Test | Test af det der er udviklet på Development | Developer | Flygtigt miljø med mulige ukendte ændringer |
Stage | Deployment af det der er udviklet på Development og teste på Test | Sysadmin (Evt. Developer) | Kendt miljø under Change kontrol. Få eller ingen ændringer |
Production | Sysadmin (Evt. Developer) | Kendt miljø under Change kontrol. Få eller ingen ændringer og skal til enhver tid matche Stage miljøet |
Der kan sagtens findes flere miljøer til f.eks
System | Formål | Hvem kan deploye her | Gode/dårlige ting |
---|---|---|---|
UAT | User Acceptance Test | Sysadmin (Evt. Developer) | Kendt miljø under Change kontrol. Få eller ingen ændringer og skal til enhver tid matche Stage miljøet |
integration | Test omkring integrationer med andre systemer, f.eks import/export/synkronisering | Sysadmin (Evt. Developer) | Kendt miljø under Change kontrol. Få eller ingen ændringer og skal til enhver tid matche Stage miljøet |
DevOps
DevOps og Continues Deployment koncepterne bryder lidt med den traditionelle Udvikler vs. Sysadmin tanke, idet at man ofte antager at Sysadmins blot kan deploye, men udviklere ikke kan arbejde (overhovedet) i Stage eller Produktionsmiljøer.
Dette er ikke nødvendigvis koliderende tankegange, men man bøe implementere lidt anderledes regler og godkendelsesprocedurer, evt implemetere dem fysisk i de ønskede miljøer, for at forhindre utilsigtet deployment fra udviklerens side.
Der er også datasikker- og datafortrolighed at tænke over, når udviklere gives nogen som helst form for adgang til Stage eller Prod, både fordi at antallet af personer med tilgang simpelthen udviddes, sekundært fordi udviklerens sysvinkelt på ting klasiske er koncentreret om andre dyder end Sysadmins.
Miljøer
Vores absolutte minimum må være:
Endnu eller endnu bedre:
Oprettelse af opskrift og gennemførsel
Ligemeget hvor mange systemer eller rettere niveauer der er i på vores platform, har vi mulighed for at forbedre vores opskrift op gennem de forskellige niveauer fra Development til Produktion: