Beauty in the Breaks: Crear sistemes resistents mitjançant l’enginyeria del caos

Autora: Laura McKinney
Data De La Creació: 2 Abril 2021
Data D’Actualització: 1 Juliol 2024
Anonim
Beauty in the Breaks: Crear sistemes resistents mitjançant l’enginyeria del caos - Tecnologia
Beauty in the Breaks: Crear sistemes resistents mitjançant l’enginyeria del caos - Tecnologia

Content


Font: pressureUA / iStockphoto

Emportar:

Els sistemes moderns han de ser capaços de manejar el caos per evitar temps d'aturada. És per això que és més important que mai provar els sistemes a fons i assegurar-ne la resiliència.

Malgrat els nostres majors esforços per evitar-los, els incidents informàtics són una part inevitable del treball, i intentar mantenir-se al marge dels temps morts que afecten els negocis només és complicat. Els sistemes avui en dia estan estretament acoblats i cada vegada més complexos, i amb les parts mòbils ofereixen més oportunitats perquè les coses vagin malament.

Aquesta és una de les raons per les quals cada cop són més les organitzacions que recorren als microservicis per augmentar la disponibilitat del servei i millorar la seva capacitat de resistència al fracàs. Però, tot i que són premis excel·lents per trencar aplicacions monolítiques, també poden combinar el risc de fracàs, tret que estiguin dissenyats expressament tenint en compte la capacitat de resistència.


Preparació per al fracàs

Atès el caràcter inherentment caòtic dels sistemes distribuïts, els serveis han de desenvolupar-se no només per anticipar-se al fracàs, sinó recuperar-se automàticament en cas d’avaria. Això vol dir que instaureu els errors de manera regular per assegurar-vos que els vostres sistemes puguin gestionar el caos sense interrompre el servei als clients finals. I per aconseguir-ho, necessites la capacitat de simular el trànsit similar a la producció en entorns de prova.

Per descomptat, és una bona idea provar la capacitat de resistència abans que es produeixin canvis en la producció. Si no ho feu, no podreu verificar que els vostres serveis puguin suportar tant la càrrega mitjana com la màxima. De fet, l’aposta més segura és assegurar-se que el vostre producte pot suportar fins a dos vegades la quantitat màxima sense haver d’escalfar.


Quan es tracta de proves de resiliència, les eines adequades no haurien de preocupar-se massa per la gestió de les sol·licituds, sinó que al final tinguin un impacte correcte. Recordeu que, en determinades condicions, el servei d'introducció no pot enviar una sol·licitud a la resta del sistema, però no informar-ne l'error. No arrisqueu problemes que vinguin sota el radar de control assegurant-vos que, de fet, es produeix la validació de final a extrem. (Per obtenir més informació, vegeu Falles tecnològiques: podem viure-hi?)

Els següents passos

Després d’entendre com es comporten els serveis sota càrrega, és hora de començar a introduir els esdeveniments de fallada. Igual que amb totes les proves de programari, el millor és tenir eines automatitzades que us permetin reproduir fàcilment i ràpidament escenaris, de manera que pugueu coordinar esdeveniments complexos que afectin diferents tecnologies d’infraestructura. I, més enllà de la possibilitat de verificar les correccions i els canvis als serveis, això us permet executar escenaris de fallida aleatòria en qualsevol entorn i en una programació.

Els esdeveniments de falla significatius depenen en gran mesura de la disposició dels vostres serveis i podeu formular-los fent preguntes específiques que us siguin rellevants. Per exemple, quin és l’impacte per a les persones que utilitzen el front-end quan una base de dades es fa inabastable durant un determinat període de temps? Aquests usuaris encara poden navegar per la interfície d'interès web? Encara poden emetre actualitzacions a la informació i es processaran correctament quan es torni a arribar a la base de dades?

Si teniu diversos microservicis, podeu preguntar-vos si hi haurà una interrupció global si es bloqueja un servei individual. O si teniu un mecanisme de cua per amortitzar la comunicació entre serveis, què passa quan el servei (o serveis) per al consumidor deixa de funcionar? Els usuaris encara podran treballar amb la vostra aplicació? I tenint en compte una càrrega mitjana, quant de temps teniu abans que es desbordi les cues i comenceu a perdre s?

Sense errors, sense estrès: la vostra guia pas a pas per crear programes que canvien la vida sense destruir la vida

No podeu millorar les vostres habilitats de programació quan ningú es preocupa per la qualitat del programari.

Un cop definides algunes preguntes clau sobre la vostra infraestructura, podeu començar a fer una llista de diferents maneres de simular aquests errors. Pot ser suficient per aturar un determinat servei o un servidor de bases de dades. És possible que vulgueu bloquejar el fil principal d’un servei per simular un bloqueig mort, mentre que el seu contenidor segueix en resposta i funciona. Podeu decidir introduir regles a la vostra xarxa per bloquejar el trànsit entre serveis específics. Als entorns Linux, podeu utilitzar eines com "tc" per emular situacions de xarxa com paquets de latència alta, caiguts, danyats o duplicats. (Pot ser important implicar usuaris en proves. Llegiu-ne més en 4 raons per les quals els usuaris finals han de participar en proves abans de la UAT.)

Aprenentatge i millora mitjançant exercicis

Un dels aspectes més valuosos de la creació d’escenaris de fracàs és que poden exposar totes les formes potencials de fracassar del sistema, i així traçar el camí cap a la lògica d’autocuració. El vostre equip realitzarà els passos per recuperar els serveis de forma manual: un gran simulacre, per cert, per confirmar que són capaços de fer-ho en SLAs. L’automatització d’aquest procés de recuperació es pot treballar, però, mentrestant, us pot deixar fàcil saber que el vostre equip ha avançat durant el procés de recuperació de serveis. Si es realitzen escenaris de fallida aleatoris i regulars i no es divulguen els detalls complets de la prova, també podeu incloure descobriments i diagnòstics al simulacre, que és, al cap i a la fi, una part crítica dels SLA.

En el seu nucli fonamental, l’enginyeria del caos pren la complexitat del sistema com a determinat, ho prova simulant noves i desagradables condicions i observa com respon el sistema. Es tracta dels equips d’enginyeria de dades que han de redissenyar i reconfigurar el sistema per aconseguir una major resiliència. Hi ha tantes oportunitats per aprendre coses noves i útils. Per exemple, podeu trobar casos en què els serveis no rebin actualitzacions quan hagin canviat els serveis aigües avall o en àrees en què falta el monitoratge completament. No hi ha escassetat de maneres emocionants de fer que el vostre producte sigui més resistent i robust.