Número 79
10 de xaneiro de 2024
|
Catarina traballaba no departamento de informática dunha grande cadea de cafeterías e a súa principal responsabilidade era o mantemento do programa de revisión de pedidos.
Unhas cen persoas usaban ese programa todos os días para se asegurar de que o mexuxe quente que os clientes mercaban e despois metían na súa boca cumprira os estándares de calidade da empresa — é dicir: que a concentración de aditivos e edulcorantes fose sempre inferior aos límites legais e tamén aos límites letais.
Como a empresa de Catarina era moderna, ese programa estaba desenvolto e despregado na nube, pero Catarina sempre tiña dificultades para mantelo funcionando cun custo razoable. Os usuarios queixábanse do rendemento, que ás veces se reducía sen causa aparente.
Ollando a monitorización, as liñas ían para arriba e para abaixo máis veces que o brazo dun vello nun mitin de Vox. Unha instancia calquera podía ir ben durante unhas horas e, de súpeto, collía varios gigabytes de RAM e un par de CPUs e poñíase a trebellar no disco e na rede ata que o Kubernetes o mataba, e despois do reinicio podía estar ben durante outras cinco horas ou cinco minutos.
Despois de pesquisar, Catarina demostrou que a causa deste problema era que o programa executaba varios tipos moi diferentes de cargas de traballo:
A revisión de pedidos da cafetería.
Esta era a función principal do programa: unha aplicación interactiva na que o programa cargaba información da base de datos e lla amosaba ao usuario. O usuario podía explorar eses datos, aprobar ou denegar o pedido e poñer comentarios.
Caché.
A maioría dos pedidos eran simples (“café con leite”, “cortado”, …), así que ocupaban pouco espazo e transmitíanse rápido pola rede. Outros pedidos, porén, eran moi complicados (especialmente nas cafeterías de Madrid) e tardaban moito en transmitirse, así que alguén engadiu unha caché no programa, que usaba memoria para gardar a información dos últimos pedidos sen ter que consultala na base de datos.
Análise estatística dos pedidos.
Había un departamento na empresa adicado a detectar patróns nos pedidos que facía a xente para impedir que ocorrera unha desgracia, como aquela vez que alguén pediu un batido con dez azucres e corenta xaropes para tentar asasinar a alguén dándolle diabetes. Estas análises non eran interactivas: duraban varios minutos e usaban moita CPU e I/O.
Con esta mestura de cargas de traballo no mesmo programa, non era de estrañar que fora tan inestable e o seu uso de recursos fose tan impredicible! Nun momento podía estar a facer I/O de rede e no seguinte podía estar a facer unha análise estatística mentres enchía a memoria con datos dun pedido para que un revisor lle botara unha ollada.
Para solucionar o problema, Catarina dividiu o programa en tres partes, unha para cada carga de traballo. Quitou a caché do programa e substituíuna por unha instancia local de Redis, e separou a función de revisión de pedidos da función de análise estatística.
Trala división, cada un dos programas resultantes tiña un consumo de recursos máis estable e predicible. Os revisores de pedidos tiñan sempre un rendemento aceptable, o programa de análise estatístico podía medrar ou encoller segundo precisara de recursos, o Kubernetes parou de matar instancias e os custos do aloxamento eran aceptables e constantes mes a mes.
Como recompensa por chegardes aquí, vouvos contar algo que parece unha toleada pero é totalmente certo: unha das empresas pioneiras da informática foi unha casa de té británica.
Lyons era, nos anos 40, unha cadea británica de restaurantes, hoteis e casas de té, e despois da guerra querían modernizar os seus métodos de xestión. Foron aos EEUU para falar cos creadores de ENIAC e quedaron tan impresionados co computador electrónico que decidiron construír o seu propio computador, o Lyons Electronic Office (LEO).
A primeira aplicación de LEO, en 1951, foi calcular o custo dos ingredientes do pan e os pasteis. Despois usárono para as nóminas, pedidos, contabilidade, etc. Tivo tanto éxito que en 1954 crearon unha “spin-off” e daban servizos de computación a outras empresas. Ese foi o seu mellor momento, lamentablemente: a partir dos anos 60 a empresa Lyons entrou en perdas e tivo que vendelo todo, e hoxe practicamente só é coñecida como unha marca irlandesa de té.
Anterior: “Modificacións simultáneas” | Índice | Seguinte: “Os comentarios están preparados” |
1 comentario