La ley de Moore y el arte del mantenimiento de plataformas
Tim Walls ha sido el CTO y Group Architect de EveryMatrix desde 2015, ayudando a la empresa a ofrecer un portafolio de productos modular e impulsado por API para casino, sports betting, pagos y affiliate/agent management. Tras haber estado en la industria deep tech desde los años 90, escribe sobre los avances de su campo y su trabajo con EveryMatrix.
Sobre mi escritorio, tengo un recuerdo que se remonta al inicio de mi carrera profesional: una placa de procesador MIPS R5000 de una workstation Silicon Graphics de mediados de los 90. Además de ser una hermosa pieza de ingeniería por derecho propio (y un práctico pisapapeles), es un útil recordatorio de cuánto hemos avanzado en apenas unas décadas.
La workstation de la que se extrajo ese procesador estaba sobre mi escritorio hace unos 20 años, cuando yo estaba redactando el caso para los servidores Sun Microsystems V880 que iban a ser necesarios si queríamos mantener nuestro sitio de apuestas en funcionamiento por mucho más tiempo; servidores que costaban decenas de miles de dólares cada uno. Más que los detalles de la negociación en sí, recuerdo mis nervios al acercarme a la oficina del MD para pedir, por mucho, el cheque más grande que jamás había contemplado; pero estoy bastante seguro de que fue la frase “pero recuerda el Grand National del año pasado…” la que cerró el trato.
Por supuesto, desde entonces, nombres como Sun Microsystems y Silicon Graphics son recuerdos lejanos, absorbidos por la comoditización. Mientras escribo esto, también sobre mi escritorio está mi teléfono móvil. Es apenas un poco más pequeño que el procesador de mi antigua workstation y, con su procesador de 8 núcleos a 2,9 GHz, es aproximadamente dos veces más potente que uno solo de aquellos viejos servidores de bases de datos.
Realmente, vivimos en una época de abundancia cuando se trata de potencia de cómputo; si Bitcoin demuestra algo, es que tenemos más ciclos de CPU de los que sabemos cómo aprovechar de forma útil. Y, sin embargo, en algún lugar hoy, otra persona está teniendo esa experiencia formativa de pedir fondos para alimentar el voraz apetito de una plataforma por servidores de bases de datos hechos de puro Unobtainium, e intentando calcular cuál será el impacto en su tarifa de licencia si tiene demasiados sockets o no tiene suficientes Processor Value Units…
Entonces, ¿qué pasa? Mi teléfono móvil tiene suficiente potencia de procesamiento para procesar una década de apuestas del Grand National en una fracción de segundo, pero la demanda de grandes sistemas en nuestros centros de datos no ha desaparecido. La respuesta es que la ley de Moore —la regla práctica que acuñó Gordon Moore de Intel en la década de 1960, según la cual el número de transistores en nuestros chips informáticos se duplicaría cada dos años— prácticamente ha cumplido su parte del trato, pero la forma en que lo ha hecho ha cambiado.
Antes, podíamos esperar con fiabilidad que nuestros procesadores duplicaran su velocidad de procesamiento de forma directa cada par de años; pero alrededor de 2005 eso empezó a cambiar. La tasa de mejora del rendimiento por hilo comenzó a desacelerarse o, en los últimos años —a medida que hemos empezado a entender que el consumo energético también es importante—, incluso a invertirse; en su lugar, hemos estado usando esos transistores adicionales no para hacer las cosas más rápido, sino para hacer más de ellas en paralelo.
Eso significa que las arquitecturas que diseñamos hoy deben verse muy diferentes de las que diseñábamos hace 20 años. No importa cuántos Processor Value Units hayas licenciado si tu plataforma canaliza cada transacción a través de un único bloqueo de base de datos; por otro lado, ahora tenemos suficientes hilos para hacer cosas que antes habrían parecido inimaginablemente ineficientes, como procesar cada transacción a través de media docena de servicios diferentes, cada uno ejecutándose en su propio procesador virtual, cada uno separado por una cola o una llamada de red.
Estos cambios a los que tenemos que adaptarnos no son una moda ni simplemente la última forma de hacer las cosas; están impulsados por fundamentos de lo que podemos lograr con esos transistores que Gordon Moore nos regaló tan generosamente. La buena noticia es que, al adoptar esto en nuestras arquitecturas —paralelismo y ejecución asíncrona, asumiendo la sobrecarga de un poco de latencia adicional en cada transacción, o transformando las reglas de negocio para funcionar en un modelo de consistencia eventual—, no solo obtenemos beneficios en escalabilidad, o al dejar de financiar modelos heredados de licenciamiento de software: también podemos transformar la capacidad de mantenimiento de nuestras plataformas mediante componentes más simples, más fáciles de entender, más fáciles de desarrollar y naturalmente redundantes.
Naturalmente, todo cambio encuentra resistencia: desde el infalible deseo de los desarrolladores de optimizar innecesariamente o de valorar lo complejo por encima de lo simple, hasta SLA que priorizan más el tiempo de respuesta que el rendimiento total y, al hacerlo, sacrifican ambos cuando llega la cresta de la ola; pero es nuestro trabajo como líderes técnicos estar a la altura de ello.
Hoy, podemos procesar más apuestas en un segundo en una noche promedio de viernes que las que aquel viejo sistema procesaba durante todo el Grand National hace 20 años, no construyendo algo más grande y más rápido, sino construyendo algo más pequeño y más simple, y desplegando mucho de ello. Adopten lo asíncrono y abandonen la base de datos monolítica: dormirán mejor sabiendo que nunca más tendrán que leer otro Virtualisation Capacity (Sub-Capacity) License Agreement.
Aunque sí extraño las workstations. Silicon Graphics hacía workstations *excelentes*.
La versión original de esta entrevista fue publicada en la edición de invierno de 2021 de SiGMA Magazine bajo el título Todo cambio encuentra resistencia.