Sjekkliste for produksjonsberedskap

Oversettelsen av artikkelen ble utarbeidet spesielt for studentene på kurset "DevOps-praksis og verktøy", som starter i dag!

Sjekkliste for produksjonsberedskap

Har du noen gang lansert en ny tjeneste i produksjon? Eller kanskje du var med på å støtte slike tjenester? Hvis ja, hva motiverte deg? Hva er bra for produksjonen og hva er dårlig? Hvordan trener du nye teammedlemmer på utgivelser eller vedlikehold av eksisterende tjenester.

De fleste selskaper ender opp med å ta i bruk «Wild West»-tilnærminger når det gjelder industriell driftspraksis. Hvert team bestemmer seg for sine egne verktøy og beste praksis gjennom prøving og feiling. Men dette påvirker ofte ikke bare suksessen til prosjekter, men også ingeniørene.

Prøving og feiling skaper et miljø der fingerpeking og skyldskifte er vanlig. Med denne oppførselen blir det stadig vanskeligere å lære av feil og ikke gjenta dem igjen.

Vellykkede organisasjoner:

  • innse behovet for retningslinjer for produksjon,
  • studere beste praksis,
  • starte diskusjoner om produksjonsberedskapsproblemer når du utvikler nye systemer eller komponenter,
  • sikre overholdelse av reglene for forberedelse til produksjon.

Forberedelse til produksjon inkluderer en "revisjonsprosess". Gjennomgangen kan være i form av en sjekkliste eller et sett med spørsmål. Vurderinger kan gjøres manuelt, automatisk eller begge deler. I stedet for statiske kravlister kan du lage sjekklistemaler som kan tilpasses spesifikke behov. På denne måten kan ingeniører gis en måte å arve kunnskap og nok fleksibilitet når det er nødvendig.

Når kontrollere en tjeneste for produksjonsberedskap?

Det er nyttig å gjennomføre en produksjonsberedskapskontroll ikke bare umiddelbart før utgivelsen, men også når den overføres til et annet driftsteam eller en ny ansatt.

Sjekk når:

  • Du slipper en ny tjeneste i produksjon.
  • Du overfører driften av produksjonstjenesten til et annet team, for eksempel SRE.
  • Du overfører driften av produksjonstjenesten til nye ansatte.
  • Organiser teknisk støtte.

Sjekkliste for produksjonsberedskap

For en tid siden, som et eksempel, jeg опубликовала sjekkliste for testing av beredskap for produksjon. Selv om denne listen stammer fra Google Cloud-kunder, vil den være nyttig og anvendelig utenfor Google Cloud.

Design og utvikling

  • Utvikle en repeterbar byggeprosess som ikke krever tilgang til eksterne tjenester og ikke er avhengig av svikt i eksterne systemer.
  • I løpet av design- og utviklingsperioden, definer og angi SLO-er for tjenestene dine.
  • Dokumenter forventninger til tilgjengeligheten av eksterne tjenester du er avhengig av.
  • Unngå et enkelt feilpunkt ved å fjerne avhengigheter til en enkelt global ressurs. Repliker ressursen eller bruk en reserve når ressursen er utilgjengelig (for eksempel en hardkodet verdi).

Konfigurasjonsstyring

  • Statisk, liten og ikke-hemmelig konfigurasjon kan sendes via kommandolinjeparametere. For alt annet, bruk konfigurasjonslagringstjenester.
  • En dynamisk konfigurasjon må ha reserveinnstillinger i tilfelle konfigurasjonstjenesten ikke er tilgjengelig.
  • Utviklingsmiljøkonfigurasjonen skal ikke være relatert til produksjonskonfigurasjonen. Ellers kan dette føre til tilgang fra utviklingsmiljøet til produksjonstjenester, noe som kan forårsake personvernproblemer og datalekkasje.
  • Dokumenter hva som kan konfigureres dynamisk og beskriv reserveatferd hvis konfigurasjonsleveringssystemet ikke er tilgjengelig.

Utgivelseshåndtering

  • Dokumenter utgivelsesprosessen i detalj. Beskriv hvordan utgivelser påvirker SLO-er (for eksempel midlertidige økninger i ventetid på grunn av cache-feil).
  • Dokumenter utgivelser av kanarifugler.
  • Utvikle en gjennomgangsplan for utgivelse av kanarifugler og, hvis mulig, automatiske tilbakerullingsmekanismer.
  • Sørg for at tilbakeføringer kan bruke de samme prosessene som distribusjoner.

Observerbarhet

  • Sørg for at settet med beregninger som kreves for SLO er samlet.
  • Sørg for at du kan skille mellom klient- og serverdata. Dette er viktig for å finne årsakene til funksjonsfeil.
  • Sett opp varsler for å redusere arbeidskostnadene. Fjern for eksempel varsler forårsaket av rutineoperasjoner.
  • Hvis du bruker Stackdriver, må du inkludere GCP-plattformberegninger i dashbordene dine. Sett opp varsler for GCP-avhengigheter.
  • Spred alltid innkommende spor. Selv om du ikke er involvert i sporing, vil dette tillate tjenester på lavere nivå for å feilsøke problemer i produksjonen.

Beskyttelse og sikkerhet

  • Sørg for at alle eksterne tilkoblinger er kryptert.
  • Sørg for at produksjonsprosjektene dine har riktig IAM-oppsett.
  • Bruk nettverk til å isolere grupper av virtuelle maskinforekomster.
  • Bruk en VPN for sikker tilkobling til eksterne nettverk.
  • Dokumentere og overvåke brukertilgang til data. Sørg for at all brukertilgang til data er revidert og loggført.
  • Sørg for at endepunkter for feilsøking er begrenset av tilgangskontrollister.
  • Rengjør brukerinnspill. Konfigurer nyttelaststørrelsesgrenser for brukerinndata.
  • Sørg for at tjenesten selektivt kan blokkere innkommende trafikk for individuelle brukere. Dette vil blokkere brudd uten å påvirke andre brukere.
  • Unngå eksterne endepunkter som setter i gang mange interne operasjoner.

Kapasitetsplanlegging

  • Dokumenter hvordan tjenesten din skalerer. For eksempel: antall brukere, størrelse på innkommende nyttelast, antall innkommende meldinger.
  • Dokumenter ressurskravene for tjenesten din. For eksempel: antall dedikerte virtuelle maskinforekomster, antall Spanner-forekomster, spesialisert maskinvare som GPU eller TPU.
  • Dokumentressursbegrensninger: ressurstype, region osv.
  • Dokumenter kvotebegrensninger for å opprette nye ressurser. For eksempel begrense antall GCE API-forespørsler hvis du bruker API til å opprette nye forekomster.
  • Vurder å kjøre belastningstester for å analysere ytelsesdegradering.

Det er alt. Ser deg i timen!

Kilde: www.habr.com

Legg til en kommentar