El cas dels 82 segons

Escrit per
Xavier GrosCTO
Publicat
6 min de lectura
Etiquetes
Com treballem

Una cerca al web trigava 82 segons i hi havia una primera sospita sobre la taula. El cas es podia haver tancat amb un retoc. El vam seguir fins al final.

Ilustración en acuarela de un tablero de corcho de investigación. En el centro hay un cronómetro plateado clavado con una chincheta, y de él salen hilos rojos hacia un billete de tren, un mapa con un punto rodeado en rojo, fotos de una estación, un túnel y un pueblo, la silueta de un hombre con sombrero, el dibujo de una mochila y notas manuscritas.
Una cerca de 82 segons ens va portar fins a un error de fa anys (DB/IA).

L’avís va arribar de nit. La base de dades del web d’un client treballava molt per sobre del normal i el seu proveïdor d’allotjament n’havia localitzat el motiu: les cerques trigaven de mitjana 82 segons a resoldre’s, mentre diversos robots en llançaven una rere l’altra. L’endemà al matí, el cas era damunt la nostra taula.

Menys d’una hora després que s’obrís el tiquet, havíem respost amb la causa real, una mesura que la demostrava i la llista exacta del que calia comprovar a producció.

L’error en si és el de menys: dues peces de la base de dades que feia anys que no s’entenien, i una allau de cerques que ho va fer evident. El que val la pena explicar és la feina, perquè és la part del suport que no es veu quan tot funciona.

El primer sospitós té dret a coartada

Tot cas arriba amb una primera hipòtesi. Aquesta assenyalava una part concreta de la base de dades, era raonable i venia de qui millor coneix els servidors. El més còmode hauria estat retocar aquella part i esperar a veure què passava.

Abans la vam comprovar, i estava bé. Així ho vam dir al tiquet, juntament amb el motiu: tocar-la no arreglaria res. El client es va estalviar un canvi inútil en un web en producció, amb el seu cost i el seu risc. Això no surt en cap informe, i també és feina de suport.

L’escena del crim no es toca

Vam investigar al nostre entorn de desenvolupament, amb el mateix codi i una còpia de les dades reals. Mentrestant, el web va continuar atenent els visitants sense assabentar-se de res.

Allà vam reproduir el problema, el vam aïllar i vam provar la solució. Les mateixes cerques van passar a ser entre 8 i 12 vegades més ràpides i van retornar exactament els mateixos resultats. El segon importa tant com el primer, perquè una cerca molt ràpida que troba una altra cosa és una altra avaria.

Amb aquesta prova a la mà ja no demanàvem a ningú que confiés en la nostra intuïció.

Una investigació, un sol fil

L’allotjament veu els seus servidors i nosaltres veiem el web per dins. Ningú no ho veu tot des del seu costat, així que un cas com aquest només es resol si tots dos treballen junts.

Va ser un bon exemple. El proveïdor havia donat l’avís a temps i amb dades. Nosaltres li vam indicar al tiquet què havia de mirar i què havia de sortir si teníem raó. Ho va comprovar als seus dos entorns i ho va confirmar. Va proposar una prova controlada de la correcció i hi vam afegir com tornar enrere si alguna cosa anava malament. També li vam proposar frenar els robots abans que arribessin a la base de dades, perquè la protecció que hi havia no era suficient.

El client va ser en aquest fil des del principi. Va poder veure què passava i qui ho portava, i no va haver de reenviar ni un sol correu d’un proveïdor a l’altre.

Si la resposta a tot és «hem reiniciat i ja va», el cas continua obert.

Fins al final del rastre

Quan els robots se’n van anar, la càrrega va tornar a la normalitat. A efectes pràctics, ja no hi havia incidència, i moltes es tanquen just en aquell moment. La causa continuava allà, esperant els robots següents.

A més, quedava la pregunta que separa arreglar una cosa d’entendre-la: per què ha passat i com evitem que torni a passar? La vam respondre al tiquet el mateix dia que es va plantejar, després de seguir el rastre per l’historial del programari fins a l’origen. El culpable feia anys que era a casa. Venia de la versió amb què es va construir el web, i aquest web el vam construir nosaltres, així que ho vam dir tal qual.

Conèixer l’origen ens va donar el que un pedaç no dona mai: saber què cal corregir exactament, confirmar que una actualització rutinària no ho hauria resolt i poder assegurar que el que es creï a partir d’ara ja sortirà bé.

Sentència pendent d’execució

Mentre escrivim això, la correcció entra en prova controlada a preproducció. Abans de fer aquest pas ja vam comprovar que el canvi era segur i vam deixar per escrit què calia fer si alguna cosa es torçava. Quan arribi a producció, es mesurarà abans i després, perquè aquesta serà la xifra que comptarà.

Per reunir tot l’anterior no hem hagut de tocar producció ni una sola vegada.

Quatre preguntes per al teu suport

Serveixen per a qualsevol incidència al teu web, la porti qui la porti.

01Causa

T'han explicat què falla, o només què han fet perquè deixi de notar-se?

02Prova

Hi ha una mesura de l'abans i el després, o només la sensació que ara va millor?

03Origen

Saps des de quan passa i per què? Sense aquesta resposta, ningú no et pot dir si tornarà.

04Coordinació

Quan hi intervenen l'allotjament i l'equip del web, parlen entre ells o ets tu qui reenvia els correus?

Si la resposta a tot és «hem reiniciat i ja va», el cas continua obert.

Fonts

Per a qui vulgui entrar en el detall tècnic.

Parlem del teu contingut?

Parlem

A Digital Bakers escrivim així: amb criteri humà al davant i la tecnologia al darrere, empenyent.