Adrián Navarro

Have you tried turning it off and on again?

Viernes
16 May 2008

Bueno, hace tiempo que no escribo un post. Asi que bien podía hablar de UNIX con todo lo que ya he hablado o dedicarme a hacer amigos, pero he preferido lo primero por eso de que me ahorro el tocho de argumentación.

A lo que venía a hablar aquí y hoy es sobre escalabilidad LAMP. Donde LAMP es obviamente Linux-Apache-MySQL-PHP (no, no voy a hablar de como escalar lampáras… aunque suena bien, sin duda).

Normalmente, cuando uno planifica un pequeño proyecto (wrrong, los pequeños proyectos carecen de planificación) no tiene vistas de futuro… Aunque si ahora alguien dice morir de éxito no sería nuevo (eso sí, sonaría irónico).

La planificación suele ser la misma, un servidor guarro que actua de servidor MySQL, Apache, etc. y la mayoría de las veces en un shared. Cuanto eso no cabe ahí, se mueve a un dedicado. Pero cuando el dedicado más caro se queda pequeño o no termina de ser rentables hay que buscar salida.

Como todo depende:

  • Si tiene una gran cantidad de ficheros, tocaría externalizar bien el alojamiento (S3) o bien utilizar servidores de gama baja para alojar ficheros. Esto puede salir más caro que S3 debido a los costes de ubicación geográfica y a los costes de mantenimiento.
  • Si tiene un gran consumo de CPU (ciclos), lo más probable es que se trate de una aplicación web (leerse como Meebo, por dar un ejemplo que no me vienen a la mente). Entonces se puede usar E3, aún con el riesgo de volverse demasiado caro.
  • Si en los casos anteriores se decide uno por la opción de own-way, lo más económico es comprar servidores a precio de coste (por ejemplo, DELL en forma de blade) con configuraciones óptimas para cada parte de la web (las configuraciones entre filer, servidor web y backend sql varían, obviamente: en el filer y en el servidor SQL hay que evitar cuellos de botella I/O por lo que se necesitan discos rápidos y con buen rendimiento. Leerse como RAID 0 y su gran riesgo, con discos con RPM altos (o SSD, quién sabe, pero ya no RAID) o mejor aún, RAID 0+1, todo seguro y con gran rendimiento.
  • Cuando la aplicación/proyecto/otros crece mucho (ver demasiado) se puede pensar en hacer load-balancing entre filers según enrutado de paquetes, con cosas del tipo RTM (real-time-monitoring) para saber que disco está más descargado. Recuerda: viva NFS y el coder que le parió.
  • Los servidores Apache pueden “tirar” del filer: siempre y cuando no contengan archivos de grandes tamaños, suele ser la solución ideal. Para archivos grandes, externalizarlos en servidores de bajo coste con unidades de disco amplias, y con servidores http ligeros (ie: lighttpd).
  • Se hace load-balancing mediante Squid que a su vez cachea peticiones, en este caso es recomendable redundancia, prescindir de este punto si no es posible usar n+1. No olvidarse del load-balancing (preferiblemente por hardware).
  • En el backend SQL tocará bien usar la filosofía master-slave cuando se usa más de un servidor o usar replicación. De la primera manera en uno se escribirá y en otro se leerá, de la otra todos los cambios se propagarán. Para esto, MySQL Proxy puede servir (aunque todavía no lo he probado personalmente).
También, si es necesario (ya sería demasiado) se podrían implementar servidores memcache para evitar lecturas en la base de datos, pudiendo reducir este cuello de botella a un sólo servidor SQL: memcache es más barato, y por qué no, podría correr en local sobre los servidores apache.

Eso si, nunca viene mal reescribir la aplicación como comenté en otro post muy similar a este pero con un enfoque menos brutal.

No, no lo sé todo

Jueves
01 May 2008

De verdad, estoy hasta las narices de la gente que pregunta. Que si me preguntan cosas de las que sé, vale. Que no me pregunten de mil chorradas de las que soy completamente ajenas.

  • ¿Cómo se dice moco en chino?
  • ¿De qué color es el alce campestre?
  • ¿Como es la panza de las ovejas abejas?
  • ¿Qué beneficios aporta el cultivo transgénico?

O volviendo a la tierra preguntas sobre si tal o tal hosting tiene tal función activada, que qué programa hay que usar para exportar nosequé tipo de cosa, que qué modelo de negocio usaría esta página…

Vale, sé muchas cosas pero no absolutamente todas. Y no preguntéis por obviedades pero tampoco recurráis a mi como un adivino de horizontes insospechables. No he llegado a tal nivel de sabiduría que incluye conocer absolutamente todo y luego contarte. Busca, coño.

Se lo dedico a todos los preguntan (¡un beso a los que preguntan!) esperando que sea su recurso… mágico. Otra vez será, lo siento.

¿En qué quedamos?

Sábado
26 Abr 2008

El plazo que Microsoft daba a Yahoo! para aceptar la oferta o recurrir a métodos más agresivos (AKA OPA hostil HDP monkey ballmer mode) se termina.

Mientras, Yahoo! ha mirado quién da más por ellos y además han sorprendido a los habituales incluyendo publicidad de Google (!) en un porcentaje bastante bajo de búsquedas (cerca de un 3% si mal no recuerdo).

Y Microsoft también intentaba una jugada similar, la de unirse con News Corp, los propietarios también del archiconicido portal MySpace -sí, ese portal horroroso y centro de la mayoría de jóvenes en la red, por suerte algo no muy común en España, UF-.

Yahoo! dice que está abierta a cualquier tipo de ofertas, pero que la oferta de Microsoft le parece demasiado baja. Y teniendo en cuenta que en el caso de producirse una hipotética compra con los precios ofrecidos por Microsoft, el gigante de Redmon se quedaría en pañales - algo no muy bueno teniendo en cuenta la situación económica actual de la empresa, que no va en alza que se diga.

Y lo que se hablaba de OPA agresiva o métodos forzados ya no lo son tantos: ahora dicen de desisitir la compra, pero que no les gustaría hacerlo. Yuju.

¿En qué quedamos?

Basado en hechos reales

Sábado
19 Abr 2008

Vía SoyGik y sacado de “Brandon’s mind“. Realmente merece la pena leerlo aunque esté en inglés (¡vagos!), más después del salto… conversación (geek, cuidado) entre un ordenador, un monitor, un teclado y una impresora. Tengo la sensación de que es más que real…

Leer más »

¿Aplicaciones web o de escritorio?

Viernes
18 Abr 2008

Si ahora citan Word, OpenOffice yo cito Google Docs. Si hablamos del Mail.app o del rudimentario Outlook, la gran mayoría estaría de acuerdo con que ya existe Gmail, que evita intermediarios inútiles. O por ejemplo, el mismísimo blogging: uso WordPress desde el navegador.

Aunque siempre hay discrepancia. En mi caso, aplicaciones de escritorio las mínimas: navegador web, player (iTunes), cliente FTP (para copias, que suelo hacer manualmente — Transmit), editor de código (Coda), Terminal y por último Adium. A esto se le añade también las aplicaciones más especificas de vez en cuando: Zattoo para ver la TV en ciertas ocasiones, VLC para reproducir videos, Skype para charlas, etc.

Por ejemplo, estas aplicaciones difícilmente se pueden sustituir por una en navegador, salvo excepción. Si bien el reproductor MP3 puede ser en flash o tener un cliente IM web –estilo Meebo– las diferencias entre una plataforma y otra son considerables en este caso. No creo que tenga que explicar las diferencias.

Tampoco puedo pasar de este punto y llegar a una conclusión –eso sí, precipitada– sin mencionar eyeOs, un proyecto –made in Spain– de escritorio Web (es decir, desde el navegador) imitando de cierta forma a un entorno actual y con sus distintas aplicaciones, muy potentes también.

Aunque la mayoría de las cosas residen en la integración: Twitter desde IM, edición de texto desde Google Docs, blogging desde WordPress y así una multitud de acciones que se están pasando al lado 2.0 de la utilidad en sí. No editas un documento, editas un fichero –online– con opción de compartirlo: bien internet o tus contactos.

¿Quién dijo que los navegadores no servían para nada? … puesto que hoy en día se puede hacer de todo desde él. Y no os olvidéis de Gtalk en web, que es también 2.0… y muy útil.

Alternativas a los iconos Silk

Sábado
12 Abr 2008

A la hora de hacer un desarrollo -principalmente web- se necesitan iconos para representar las diferentes funciones, enlaces, etc. Además, facilitan el uso de la página.

Hasta ahora se lleva usando Silk la mayoría del tiempo, un gran set de iconos de famfamfam.

Sin embargo, existen multitud de sustitutos para estos iconos, por ejemplo.

- Vaga Icon Set: conjunto de iconos gratuitos bastante buenos, algo escasos (sólo 66) y en formato PNG con fondo transparente.

- ASP.NET Icons: set realizado para una comunidad de desarrolladores de ASP.NET, a parte de eso los iconos son bastante buenos -dentro de lo que cabe-, están en formato GIF con fondo transparente y el conjunto es bastante completo.

- Mini Icons: iconos de la misma persona que hizo los de Silk, esos iconos tan desgastados y tan vistos. Son pequeños, están en formato GIF y tienen fondo transparente. Pocos iconos aunque la variedad es buena. Además, los uso en Linkloo.

Lógicamente también existen otros sets de iconos pero que no he podido analizar aquí -y que nunca he usado-. También me habría interesado probar los iconos Tango, usados en algunos estilos de GNOME. Tango tiene montones de iconos, muy variados y en multitud de tamaños. Stay tunned.

Google App Engine

Sábado
12 Abr 2008

Ya ha hablado un montón de gente sobre este servicio, aún así es algo digno de comentar en este blog (chau, dignidad).

Para quien no esté informado -aún-, Google App Engine es la competencia a los WebServices de Amazon, especialmente al EC2 (elastic computing cloud)

He empezado a probarlo, he desarrollado cuatro chorradas en Python (es decir, lo único que sé hacer) y he probado ejemplos. Muy didáctico.

Aunque lo mejor, pienso, es el respaldo de Google y la posibilidad de usar su plataforma a nivel de desarrollador. Por ejemplo, se pueden desarrollar aplicaciones sin necesidad de escalar en el caso de que crezca, aunque siempre a cambio de depender de Google (y de lo que conlleva, como tener los servidores en USA o ser dependiente de tu cuenta Google, que es un peligro).

Por mi parte la única barrera es la falta de lenguajes adicionales a parte de Python, que si bien Google usa mayoritariamente Python hay otros lenguajes como PHP que sirven para la tarea: Python primero fue lenguaje y luego módulo CGI, PHP fue primero módulo CGI y luego lenguaje.

Y en términos más técnicos lo único malo es en mi caso -también- la falta módulos para buscar en una DB -como search engine- o un acceso root / ssh a la máquina, por lo que en estos aspectos Google App Engine difiere mucho de EC2, donde este último provee maquinas -servidores- elásticos.

El tiempo dirá.

Actualizado

Sábado
05 Abr 2008

El blog se ha ido a tomar por saco durante un rato, aunque ya está de vuelta. De paso he añadido el Smashing Theme de Design Disease y lo he mutilado y traducido rápidamente.

Sin embargo, los uploads no han resistido y han “desaparecido”, más bien por que me los cargué. Esto también demostraría que los RAID no sirven para nada si borras un fichero y quieres recuperarlo. TRUE STORY.

Así que si alguien quiere algo, que lo pida. Que al menos haré el esfuerzo. Y la proxima vez que actualice prometo evitar un error de dedo fatal, como este. AGH.

Meme … y ya está.

Miércoles
02 Abr 2008

Tomo este meme de danisv, que me ha hecho un incoming link … Y es buena gente. Además -espero- que me sirva como excusa para hacer -cuando pueda- la sección “acerca de”… aunque aún queda.

1. Que hora es:
17:09
2. Nombre completo:
Adrián Navarro (y hastá aquí suelo leer)
3. Edad:
Leer más »

Meme, vaya: Plugins WP

Martes
25 Mar 2008

Al menos hay que ser educado, si lo he pedido habrá que contestarlo, también. Que conste que es el primero y tampoco soy un gran aficionado a abrir el panel del blog.

  • wp-cache, para cachear las páginas del blog
  • wp.com stats, para tener stats que nunca miro
  • viper’s quicktags, para meter los videos facilmente - y eso que nunca lo he usado, me sirve para que funcionen los videos introducidos cuando usaba wp.com
  • tiger style, para tener un panel de administración más o menos mono - voy a ir sustituyendolo por algún otro tema de administración
  • technorati reactions (por mi xD), para ver enlaces entrantes de technorati
  • no self pings
  • miniposts (por mi, again)
  • compartelo (share this)
  • akismet
  • cache images
  • dashbar

Y no los he enlazado por que hoy es martes y tengo mi vena vaga.