Checklista för produktionsberedskap

Översättningen av artikeln förbereddes speciellt för kursens studenter "DevOps praxis och verktyg", som börjar idag!

Checklista för produktionsberedskap

Har du någonsin släppt en ny tjänst i produktion? Eller kanske du var med och stöttade sådana tjänster? Om ja, vad motiverade dig? Vad är bra för produktionen och vad är dåligt? Hur utbildar du nya teammedlemmar i releaser eller underhåll av befintliga tjänster.

De flesta företag antar "vilda västern"-metoder när det kommer till industriella verksamhetsmetoder. Varje team beslutar om sina egna verktyg och bästa praxis genom att prova och missa. Men detta påverkar ofta inte bara framgången för projekt, utan även ingenjörerna.

Trial and error skapar en miljö där fingerpekande och skuldförskjutning är vanligt. Med detta beteende blir det allt svårare att lära av misstag och inte upprepa dem igen.

Framgångsrika organisationer:

  • inse behovet av riktlinjer för produktion,
  • studera bästa praxis,
  • påbörja diskussioner om produktionsberedskapsfrågor vid utveckling av nya system eller komponenter,
  • säkerställa efterlevnad av reglerna för förberedelse för produktion.

Förberedelser för produktion inkluderar en "review"-process. Granskningen kan vara i form av en checklista eller en uppsättning frågor. Granskningar kan göras manuellt, automatiskt eller både och. Istället för statiska kravlistor kan man göra checklistmallar som kan anpassas efter specifika behov. På så sätt kan ingenjörer ges ett sätt att ärva kunskap och tillräcklig flexibilitet när det behövs.

När ska man kontrollera en tjänst för produktionsberedskap?

Det är användbart att utföra en produktionsberedskapskontroll inte bara omedelbart före release, utan också när den överförs till ett annat driftteam eller en ny anställd.

Kontrollera när:

  • Du släpper en ny tjänst i produktion.
  • Du överlåter driften av produktionstjänsten till ett annat team, såsom SRE.
  • Du överlåter driften av produktionstjänsten till nyanställda.
  • Organisera teknisk support.

Checklista för produktionsberedskap

För en tid sedan, som ett exempel, jag опубликовала checklista för testning av produktionsberedskap. Även om den här listan kommer från Google Cloud-kunder, kommer den att vara användbar och användbar utanför Google Cloud.

Design och utveckling

  • Utveckla en repeterbar byggprocess som inte kräver tillgång till externa tjänster och inte är beroende av fel i externa system.
  • Under design- och utvecklingsperioden, definiera och ställ in SLO:er för dina tjänster.
  • Dokumentera förväntningar på tillgängligheten av externa tjänster som du är beroende av.
  • Undvik ett enda fel genom att ta bort beroenden av en enda global resurs. Replikera resursen eller använd en reserv när resursen inte är tillgänglig (till exempel ett hårdkodat värde).

Konfigurationshantering

  • Statisk, liten och icke-hemlig konfiguration kan skickas via kommandoradsparametrar. För allt annat, använd konfigurationslagringstjänster.
  • En dynamisk konfiguration måste ha reservinställningar om konfigurationstjänsten inte är tillgänglig.
  • Utvecklingsmiljöns konfiguration bör inte vara relaterad till produktionskonfigurationen. Annars kan detta leda till åtkomst från utvecklingsmiljön till produktionstjänster, vilket kan orsaka sekretessproblem och dataläckage.
  • Dokumentera vad som kan konfigureras dynamiskt och beskriv reservbeteende om konfigurationsleveranssystemet inte är tillgängligt.

Releasehantering

  • Dokumentera releaseprocessen i detalj. Beskriv hur releaser påverkar SLOs (till exempel tillfälliga ökningar av latens på grund av cachemissar).
  • Dokumentera kanariefågelsläpp.
  • Utveckla en granskningsplan för kanariefågel och, om möjligt, automatiska återställningsmekanismer.
  • Se till att återställningar kan använda samma processer som distributioner.

Observerbarhet

  • Se till att den uppsättning mått som krävs för SLO samlas in.
  • Se till att du kan skilja mellan klient- och serverdata. Detta är viktigt för att hitta orsakerna till fel.
  • Ställ in varningar för att minska arbetskostnaderna. Ta till exempel bort varningar orsakade av rutinoperationer.
  • Om du använder Stackdriver, inkludera GCP-plattformsstatistik i dina instrumentpaneler. Ställ in varningar för GCP-beroenden.
  • Sprid alltid inkommande spår. Även om du inte är involverad i spårning kommer detta att tillåta tjänster på lägre nivå att felsöka problem i produktionen.

Skydd och säkerhet

  • Se till att alla externa anslutningar är krypterade.
  • Se till att dina produktionsprojekt har rätt IAM-inställning.
  • Använd nätverk för att isolera grupper av virtuella maskininstanser.
  • Använd ett VPN för att säkert ansluta till fjärrnätverk.
  • Dokumentera och övervaka användaråtkomst till data. Se till att all användaråtkomst till data granskas och loggas.
  • Se till att felsökningsslutpunkter är begränsade av ACL:er.
  • Rensa användarinmatning. Konfigurera storleksgränser för nyttolast för användarinmatning.
  • Se till att din tjänst selektivt kan blockera inkommande trafik för enskilda användare. Detta kommer att blockera överträdelser utan att påverka andra användare.
  • Undvik externa slutpunkter som initierar många interna operationer.

Kapacitetsplanering

  • Dokumentera hur din tjänst skalar. Till exempel: antal användare, storlek på inkommande nyttolast, antal inkommande meddelanden.
  • Dokumentera resurskraven för din tjänst. Till exempel: antal dedikerade virtuella maskininstanser, antal Spanner-instanser, specialiserad hårdvara som GPU eller TPU.
  • Dokumentresursbegränsningar: resurstyp, region osv.
  • Dokumentera kvotbegränsningar för att skapa nya resurser. Till exempel att begränsa antalet GCE API-förfrågningar om du använder API för att skapa nya instanser.
  • Överväg att köra belastningstester för att analysera prestandaförsämring.

Det är allt. Ses på lektionen!

Källa: will.com

Lägg en kommentar