Ver Mensaje Individual
  #12  
Antiguo 30-04-2010
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.918
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Algo de lo que no hablas es cuantos accesos concurrentes hay, cuales son los parametros de confiabilidad y tiempo en linea y como rayos se manejaran los backups!

Puedes leer algo general sobre hacer aplicaciones escalables y robustas aqui:

http://www.slideshare.net/mmalone/sc...django-1393282

(Es en django, que es lo que recomendaria pa usar: PHP es como usar C++, con la legibilidad del PERL... pero bueno son lecciones que se pueden aplicar a lo que sea, esta desactualizado en cuanto no hay nada maduro en Nosql, ahora SI).

Con respecto a lo de las imagenes, la mejor explicacion sobre este tema y todos los demas la vi aqui:

http://www.slideshare.net/fbrunel/ja...rlin-sept-2007

(Es una presentacion larga pero ponle mucho cuidado a donde arranca en "Pay attention in how you store the files" y muestra las diferentes estrategias.)

Yo hosteo en www.joyent.com y me ha ido bien, y esta gentes es muy experta en estos temas. Valdria la pena que tal como recomiendan en la presentacion, evaluaras opensolaris/zfs/zones como infraestructura....

El manejo de los archivos, si terminan siendo masivos, depende mucho de que tan bueno sea el array de almacenamiento en red. Otra alternativa, es no usar un BD relacional sino una NOSQL (ya te mencionaron algunas) pero estoy usando MongoDB con GridFS (http://api.mongodb.org/python/1.4%2B...dfs/index.html) que es su API para almacenamiento MASIVO y GRANDE de archivos. Mongo hace backuos en caliente, o mejor dicho, prendes otro servidor, lo metes en la lista, se sincroniza y apagas. Tambien hay un metodo de hacer backup de forma tradicional.

Es muy bueno! Pero el chiste en este caso es que tengas al MENOS 2 servidores que se repliquen entre si (Mongo es muy != a BD relacionales, replicacion es algo natural y sin lios).

AL usar Mongo, no hay problemas de como rayos almacenes los archivos. Y NO TIENES QUE ABANDONAR LA BD. Puedes acceder a la BD de mongo usando cualquier driver (hay para python, php, .net, etc) para el manejo de archivos y la BD pa lo demas.

Mongo es lo que usa SourceForge. Una unica advertencias: Mongo en un solo servidor no es "confiable" en el sentido que se pueden perder datos si hay un crash (=MySql sin transacciones). Los desarrolladores de Mongo apuntan a que la unica forma confiable es federar los datos, y en cierta forma tienen razon.

Lo que me lleva a que me parece MUY mala idea hostiar "en casa". Como muestra la presentacion de joyent, hay tantas cosas que hay que hacer bien que me parece mejor usar un proveedor externo (amazon, joyent, mediatemple, etc...). De lo contrario, buenas UPS, servidores redundantes, buen sistema de almacenamiento en RAID (o mejor aun: Solaris+ZFS).

La BD? Pa lo que mencionas cualquiera daria la talla, excepto por lo de los archivos. Hay o Mongo o ZFS u otro sistema de archivos robusto + estrategia de almacenamiento.

Prueba ademas, usar Cherokee (mas rapido que apache) y/o nginx (mas veloz para servir archivos estaticos. Si no tienes una carga alta por segundo, con cherokee creo que matas todo de un solo tiro.

http://www.cherokee-project.com/doc/ Muestra que tienes proxy reversos, balanceos, modulo para generar links a archivos temporales (lo que impide el lio que menciona roman) y mas cosas con lo que 1 solo servidor te cubre como a 5.

Una BUENA aplicacion web, usa URLS que no estan ligadas al sistema de archivos (o url limpias o bonitas como le llaman). Con django/rails es lo normal que las URLs representen el mapeo a las vistas asi que no hay nada de eso de usar .htacces y cosas asi raras (y es comun usar un servidor web independiente, no apache, para servir archivos).
__________________
El malabarista.
Responder Con Cita