deSymfony 2013

Escalabilidad y alto rendimiento con Symfony2

Ricard Clau  · 

Presentación

Vídeo

Transcripción

Extracto de la transcripción automática del vídeo realizada por YouTube.

y gracias por venir a esta charla donde hablaremos de escalabilidad y alto rendimiento construidos ya sabéis que últimamente hay un poco de polémica que sin sonidos es muy lento bla bla bla que php es un lenguaje digamos no muy rápido etcétera etcétera y esos

comentarios pues parte de razón tiene pero podemos explicar cómo optimizar este tipo de aplicaciones sobre todo que en la mayoría de aplicaciones esa diferencia de velocidad tampoco es tan tan tan importante hasta que consigues realmente millones y millones

de por día por minuto incluso entonces los patrocinadores y la organización que estos eventos que nos lo pasamos todos muy bien aprendemos mucho unos de otros y que dure muchos años una pequeña presentación voy a morir claro actualmente estoy viviendo en londres

hace un par de meses a veces doy charlas y a veces un amigo fabién y sus compañeros necesitan un pórtico significa aunque a veces también lo rechacen trabajar un poquito más generoso entonces un poquito de agenda no es una agenda muy estricta pero un poco

de telar lo que vamos a comentar vamos a hablar de personas de escala vida en general de cómo va a ser por félix de las aplicaciones y cómo intentar optimizar las como centraron las formas importantes un tema que ya seguro que dará polémica sql contra no sql

cuando alguno cuando sea otro cual es bueno cuál es más ninguno es bueno o malo del problema como bien explicado ron la verdad que todo está bastante basado en hechos reales principalmente por la experiencia social point que como ha contado run it teníamos

problemas bastante bastante interesantes de resolver y casi todos puede valer incluso en el entorno sin symphony dos son problemas que se pueden aplicar mediante cualquier frame con incluso fuera del mundo php los conceptos humanos de parecidos y ya como he

dicho sin sonidos todo y no ser el frame forma rápido del mundo es suficientemente rápido para prácticamente la mayoría de aplicación pues bueno al final el objetivo de toda empresa que se basen en un vídeo web es poder tener millones de usuarios en todo el

mundo 24 que todo funcione y para que esto se consiga conseguir tener claros algunos conceptos que son los que pongo aquí y ahora veremos rápidamente entonces la escalabilidad la escalabilidad es una propiedad de un sistema que es deseable y se va a ser que

aunque aquello crezca y cada vez haya más usuarios y más datos el rendimiento no se vea afectado especialmente entonces esto históricamente si pensamos en los sistemas de banca de los años 80 y demás se hacía la primera manera teníamos unos mainframe super

inmensos que cada vez les íbamos metiendo más disco más memoria más ram y bueno esto ya veis que se va poniendo amarillo rojitos y ya un momento que estén además de sillas y monederos no es del todo sostenible sin embargo con el auge de internet y todos estos

procesos este tipo de aplicaciones que crece tan rápido que se usa bastante más un modelo de escalabilidad horizontal que se basa en tener nodos más pequeños pero que todos pueden hacer una función y lo mejor de este modelo es que ahora que conseguimos que

los funciones con dos nodos escalan haciendo dos es simplemente añadir un balanceador de carga un puente diferente y levantarnos es un tema de costes pero ya no entonces claramente el segundo modelo es mucho más sostenible fijaros aquí este gráfico de facebook

no veis que llena todas las zonas horarias no hay ni tenemos una aplicación que será a nivel mundial como verán los juegos de sociales hoy no tenemos ninguna hora buena para parar de hecho no podemos parar y peor aún a la que es muy brusco digo nuevo que es

bastante a menudo porque los videojuegos me aquí van cambiando bastante si la liga vamos un poco realmente teníamos problemas que era muy importante no sólo que pudiéramos dar servicio continuamente sino que nos podíamos levantar rápido de cualquier problema

empezando para atrás o solucionar datos que podían estar corruptos y demás entonces ligado con la estabilidad y zone tal es muy importante poder balancear la carga normalmente lo que se pone es un dispositivo sea físico o sea por código que lo que hace repartir

la carga tres diferentes nodos que están por detrás el rol de ese tipo de estrategia hay más y un efecto colateral de tener esta escala binacional y varios nodos es que podemos hacer cambios sin dejar de al servicio se puede hacer un deploy y los primeros

días unas cuantas máquinas subir el código ahí en las levantando otra vez o también cosas como probar alguna versión nueva de php si nos interesa preparamos un nodo lo probamos solo ahí y al menos si tenemos 80 servidores y se estropea la recuerde uno pues

hombre podía superar instrucciones de los 80 y finalmente el jardín esto no sé si os ha pasado a muchos pero llega un momento que las cosas no te caben en una máquina incluso te puede pasar que los datos por ejemplo de usuarios tengas tantos que tengas que

partirlo en más del servidor mysql y cuando hay que hacer esto es bastante doloroso doloroso por dos motivos porque primero tienes muchos registros y los tienes que volver a repartición ar y sobre todo un problema que ya comentaron a los chicos de bodaclick

que es que no se pueden aceptar se quedan los dos nodos o se complica bastante y la historia entonces cuando te encuentras y la verdad es que un poco vuelve a ser un ingeniero que muchas veces estamos haciendo aplicaciones que son aplicaciones sencillas y

en problemas de verdad es cuando realmente vuelves a ser el ingeniero sacas tu todo tu destornillador y vuelves a ingenieros entonces es muy importante o sea a todos nos gusta hacer optimizaciones y luego es que va mucho más rápido pero no hay que perder de

vista que lo importante es que la empresa gane dinero y para eso normalmente hay que hacer feature a nadie nos gusta a todos nos gusta más hacer tareas de optimización pero hay que hacerlo cuando tocas no cuando tenemos tres usuarios que tarden 10 milisegundos

o 15 por tanto hay una gran diferencia entonces no hagáis optimizaciones prematuras y hacerlo de forma incremental porque cuando en ti misas teóricamente no pasa nada pero es bastante probable que te hayas olvidado nunca y sobre todo un mantra que ya lo he

dicho muchas veces las micro optimizaciones realmente prácticamente no sirven para nada por micro optimizaciones que entiendo yo o sea si lo pensáis la función y set es como 10 veces más rápida que hacer un arranque y exit y se siente sin más rápida en microsegundos

entonces si ganas dos microsegundos si consigues que pase por ahí un millón de veces ganas dos segundos que es ridículo deportes centrarse en mejoras que realmente se ahorra costes pero claro tampoco hay que esperar al desastre que muchas veces por no tocar

por no tocar de suyo y que me quede como estoy acá que yo aguanté y cruzaron los dedos y a ver qué pasa hay que monitorizar mucho los servidores continuamente y monitorizar todo como está el disco cómo está la ram cómo estará cpu si tenemos precisión si del

ya significará que seguramente hay algún tipo de conexión de retada a otra máquina que no está funcionando muy bien y aunque ya sé que es prácticamente imposible hay que intentar que negocio entienda que los sistemas no pueden escalar hasta el infinito y que

si van a ser una promoción que se van a gastar 200 mil euros en facebook google analytics lo que sea no se tienen que preguntar si el sistema lo aguanta porque morir una empresa porque no tiene no tiene visitantes no tienen factura es muy triste pero morir

de éxito es quizá peor y puede pasar entonces como nunca nos van a avisar las de negocio yo recomendaría que si tenéis conseguimos utilizar cuando la cosa esté a la mitad le falta pensar que algún día habrá que tocar ahí tener preparado el trasmallo poco escondido

para porque serás mía para otro cambio rápido bueno estás de introducción bancada entonces si tenemos que aplicación web está sector a vida la primera mejora que es el primer punto donde tenemos que focalizarnos optimizar es el front end parece una tontería

y cuántas peticiones está haciendo para servir una página en las mismas sí que es verdad que cada vez las perdices son mejores pero bueno los usuarios también demandan que las webs se carguen súper rápida y respondan súper rápido entonces todo esto esta conversación

de front entonces tenemos que ayudar a los compañeros de frontera en algunas cosas y éstos serían técnicas rápidas de mejorar evidentemente si no tenemos que hacer la petición mucho mejor si podemos dar cachés por http el navegador ya ve que no tiene ni siquiera

[ ... ]

Nota: se han omitido las otras 4.218 palabras de la transcripción completa para cumplir con las normas de «uso razonable» de YouTube.