Què faries si en entrar en un CPD et trobessis una sala amb centenars de cables enredats? Què faries si haguessis de desenredar-los i organitzar-los? Una possible solució seria triar un cable a l'atzar i desendollar-lo per observar-ne el resultat i etiquetar el cable en conseqüència. Al món de la programació aquesta tasca s'ha convertit en tota una disciplina: chaos engineering.
Chaos engineering és la disciplina que, mitjançant l'experimentació controlada, millora la capacitat d'adaptació d'un sistema distribuït davant una situació adversa.
I quin tipus de situacions té com a objectiu evitar la metodologia de chaos engineering? El tipus de situacions que provoca grans pèrdues econòmiques a les empreses, com ara els talls de servei. El 2019, s'estima que Facebook va perdre 90 milions de dòlars després d'una caiguda dels seus servidors durant tan sols 14 hores. Per altra banda, l'empresa Delta Airlines va patir un impacte d'uns 150 milions de dòlars després d'un tall d'energia que va provocar la cancel·lació de més de 2.000 vols.
Netflix, WhatsApp, Instagram, HBO… són moltes de les plataformes que deixen de funcionar sense previ avís a l'usuari i que posen en un seriós compromís els programadors i les programadores de les seves empreses, obligant-los a treballar a contrarellotge i sota extrema pressió. La metodologia chaos engineering busca posar fi a aquest tipus de situacions avançant-se als esdeveniments, predint els possibles errors i automatitzant les possibles solucions. El seu funcionament no dista gaire del perfil de Site Reliability Engineer. Tots dos busquen una millor estabilitat del sistema i preveuen errors, i, per tant, comparteixen departament en moltes organitzacions.
Els passos de la metodologia chaos engineering no són tan senzills com l'exemple de la sala enredada de cables. Aquesta disciplina no consisteix a trencar el sistema aleatòriament i observar els resultats, requereix un procediment segur i ben descrit:
Aquests passos no només asseguren que el sistema suporti l'error o que ara estigui preparat per solucionar-lo, sinó que comproven i milloren la monitorització en temps real, i entrenen els equips per identificar i resoldre problemes reals amb més rapidesa i eficàcia.
La metodologia chaos engineering no és una disciplina que estigui fent els seus primers passos. A finals de 2010, Netflix va publicar al seu bloc l'article 5 Lessons We’ve Learned Using AWS per explicar la importància del núvol i els sistemes distribuïts i, també, la complexitat de la seva gestió. Ja aleshores van crear un conjunt de solucions anomenat Chaos Monkey per provocar errors als servidors i observar com afectaven la seva infraestructura.
Així va néixer chaos engineering, una metodologia que no ha parat de perfeccionar-se des de llavors i que està en ple creixement gràcies a l'èxit de l'emmagatzematge al núvol, les xarxes socials i les plataformes d'entreteniment en línia.
Igual que el control de versions, chaos engineering es presenta com una eina molt útil i absolutament necessària per al món de la programació i el manteniment de sistemes. Si la teva passió és la informàtica i et mous com peix a l'aigua en els sistemes distribuïts, no ho dubtis i fes un gir professional a la teva carrera amb BETWEEN!