Imagina que después de pasarte años y años trabajando en múltiples sitios, aprender técnicas y soluciones avanzadas, crear código robusto que funciona, te toca trabajar en un sitio que maneja millones de usuarios, con millones de nodos.
Empiezas a trabajar en el proyecto:
- Todo va bien... hasta que tienes que esperar una semana a que termine un cron.
- Ese cron va bien... hasta que el sexto día falla por falta de memoria. Así que la aumentas porque llegó al 90%.
- Ese cron vuelve a ir bien... pero un despliegue a media semana (actualización de seguridad) hace que se caiga la base de datos y falla, así que lo lanzas de nuevo.
- Ese cron va bien... pero al sexto día, y medio, tienes un fatal error dentro de un
if
porque el campo estaba vacío. Lo arreglas y lo vuelves a lanzar. - ...
- Después de tres semanas, solamente has arreglado un
if
sencillito, y el cron no ha terminado aún 🙈.
Esto de arriba, es solamente un caso, pero después de varios años trabajando en un par de sitios "grandes" (y bien conocidos), hay muchas más historias y estrategias a tener en cuenta.
En esta sesión hablaremos de:
- Cron jobs o queues
- Uso de memoria
- To loop or not to loop
- Migraciones (Drupal y/o no-Drupal)
- Tiempos de ejecución
- Búsquedas
- Edge cases everywhere
- Optimizaciones