Controlelijst voor productiegereedheid

De vertaling van het artikel is speciaal gemaakt voor de studenten van de cursus "DevOps-praktijken en tools", die vandaag begint!

Controlelijst voor productiegereedheid

Heeft u ooit een nieuwe dienst in productie genomen? Of was u misschien betrokken bij de ondersteuning van dergelijke diensten? Zo ja, wat motiveerde u? Wat is goed voor de productie en wat is slecht? Hoe train je nieuwe teamleden op releases of onderhoud van bestaande diensten.

De meeste bedrijven kiezen uiteindelijk voor een ‘Wilde Westen’-benadering als het gaat om industriële bedrijfsvoering. Elk team bepaalt met vallen en opstaan ​​zijn eigen tools en best practices. Maar dit heeft vaak niet alleen invloed op het succes van projecten, maar ook op de ingenieurs.

Met vallen en opstaan ​​ontstaat een omgeving waarin vingerwijzen en het verschuiven van de schuld gebruikelijk zijn. Met dit gedrag wordt het steeds moeilijker om van fouten te leren en deze niet opnieuw te herhalen.

Succesvolle organisaties:

  • de noodzaak beseffen van richtlijnen voor de productie,
  • beste praktijken bestuderen,
  • discussies beginnen over problemen met de productiegereedheid bij het ontwikkelen van nieuwe systemen of componenten,
  • zorgen voor naleving van de regels voor voorbereiding op productie.

Voorbereiding voor productie omvat een “review”-proces. De beoordeling kan de vorm hebben van een checklist of een reeks vragen. Beoordelingen kunnen handmatig, automatisch of beide worden uitgevoerd. In plaats van statische eisenlijsten kunt u checklistsjablonen maken die kunnen worden aangepast aan specifieke behoeften. Op deze manier kunnen ingenieurs kennis overnemen en voldoende flexibiliteit wanneer dat nodig is.

Wanneer moet u een dienst controleren op productiegereedheid?

Het is nuttig om niet alleen vlak voor de vrijgave een productiegereedheidscontrole uit te voeren, maar ook bij overdracht aan een ander operationeel team of een nieuwe medewerker.

Controleer wanneer:

  • U brengt een nieuwe service in productie.
  • Je draagt ​​de exploitatie van de productiedienst over aan een ander team, zoals SRE.
  • Je draagt ​​de exploitatie van de productiedienst over aan nieuwe medewerkers.
  • Organiseren van technische ondersteuning.

Controlelijst voor productiegereedheid

Enige tijd geleden heb ik bijvoorbeeld опубликовала checklist voor het testen van de gereedheid voor productie. Hoewel deze lijst afkomstig is van Google Cloud-klanten, zal deze nuttig en toepasbaar zijn buiten Google Cloud.

Ontwerp en ontwikkeling

  • Ontwikkel een herhaalbaar bouwproces dat geen toegang tot externe services vereist en niet afhankelijk is van het falen van externe systemen.
  • Tijdens de ontwerp- en ontwikkelingsperiode definieert en stelt u SLO's voor uw services in.
  • Documenteer de verwachtingen voor de beschikbaarheid van externe diensten waarvan u afhankelijk bent.
  • Voorkom een ​​single point-of-failure door de afhankelijkheden van één enkele mondiale bron weg te nemen. Repliceer de resource of gebruik een fallback wanneer de resource niet beschikbaar is (bijvoorbeeld een hardgecodeerde waarde).

Configuratiebeheer

  • Statische, kleine en niet-geheime configuraties kunnen worden doorgegeven via opdrachtregelparameters. Gebruik voor al het andere configuratieopslagservices.
  • Een dynamische configuratie moet noodinstellingen hebben voor het geval de configuratieservice niet beschikbaar is.
  • De configuratie van de ontwikkelomgeving mag niet gerelateerd zijn aan de productieconfiguratie. Anders kan dit leiden tot toegang vanuit de ontwikkelomgeving tot productiediensten, wat privacyschendingen en gegevenslekken kan veroorzaken.
  • Documenteer wat dynamisch kan worden geconfigureerd en beschrijf het terugvalgedrag als het configuratieleveringssysteem niet beschikbaar is.

авление елизами

  • Documenteer het vrijgaveproces gedetailleerd. Beschrijf hoe releases SLO's beïnvloeden (bijvoorbeeld tijdelijke toename van de latentie als gevolg van cachemissers).
  • Documenteer de vrijlating van kanaries.
  • Ontwikkel een beoordelingsplan voor de vrijgave van canary's en, indien mogelijk, automatische terugdraaimechanismen.
  • Zorg ervoor dat rollbacks dezelfde processen kunnen gebruiken als implementaties.

Waarneembaarheid

  • Zorg ervoor dat de set metrieken die vereist is voor de SLO wordt verzameld.
  • Zorg ervoor dat u onderscheid kunt maken tussen client- en servergegevens. Dit is van belang voor het opsporen van de oorzaken van storingen.
  • Stel waarschuwingen in om de arbeidskosten te verlagen. Verwijder bijvoorbeeld waarschuwingen die worden veroorzaakt door routinematige handelingen.
  • Als u Stackdriver gebruikt, neem dan GCP-platformstatistieken op in uw dashboards. Stel waarschuwingen in voor GCP-afhankelijkheden.
  • Geef binnenkomende sporen altijd door. Zelfs als u niet betrokken bent bij tracering, kunnen services op een lager niveau problemen in de productie opsporen.

Bescherming en veiligheid

  • Zorg ervoor dat alle externe verbindingen gecodeerd zijn.
  • Zorg ervoor dat uw productieprojecten de juiste IAM-opstelling hebben.
  • Gebruik netwerken om groepen virtuele machine-instanties te isoleren.
  • Gebruik een VPN om veilig verbinding te maken met externe netwerken.
  • Documenteer en bewaak de toegang van gebruikers tot gegevens. Zorg ervoor dat alle gebruikerstoegang tot gegevens wordt gecontroleerd en geregistreerd.
  • Zorg ervoor dat eindpunten voor foutopsporing worden beperkt door ACL's.
  • Sanitiseer gebruikersinvoer. Configureer de limieten voor de payloadgrootte voor gebruikersinvoer.
  • Zorg ervoor dat uw service inkomend verkeer voor individuele gebruikers selectief kan blokkeren. Hierdoor worden overtredingen geblokkeerd zonder gevolgen voor andere gebruikers.
  • Vermijd externe eindpunten die veel interne bewerkingen initiëren.

Capaciteits planning

  • Documenteer hoe uw service schaalt. Bijvoorbeeld: aantal gebruikers, grootte van de inkomende payload, aantal inkomende berichten.
  • Documenteer de resourcevereisten voor uw service. Bijvoorbeeld: aantal speciale virtuele machine-instanties, aantal Spanner-instanties, gespecialiseerde hardware zoals GPU of TPU.
  • Beperkingen van documentbronnen: brontype, regio, etc.
  • Documentquotumbeperkingen voor het maken van nieuwe bronnen. U kunt bijvoorbeeld het aantal GCE API-verzoeken beperken als u de API gebruikt om nieuwe instanties te maken.
  • Overweeg om belastingstests uit te voeren om de achteruitgang van de prestaties te analyseren.

Dat is alles. Tot ziens in de klas!

Bron: www.habr.com

Voeg een reactie