Tjekliste for produktionsberedskab

Oversættelsen af ​​artiklen er udarbejdet specifikt til kursets studerende "DevOps-praksis og værktøjer", som starter i dag!

Tjekliste for produktionsberedskab

Har du nogensinde udgivet en ny tjeneste i produktion? Eller var du måske involveret i at støtte sådanne tjenester? Hvis ja, hvad motiverede dig? Hvad er godt for produktionen, og hvad er dårligt? Hvordan træner du nye teammedlemmer i udgivelser eller vedligeholdelse af eksisterende tjenester.

De fleste virksomheder ender med at anvende "Wild West"-tilgange, når det kommer til industriel driftspraksis. Hvert team beslutter deres egne værktøjer og bedste praksis gennem forsøg og fejl. Men dette påvirker ofte ikke kun projekternes succes, men også ingeniørerne.

Trial and error skaber et miljø, hvor fingerpegning og skyldskifte er almindelige. Med denne adfærd bliver det stadig sværere at lære af fejl og ikke gentage dem igen.

Succesfulde organisationer:

  • indse behovet for retningslinjer for produktion,
  • studere bedste praksis,
  • begynde diskussioner om produktionsklarhedsproblemer, når der udvikles nye systemer eller komponenter,
  • sikre overholdelse af reglerne for forberedelse til produktion.

Forberedelse til produktion omfatter en "review"-proces. Gennemgangen kan være i form af en tjekliste eller et sæt spørgsmål. Anmeldelser kan udføres manuelt, automatisk eller begge dele. I stedet for statiske kravlister kan du lave tjeklisteskabeloner, der kan tilpasses specifikke behov. På denne måde kan ingeniører få en måde at arve viden og tilstrækkelig fleksibilitet, når det kræves.

Hvornår skal en service kontrolleres for klarhed til produktion?

Det er nyttigt at udføre en produktionsberedskabskontrol ikke kun umiddelbart før frigivelsen, men også når den overføres til et andet driftsteam eller en ny medarbejder.

Tjek hvornår:

  • Du frigiver en ny tjeneste i produktion.
  • Du overfører driften af ​​produktionstjenesten til et andet team, såsom SRE.
  • Du overdrager driften af ​​produktionsydelsen til nye medarbejdere.
  • Organiser teknisk support.

Tjekliste for produktionsberedskab

For noget tid siden, som et eksempel, jeg опубликовала tjekliste til test af klarhed til produktion. Selvom denne liste stammer fra Google Cloud-kunder, vil den være nyttig og anvendelig uden for Google Cloud.

Design og udvikling

  • Udvikl en gentagelig byggeproces, der ikke kræver adgang til eksterne tjenester og ikke er afhængig af fejl i eksterne systemer.
  • I løbet af design- og udviklingsperioden skal du definere og indstille SLO'er for dine tjenester.
  • Dokumenter forventninger til tilgængeligheden af ​​eksterne tjenester, som du er afhængig af.
  • Undgå et enkelt fejlpunkt ved at fjerne afhængigheder af en enkelt global ressource. Repliker ressourcen, eller brug en reserve, når ressourcen ikke er tilgængelig (f.eks. en hårdkodet værdi).

Konfigurationsstyring

  • Statisk, lille og ikke-hemmelig konfiguration kan overføres via kommandolinjeparametre. Til alt andet skal du bruge konfigurationslagringstjenester.
  • En dynamisk konfiguration skal have reserveindstillinger i tilfælde af, at konfigurationstjenesten ikke er tilgængelig.
  • Udviklingsmiljøets konfiguration bør ikke være relateret til produktionskonfigurationen. Ellers kan dette føre til adgang fra udviklingsmiljøet til produktionstjenester, hvilket kan forårsage privatlivsproblemer og datalækage.
  • Dokumentér, hvad der kan konfigureres dynamisk, og beskriv fallback-adfærd, hvis konfigurationsleveringssystemet ikke er tilgængeligt.

Udgivelsesstyring

  • Dokumentér udgivelsesprocessen i detaljer. Beskriv, hvordan udgivelser påvirker SLO'er (f.eks. midlertidige stigninger i latenstid på grund af cache-misser).
  • Dokumenter udgivelser af kanariefugle.
  • Udvikl en gennemgangsplan for kanarie-udgivelse og, hvis det er muligt, automatiske tilbagerulningsmekanismer.
  • Sørg for, at rollbacks kan bruge de samme processer som implementeringer.

Observerbarhed

  • Sørg for, at det sæt af metrics, der kræves for SLO'en, er indsamlet.
  • Sørg for, at du kan skelne mellem klient- og serverdata. Dette er vigtigt for at finde årsagerne til funktionsfejl.
  • Opsæt advarsler for at reducere lønomkostningerne. Fjern f.eks. advarsler forårsaget af rutineoperationer.
  • Hvis du bruger Stackdriver, skal du inkludere GCP-platform-metrics i dine dashboards. Konfigurer advarsler for GCP-afhængigheder.
  • Spred altid indgående spor. Selvom du ikke er involveret i sporing, vil dette tillade tjenester på lavere niveau at fejlfinde problemer i produktionen.

Beskyttelse og sikkerhed

  • Sørg for, at alle eksterne forbindelser er krypteret.
  • Sørg for, at dine produktionsprojekter har den korrekte IAM-opsætning.
  • Brug netværk til at isolere grupper af virtuelle maskiner.
  • Brug en VPN til sikker forbindelse til fjernnetværk.
  • Dokumentere og overvåge brugeradgang til data. Sørg for, at al brugeradgang til data er revideret og logget.
  • Sørg for, at debugging-endepunkter er begrænset af ACL'er.
  • Rengør brugerinput. Konfigurer størrelsesgrænser for nyttelast for brugerinput.
  • Sørg for, at din tjeneste selektivt kan blokere indgående trafik for individuelle brugere. Dette vil blokere overtrædelser uden at påvirke andre brugere.
  • Undgå eksterne endepunkter, der igangsætter mange interne operationer.

Kapacitetsplanlægning

  • Dokumentér, hvordan din service skalerer. For eksempel: antal brugere, størrelse på indgående nyttelast, antal indgående beskeder.
  • Dokumenter ressourcekravene til din tjeneste. For eksempel: antal dedikerede virtuelle maskine-instanser, antal Spanner-instanser, specialiseret hardware såsom GPU eller TPU.
  • Dokumentressourcebegrænsninger: ressourcetype, region osv.
  • Dokumentér kvotebegrænsninger for oprettelse af nye ressourcer. For eksempel at begrænse antallet af GCE API-anmodninger, hvis du bruger API'en til at oprette nye forekomster.
  • Overvej at køre belastningstest for at analysere ydeevneforringelse.

Det er alt. Vi ses i klassen!

Kilde: www.habr.com

Tilføj en kommentar