Controlelijst voor productiegereedheid

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

Controlelijst voor productiegereedheid

Heb je ooit een nieuwe dienst in productie genomen? Of misschien wel eens zulke diensten onderhouden? Zo ja, wat was je drijfveer? Wat is goed en wat is slecht voor de productie? Hoe train je nieuwe teamleden om bestaande diensten uit te brengen of te onderhouden?

De meeste bedrijven eindigen met een 'Wild West'-aanpak voor industriële operationele praktijken. Elk team ontdekt door vallen en opstaan ​​zelfstandig tools en best practices. Maar dit heeft vaak niet alleen invloed op het succes van projecten, maar ook op de engineers.

Trial and error creëert een omgeving waarin schuld zoeken en de schuld afschuiven gebruikelijk is. Dit gedrag maakt het steeds moeilijker om van fouten te leren en ze niet te herhalen.

Succesvolle organisaties:

  • de noodzaak van productierichtlijnen begrijpen,
  • best practices bestuderen,
  • het initiëren van discussies over productiegereedheidsproblemen bij de ontwikkeling van nieuwe systemen of componenten,
  • zorgen voor naleving van de productievoorbereidingsregels.

De voorbereiding op productie omvat een 'review'-proces. Een review kan de vorm hebben van een checklist of een reeks vragen. Reviews kunnen handmatig, automatisch of beide worden uitgevoerd. In plaats van statische lijsten met eisen kunnen checklistsjablonen worden gemaakt die kunnen worden aangepast aan specifieke behoeften. Zo krijgen engineers de mogelijkheid om kennis over te nemen en voldoende flexibiliteit wanneer dat nodig is.

Wanneer moet u testen of een service klaar is voor productie?

Het is nuttig om de productiegereedheid niet alleen vlak voor een release te controleren, maar ook bij de overdracht aan een ander operationeel team of een nieuwe medewerker.

Voer een controle uit wanneer:

  • U brengt een nieuwe service in productie.
  • Draag de uitvoering van de productiedienst over aan een ander team, bijvoorbeeld SRE.
  • Draag de leiding van de productiedienst over aan nieuwe medewerkers.
  • Organiseer technische ondersteuning.

Checklist voor productiegereedheid

Een tijdje geleden heb ik bijvoorbeeld опубликовала Checklist voor productiegereedheid. Hoewel deze checklist is ontwikkeld in samenwerking met Google Cloud-klanten, is hij ook nuttig en toepasbaar buiten Google Cloud.

Verwerking en verwerking

  • Ontwikkel een herhaalbaar bouwproces dat geen toegang tot externe services vereist en niet wordt beïnvloed door externe systeemstoringen.
  • Definieer en stel tijdens het ontwerp en de ontwikkeling SLO's in voor uw services.
  • Leg de beschikbaarheidsverwachtingen vast voor de externe services waarvan u afhankelijk bent.
  • Voorkom een ​​single point of failure door afhankelijkheden van één globale resource te verwijderen. 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. Voor al het overige gebruikt u configuratieopslagservices.
  • Voor dynamische configuratie zijn back-upinstellingen nodig voor het geval de configuratieservice niet beschikbaar is.
  • De configuratie van de ontwikkelomgeving mag niet worden gekoppeld aan de productieconfiguratie. Anders kan dit leiden tot toegang vanuit de ontwikkelomgeving tot productieservices, wat kan leiden tot privacyproblemen en datalekken.
  • Documenteer wat dynamisch geconfigureerd kan worden en beschrijf het terugvalgedrag als het configuratieleveringssysteem niet beschikbaar is.

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

  • Documenteer het releaseproces gedetailleerd. Beschrijf hoe releases de SLO's beïnvloeden (bijv. een tijdelijke toename van de latentie als gevolg van cachemissers).
  • Documenteer canary-uitgaven.
  • Ontwikkel een plan voor het evalueren van de vrijlatingen van kanaries en, waar mogelijk, voor automatische terugdraaimechanismen.
  • Zorg ervoor dat rollbacks dezelfde processen kunnen gebruiken als implementaties.

Observeerbaarheid

  • Zorg ervoor dat u de benodigde statistieken voor de SLO verzamelt.
  • Zorg ervoor dat u onderscheid kunt maken tussen client- en servergegevens. Dit is belangrijk voor het oplossen van problemen.
  • Stel waarschuwingen in om uw werklast te verminderen. 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.
  • Verspreid inkomende tracering altijd. Zelfs als u niet deelneemt aan de tracering, stelt het services op een lager niveau in staat om problemen in productie te debuggen.

Bescherming en veiligheid

  • Zorg ervoor dat alle externe verbindingen versleuteld zijn.
  • Zorg ervoor dat uw productieprojecten de juiste IAM-instellingen hebben.
  • Gebruik netwerken om groepen virtuele machine-instanties te isoleren.
  • Gebruik VPN om veilig verbinding te maken met externe netwerken.
  • Documenteer en monitor de toegang van gebruikers tot gegevens. Zorg ervoor dat alle toegang van gebruikers tot gegevens wordt gecontroleerd en geregistreerd.
  • Zorg ervoor dat debug-eindpunten worden beperkt door ACL's.
  • Gebruikersinvoer opschonen. Limieten voor de payloadgrootte van gebruikersinvoer instellen.
  • Zorg ervoor dat uw service selectief inkomend verkeer voor individuele gebruikers kan blokkeren. Zo kunt u overtredingen blokkeren zonder dat dit gevolgen heeft voor andere gebruikers.
  • Vermijd externe eindpunten die een groot aantal interne bewerkingen initiëren.

Capaciteitsplanning

  • Documenteer hoe uw service schaalbaar is. Bijvoorbeeld: aantal gebruikers, grootte van de inkomende payload, aantal inkomende berichten.
  • Documenteer de resourcevereisten voor uw service. Bijvoorbeeld: aantal dedicated VM-instanties, aantal Spanner-instanties, gespecialiseerde hardware zoals GPU of TPU.
  • Beperkingen van documentbronnen: brontype, regio, enz.
  • Documenteer quotumlimieten voor het aanmaken van nieuwe resources. Bijvoorbeeld door het aantal GCE API-verzoeken te beperken als u de API gebruikt om nieuwe instanties aan te maken.
  • Overweeg om belastingstesten uit te voeren om prestatieverslechtering te analyseren.

Dat is alles. Tot ziens in de les!

Bron: www.habr.com

Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster