Esta web usa cookies propias y de terceros para mejorar tu experiencia de navegación y realizar tareas de análisis. Al continuar con tu navegación entendemos que das tu consentimiento a nuestra política de cookies.

MY NEW STATIC BLOG. WHY? BECAUSE FUCK YOU, THAT'S WHY!




Google llevaba unos días anunciando la salida de fase beta y el nuevo plan de precios, y lo hacían mediante una bonita tabla comparativa, donde decían que con el nuevo plan te ofrecían el doble de horas de cpu de forma gratuita, etc ... para terminar me mostraban que con el actual plan pagaba 0€/día y con el nuevo, dado que los límites aumentaban, pagaría igualmente 0€.

La realidad ha sido muy distinta. Este fue el consumo de Ubuntu FAQ con el plan antiguo el día del cambio:


Me dije: "mi aplicación consume 0.85 horas de cpu/día y el nuevo plan aumenta el límite gratuito hasta 14 h/día, así que no tengo nada de que preocuparme" ... Este fue el consumo con el nuevo plan:


¿Cómo que 33.22 horas de cpu/día? rápidamente miré las estadísticas de la web, un consume tan desproporcionado (con respecto a lo anterior) debe ser consecuencia de un flujo de visitas igualmente desproporcionado. Pues NO, las visitas fueron prácticamente las mismas ~350.

Google aumentó los límites gratuitos, pero la trampa es que modificó la implementación interna de su API, y el consumo se disparó. Sus excusas son que los costes de mantenimiento son muy altos, que es un servicio nuevo y que les ha sido muy difícil poner precios ... pero eso no es una excusa para hacer trampas y mentir. ¿No hubiese sido más ético reducir los límites gratuitos?

Desde entonces me he estado peleando con el código para intentar reducir el consumo, me he leído mil foros y parece que todos llegamos a la misma conclusión: hoy en días es prácticamente imposible mantenerse dentro de los límites gratuitos, por muy simple e impopular que sea la web.

Mi primer cambio fue dotar a Ubuntu FAQ de una Super cache, una clase que se encargue de usar memcache para todos los elementos posibles, pero los resultados fueron desastrosos. Mis primeras pruebas lograron que los tiempos de carga se disparasen a casi 2 segundos por petición!!! Algo inaceptable. He tenido que hacer mil y un cambios hasta olvidarme de una cache de preguntas y enlaces y trabajar únicamente en memoria. He tenido que racanear ciclos de cpu por doquier como si estuviese programando para un puto comodore. Y al final he conseguido tiempos de carga inferiores a 100ms, pero los consumos son estos:


¡Todavía me toca pagar! Pero no sólo eso, es que además al app engine le ha dado por crearme dos instancias de la web, y eso sumado a que trabajo sobre memoria para no tocar la base de datos y que el consumo se dispare, conlleva fallos de sincronización!!! Si amigos, todos los problemas de una web con altísimo tráfico, pero sin ese altísimo tráfico! ¿Y cómo solucionas fallos de sincronización sin que eso suponga una caída brutal del rendimiento? pues he tenido que echar mano de ingenio y me he creado un diccionario de conflictos para comprobar si los datos de memoria han sido actualizados o no ... podéis verlo en el código de la clase Super_cache.

En resumen: huid de Google App Engine.
comments powered by Disqus

Powered by PussyPress.