Sjekkliste for produksjonsklare

Oversettelsen av artikkelen er forberedt spesielt for studentene i kurset “DevOps Practices and Tools”, som starter allerede i dag!

Sjekkliste for produksjonsklare

Har du noen gang lansert en ny tjeneste i produksjon? Eller kanskje vært involvert i driften av slike tjenester? Hvis ja, hva var din tilnærming? Hva er bra og hva er mindre bra for produksjon? Hvordan lærer du opp nye teammedlemmer om utrullinger eller drift av eksisterende tjenester?

De fleste selskaper kommer tilnærminger til drift i praksis til det som kan kalles “Det ville vesten”. Hvert team finner selv ut av verktøy og beste praksiser gjennom prøving og feiling. Men dette påvirker ofte ikke bare prosjektresultater, men også ingeniørene.

Prøving og feiling skaper et miljø der det er vanlig å finne syndebukker og overføre ansvar. Med en slik holdning blir det stadig vanskeligere å lære av feilene og unngå å gjenta dem.

Suverene organisasjoner:

  • erkjenner behovet for retningslinjer for produksjon,
  • studere beste praksiser,
  • begynne diskusjoner om beredskap for produksjon når man utvikler nye systemer eller komponenter,
  • sikrer overholdelse av retningslinjene for produksjonsforberedelse.

Forberedelse til produksjon omfatter prosessen med “gjennomgang”. Gjennomgang kan være i form av en sjekkliste eller et sett med spørsmål. Gjennomgang kan utføres manuelt, automatisk, eller med begge metoder. I stedet for statiske kravslister kan man lage sjekkliste-maler som tilpasses spesifikke behov. På denne måten kan ingeniører få en måte å overføre kunnskap og tilstrekkelig fleksibilitet når det er nødvendig.

Når bør man sjekke tjenesten for produksjonsklarhet?

Det er nyttig å sjekke beredskapen for produksjon ikke bare rett før lanseringen, men også når man overfører driften til et annet team eller en ny medarbeider.

Sjekk når:

  • Du lanserer en ny tjeneste i produksjon.
  • Du overfører driften av produksjonstjenesten til et annet team, som SRE.
  • Du overfører driften av produksjonstjenesten til nye medarbeidere.
  • Du organiserer teknisk støtte.

Sjekkliste for beredskap for produksjon

For en tid siden, som et eksempel, laget jeg har publisert en sjekkliste for beredskap for produksjon. Selv om denne listen ble laget med kunder hos Google Cloud, vil den være nyttig og anvendelig utenfor Google Cloud.

Design og utvikling

  • Utvikle en reproducerbar byggeprosess som ikke krever tilgang til eksterne tjenester og ikke er avhengig av feil i eksterne systemer.
  • I design- og utviklingsfasen, identifiser og sett SLO for tjenestene dine.
  • Dokumenter forventningene til tilgjengeligheten av eksterne tjenester som du er avhengig av.
  • Unngå en eneste feilpunkt ved å fjerne avhengigheter fra en global ressurs. Repliker ressursen eller bruk et alternativ når ressursen er utilgjengelig (for eksempel en hardkodet verdi).

Konfigurasjonsstyring

  • Statisk, liten og ikke-konfidensiell konfigurasjon kan overføres via kommandolinjeargumenter. For alt annet, bruk lagrings tjenester for konfigurasjon.
  • Dynamisk konfigurasjon bør ha fallback-innstillinger i tilfelle konfigurasjonstjenesten er utilgjengelig.
  • Utviklingsmiljøkonfigurasjonen bør ikke være knyttet til produksjonskonfigurasjonen. Ellers kan dette føre til at utviklingsmiljøet får tilgang til produksjonstjenester, noe som kan forårsake personvernsproblemer og datalekkasjer.
  • Dokumenter hva som kan konfigureres dynamisk, og beskriv fallback-adferden hvis konfigurasjonsleveringssystemet blir utilgjengelig.

Utgivelsesadministrasjon

  • Dokumenter utgivelsesprosessen grundig. Beskriv hvordan utgivelser påvirker SLO (for eksempel midlertidig økning av forsinkelser på grunn av cache-feil).
  • Dokumenter kanarireleases.
  • Utvikle en plan for å analysere kanarireleases og, når det er mulig, mekanismer for automatisk tilbakestilling.
  • Sørg for at tilbaketrekkinger kan bruke de samme prosessene som distribusjon.

Sporbarhet (Observability)

  • Sørg for at et sett med metrikker som er nødvendige for SLO samles inn.
  • Sørg for at klient- og serverdata kan skilles fra hverandre. Dette er viktig for å finne årsakene til feil.
  • Sett opp varsler for å redusere arbeidsmengden. For eksempel, fjern varsler for rutinemessige operasjoner.
  • Hvis du bruker Stackdriver, så aktiver GCP-plattformmetrikker i dashbordene dine. Sett opp varsler for GCP-avhengigheter.
  • Alltid spre innkommende sporing. Selv om du ikke deltar i sporing, vil dette hjelpe lavere nivå tjenester med å feilsøke problemer i produksjon.

Beskyttelse og sikkerhet

  • Sørg for at alle eksterne forbindelser er kryptert.
  • Sikre at produksjonsprosjektene dine har riktig IAM-oppsett.
  • Bruk nettverk for å isolere grupper av virtuelle maskinforekomster.
  • Bruk VPN for sikker tilkobling til fjerntilkoblinger.
  • Dokumenter og overvåk brukerens tilgang til data. Sørg for at all brukerdata tilgang blir verifisert og logget.
  • Sikre at endepunktene for feilsøking er begrenset av ACL.
  • Sanitæriser brukerinnspill. Sett opp belastningsstørrelsesbegrensninger for brukerinnspill.
  • Sikre at tjenesten din kan selektivt blokkere innkommende trafikk for enkelt brukere. Dette vil tillate blokkering av brudd uten å påvirke andre brukere.
  • Unngå eksterne endepunkter som initierer et stort antall interne operasjoner.

Kapacitet planlegging

  • Dokumenter hvordan tjenesten din skaleres. For eksempel: antall brukere, størrelse på innkommende belastning, antall innkommende meldinger.
  • Dokumenter ressurskravene for tjenesten din. For eksempel: antall tildelte virtuelle maskinforekomster, antall Spanner-forekomster, spesialisert utstyr som GPU eller TPU.
  • Dokumenter ressursbegrensningene: ressurs type, region osv.
  • Dokumenter kvotabegrensningene for å opprette nye ressurser. For eksempel, antallet GCE API-forespørsel begrensninger hvis du bruker API for å opprette nye instanser.
  • Vurder å utføre stresstester for å analysere ytelsestap.

Det var alt. Vi sees i timene!

Kilde: habr.com

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster