Comunidad de diseño web y desarrollo en internet

Servidores multiusuario: Flash Media Server vs Red5 vs Wowza

Aquí analizaré los principales servidores multiusuario y de streaming que existen para Flash, Flex y Actionscript: Flash Media Server, Red5 y Wowza. He tenido la suerte de trabajar con ellos y quería dejarles mis 2 centavos.

Antes que nada aclarar que cualquiera de los 3 puede hacer perfectamente el trabajo, así que la decisión no es fácil y va mucho en los detalles. Toda esta discusión se dio por la elección de servidores de dotGaia Fleets.

Red5, Open Source, gratis, Java



Red5 tiene un punto inigualable: es gratuito y open source. Eso lo hace el candidato ideal para cualquier proyecto que arranca y para hacer pruebas. Lo he usado en broadcast y como socket server bastante bien, pero he tenido problemas reiterados de desfase de audio cuando grabo video. Otro problema es la falta de documentación y ejemplos. Si rulan por los tutoriales cubre todo lo básico, pero en contextos mas complejos hay que empezar a pelar código fuente (en Java, claro).

Hay unas cuantas herramientitas, recuerdo un panel y un debugger parecidos a los de Flash Media Server (FMS) que se conseguían por allí y que andaban decentemente. Otro problema para mi fue el hosting y donde se achica más la oferta si necesitan un entorno escalable, porque la mayoría de los Content Delivery Network (CDN) trabajan con Wowza o FMS, pero bastante poco con Red5.

Esto porque se complica dar soporte (y los tres, cuando hay mucha guerra, petan). No digo que no existan hosting basados en Red5, pero a la hora de escalar cualquier multiusuario, los costos de licencia se minimizan en la ecuación de lo que se come la torta es la transferencia y distribución.

Wowza, heredero de Flash Media Server



Wowza es un intermedio, lo hizo gente del team de Adobe FMS que se abrió por su cuenta y también usa Java del lado servidor. En esto es similar a Red5 y hay que tener en cuenta una cosa: hay que reiniciar cada vez que se sube (o parchea) un módulo. En Wowza se hace a nivel de aplicación sin problema, pero creo que con Red5 tenía que reiniciar el servidor entero (aclaración: puede que en este último año Red5 haya cambiado, es el que mas tiempo llevo sin usar).

No es gran problema en etapa de desarrollo (si no se olvidan de darle un handler a la desconexión y reciben llamadas furiosas de QA's con pantalla congelada, jeje) pero tiene cierta lentitud como proceso, si han trabajado con servlets de java sabrán lo que les digo.

Wowza tiene ventajas interesantes para broadcast de audio y video. Por ejemplo unos settings de calidad que pones en el XML de una forma tan fácil que creo que lo haría mi tía. La documentación está mucho mas completa y centralizada, y en el foro se pueden encontrar ejemplos bastante mas allá de los banales, con gente experimentada en situaciones mas complejas (que me salvó la vida, gracias).

Hace unos meses Amazon sacó un servicio de CDN con Wowza que factura por transferencia (a partir de un mínimo) bastante interesante que prometía ser la panacea de mis necesidades porque era muy asequible, pero no permite subir y distribuir módulos personalizados. Todo mi gozo en un pozo. De todas formas, se puede usar una estructura híbrida en la que un servidor haga la capa de negocios, usando esta red para streaming puro y duro.

Aunque realmente sí es necesario, porque usar simplemente la nube de Amazon para tirar de archivos estáticos es por lejos lo mas barato.

Flash Media Server de Adobe, el oficial



Y finalmente (para que negarlo) mi favorito, Flash Media Server. La opción de la que todo el mundo huye tildándola de cara. Debo decir que sin duda es el mas caro en cuanto a licencia (unos US$4000 para una licencia pro la última vez que lo averigué) ¿Pero acaso quieren instalarlo en un servidor propio?

Aquí está la diferencia en la ecuación: Si quieren hacer un hosting propio (es decir colocar su propio servidor en un NOC) entonces la licencia es ruinosa, pero si lo piensan mejor y eligen cualquiera de las CDN del mercado entonces no hace falta mucha calculadora para darse cuenta que la transferencia y disponibilidad se lleva la parte del león, y allí las diferencias tienden a achicarse. Oferta confiable sobre Red5 (estoy hablando a nivel empresarial) desconozco, la mayoría está sobre FMS y varias con Wowza que tiene variantes de precio interesantes.

Tiro algunos números más de Flash Media Server, porque creo que ese es el punto más discutido. Un hosting de desarrollo (10 usuarios, transferencia limitado, apto para demos a clientes o ping-pong entre desarrolladores) unos US$10 al mes. Uno que se la banque, entre US$100 y US$300 mensual dependiendo de la oferta de distribución.

Me baso en Influxis que es donde tengo últimamente las cosas. Hay redes similares como VitalStream o redes más caras y muy fiables como Akamai. En la web de Stefan Richter con el que tuve la suerte de trabajar, encuentran un listado bastante completo de hosting no sólo FMS.

Si se desarrollan cosas como un juegos, la latencia marca diferencias haciendo inviable un juego que se salga de cierto umbral.

Donde aprender más de servidores multiusuario y de streaming para Flash


En "Programming Flash Communication Server" se encuentra impresionante cantidad de documentación junto al mejor libro que se haya escrito jamás sobre streaming/multiusuario en Flash. También un par de pequeños frameworks dando vuelta para el lado de servidor y los peores componentes nunca vistos (jeje, nobleza obliga).

Tip para arquitectos: Con una adecuada encapsulación de la lógica multiusuario (dígase buen proxy) se puede mover de uno en otro con poco pánico.

Otro tip: Hay que evaluar si el streaming de video es realmente necesario en un proyecto (porque es de lejos lo mas caro) y si no, se puede usar una estructura híbrida (servidor multiusuario + pseudostreaming con archivos estáticos y servidor HTTP).

Espero haber aportado a la discusión. Lamento mucho no haberme sumado al equipo de dotGaia Fleets, pero estoy trabajando desde hace unos 6 meses para Electronic Arts (via consultora, no existe el trabajo para esos monstruos como freelance) a un ritmo casi vertiginoso y dudo mucho de mi disponibilidad.

Just my 2 cents.
Jorge (@solisarg)

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate