Ubicada en Berlín (Alemania), Movinary ofrece una plataforma online y hospedada en la cloud que permite que los clientes creen videos a partir de sus fotografías y que los adornen con texto. Con estos videos, los clientes pueden contar historias únicas y personales sobre acontecimientos especiales, como bodas, vacaciones y cumpleaños. Los videos se pueden descargar de forma inmediata, de tal manera que los clientes pueden realizar pedidos justo después de crear el video.

El fundador y director general Maximilian Modl comenta lo siguiente: “Mientras que las herramientas de video clásicas son muy complejas, movinary se basa en directrices de facilidad de uso de última generación. El proceso de creación es completamente intuitivo”.

Inicialmente, movinary encaraba los retos empresariales de forma parecida a muchos servicios online. Querían crear un modelo de negocio escalable con el potencial de servir a un público mundial. Este modelo requería un servidor con una configuración sencilla para su sitio de eCommerce (un sistema Magento de escalado complejo) y una CPU de gran potencia para el proceso de renderización de videos.

Antes de adoptar AWS, el equipo de Movinary buscó comparaciones de opciones on-premise y del hospedaje en la cloud. “Queríamos que nuestro servicio fuese lo más rápido y eficiente posible para competir contra otros servicios parecidos”, comenta Modl. “Estaba claro que íbamos a necesitar la cloud”.

También buscaron una solución que les permitiese utilizar las tecnologías web comunes (como JavaScript Ajax y Flash) en las que se basa movinary.

El equipo de movinary decidió trabajar con Amazon Web Services (AWS) desde el principio. Esto es lo que necesitaban:

  • Fluidez en las tecnologías web comunes
  • Una potencia de CPU abundante
  • Alta disponibilidad
  • Flexibilidad para una expansión global

La seguridad, la privacidad y una fácil instalación fueron otras consideraciones importantes. Modl comenta lo siguiente: “Con AWS, podemos proporcionar un servicio que permite que los clientes almacenen todos sus videos e imágenes personales de forma segura. AWS también satisface nuestras necesidades de una instalación sencilla del servidor. La conexión con Amazon Relational Database Service (Amazon RDS), la configuración de Amazon Elastic Load Balancing y el mecanismo de escalado encajan perfectamente con nuestro mantra de TI: un comienzo pequeño, un escalado rápido”.

La administración de la renderización de videos personalizados fue algo más complicada. La renderización requiere muchísima potencia de la CPU y debe ser lo más rápida posible.

Para movinary, AWS presentaba una mayor ventaja frente a otras soluciones en la cloud: el uso de tecnologías web comunes como los servidores web PHP, MySQL, Adobe AIR y Apache. Esas tecnologías son esenciales para su plataforma. También ofrecía la potencia que necesitaba la CPU.

“En cuanto al servicio de escalado, Amazon Elastic Load Balancer es fácil de utilizar con métricas predefinidas, como el uso de CPU”, señala Modl. “Si el balanceador de carga falla, personas no profesionales pueden seguir realizando el escalado. Eso nos permite planificar campañas de marketing con grandes expectativas de tráfico sin que afecte al equipo de desarrollo web.

“Amazon Elastic Compute Cloud (Amazon EC2) cuenta con instancias reservadas para gestionar un tráfico normal y los picos de tráfico con gran eficacia”, continúa Modl. De media, movinary registra unas 3 000 visitas al día. Durante las horas punta (y durante los lanzamientos de marketing), más de 20 000 usuarios han creado videos de forma simultánea en Movinary.

El uso de instancias de Windows con la potencia de la CPU que necesitaban funcionó bien con su motor de renderización de videos personalizados. “Nuestros desarrolladores cuentan con un control total de los servidores a través de Secure Shell (SSH)”, dice Modl. “La infraestructura y los servicios existentes son fáciles de utilizar, por lo que una instalación con imágenes predefinidas lleva muy poco tiempo”.

El equipo de movinary utiliza Git para implementar su código en el servidor web. El equipo creó una imagen base de un servidor de Linux para que se ejecutase como un servidor web Apache. En el proceso de arranque de una instancia, cualquier cambio realizado desde el repositorio de Git se extraerá automáticamente. Si se sincroniza todo, el servidor acepta solicitudes HTTP, lo que permite que el servidor esté disponible para Elastic Load Balancer. Si se está ejecutando el servidor, el repositorio se sondea automáticamente cada cinco minutos para recibir los cambios en el código.

El servicio de movinary utiliza varios productos de AWS, tal como se muestra en el siguiente diagrama arquitectónico.

Movinary Architecture Diagram 1

Ilustración 1: arquitectura actual del servidor web de movinary

Movinary Architecture Diagram 2

Ilustración 2: arquitectura planificada para el servidor web de movinary

movinary-3-arch-diagram

Ilustración 3: arquitectura del renderizador en la cloud de movinary

El equipo de movinary utiliza tres instancias de Amazon EC2: una para el renderizador en la cloud del equipo, una para el servidor web y otra para la base de datos. El renderizador en la cloud inicia una instancia por cada solicitud de renderización y cierra una instancia si no hay más solicitudes de renderización en la cola. El servidor web de movinary se escala automáticamente (en función de la latencia) y la base de datos se escala con las réplicas leídas, lo que resulta muy útil para las tiendas web en las que se ejecutan muchas más solicitudes de lectura que de escritura. Actualmente, Movinary almacena 67 GB de imágenes, PDF y videos en Amazon Simple Storage Service (Amazon S3) para los videos, imágenes y plantillas de video de los usuarios.

A continuación encontrará más información sobre cómo el equipo de movinary utiliza los productos de AWS.

  • Amazon CloudWatch se utiliza para escalar instancias web y enviar notificaciones a través del email si no se puede obtener acceso al servicio.
  • Amazon RDS se utiliza para la información de las tiendas online.
  • El motor de renderización en la cloud de movinary (un servicio que crea un video individual a partir de fotografías y plantillas, renderizado en la cloud) se ejecuta en equipos Windows. El renderizador está escrito en Flash.
  • Magento se utiliza tanto para el sitio web de movinary como para el sistema de eCommerce (la aplicación de compra), para lo que es necesario que se ejecuten PHP y MySQL en la infraestructura de la empresa (Amazon EC2 y Amazon RDS).
  • GWT se utiliza para proporcionar una experiencia sin interrupciones durante el proceso de creación de videos.
  • Varnish Cache se utiliza para almacenar el sitio y proporcionar a los clientes un servicio web receptivo.
  • Se utiliza un servidor Apache Tomcat para aceptar y monitorizar solicitudes realizadas al representador en la cloud.
  • Adobe AIR y Avidemux se utilizan para renderizar los videos de los clientes en la etapa final.

El uso de AWS permitió al equipo de movinary avanzar hacia la producción con rapidez. “Empezamos con equipos locales y nos sorprendió la facilidad con la que podríamos trasladar nuestro servicio a la tecnología de AWS Cloud”, declara Modl. “En particular, las imágenes de máquina de Amazon (AMI) y Elastic Load Balancer nos ayudaron a pasar del nivel local al nivel de producción en un mes”.

El equipo también mejoró el desempeño con Amazon EC2. “La etapa final de personalización de videos requiere un elevado desempeño”, dice Modl. “Nos encantó descubrir que las instancias m1-medium coincidían a la perfección con nuestras necesidades de desempeño de la CPU y RAM. Poder aumentar la cantidad de espacio en el disco en nuestra instancia con un par de clics ahorra mucho tiempo”.

En cuanto a Amazon RDS, esto es lo que comenta Modl: “AWS administra los backups y las actualizaciones. También escala la infraestructura semiautomáticamente. Nuestro sistema genera muchas más solicitudes de lectura que de escritura, lo que es compatible con el escalado que ofrece Amazon RDS”.

Hospedar su servicio en la cloud demostró ser más rentable, ya que permitió que movinary cambiara las instancias asignadas de forma dinámica. La estructura permite que exista una solución altamente personalizable en una infraestructura escalable.

Actualmente, el equipo de movinary está evaluando Amazon RDS y Amazon ElastiCache y podría utilizar Amazon Simple Queue Service (Amazon SQS) para administrar la cola de renderización.

Para otros desarrolladores que estén pensando en utilizar AWS, movinary recomienda empezar con un escalado automático basado en el uso de CPU. “Tras recopilar métricas adicionales, se puede mejorar el escalado mediante la selección de otras técnicas de medición y escalado”, señala Modl. El equipo tuvo que realizar algunas modificaciones para configurar las instancias de Amazon EC2. Hay varias imágenes preconfiguradas disponibles.

El equipo también descubrió que, para configurar las instancias de Amazon EC2, hay varias imágenes preconfiguradas disponibles, lo que, para ellos, solo suponía cierta reelaboración.

Según Modl, la decisión de utilizar AWS fue un acierto desde el principio. “Lo que ofrece AWS no tiene comparación“.

Para obtener más información sobre AWS y las aplicaciones web, consulte http://aws.amazon.com/es/web-mobile-social/.