movinary est une entreprise basée à Berlin en Allemagne, qui propose à ses clients une plate-forme en ligne hébergée sur le cloud permettant de créer des vidéos à partir de photos, puis de les enrichir avec du texte. Grâce à ces vidéos, les clients peuvent présenter de manière unique et personnelle des événements importants, par exemple un mariage, des vacances ou un anniversaire. Chaque vidéo peut être téléchargée immédiatement, ce qui permet aux clients de passer commande dès que la vidéo a été générée.

Maximilian Modl, fondateur et PDG de movinary, explique que « contrairement aux outils vidéo classiques qui sont très complexes, movinary repose sur des principes d'ergonomie de pointe. Le processus de création est donc totalement intuitif. »

Au départ, movinary a été confronté aux mêmes défis que la plupart des services en ligne. L'objectif de l'entreprise était de développer un modèle de fonctionnement évolutif, susceptible de gérer une audience mondiale. Ce modèle nécessitait une configuration simple des serveurs de son site de commerce en ligne (un système de dimensionnement Magento complexe) et des performances élevées en termes de CPU pour le processus de génération des vidéos.

Avant de se tourner vers AWS, l'équipe de movinary a comparé différentes options sur site et solutions d'hébergement dans le cloud. « Nous souhaitions rendre notre service aussi rapide et efficace que possible afin de pouvoir rivaliser avec des services similaires », explique Maximilian Modl. « Il était évident que nous allions devoir faire appel à une solution de cloud computing. »

Pour l'équipe, il était également important de trouver une solution permettant d'utiliser les technologies Web les plus courantes (notamment JavaScript Ajax et Flash) assurant le fonctionnement de movinary.

L'équipe de movinary a décidé dès le début de travailler avec Amazon Web Services (AWS). Leurs besoins :

  • Prise en charge aisée des technologies Web les plus courantes
  • Performances élevées en termes de CPU
  • Haute disponibilité
  • Possibilité de s'adapter à un développement mondial

La sécurité, la confidentialité et la simplicité de configuration constituaient également des critères importants. Selon Maximilian Modl, « avec AWS, nous sommes en mesure de proposer un service permettant aux clients de stocker l'ensemble de leurs vidéos et photos personnelles en toute sécurité. AWS a également répondu à nos besoins en garantissant une configuration simple des serveurs. Le fonctionnement des services, notamment la mise en relation avec Amazon Relational Database Service (Amazon RDS), la configuration d'Amazon Elastic Load Balancing et le mécanisme de dimensionnement, est lui aussi en parfaite adéquation avec le mode de fonctionnement de notre équipe informatique interne, à savoir : débuter modestement, puis évoluer rapidement. »

Le processus de rendu des vidéos personnalisés s'est avéré un peu plus difficile à gérer. En effet, les opérations de rendu requièrent une puissance importante en termes de CPU et doivent s'exécuter le plus rapidement possible.

Aux yeux de movinary, AWS présentait un avantage crucial par rapport aux autres solutions de cloud : la possibilité d'utiliser des technologiques Web courantes telles que PHP, MySQL, Adobe AIR et des serveurs Web Apache, indispensables au fonctionnement de la plate-forme. De plus, la solution AWS permettait de fournir les capacités nécessaires en termes de CPU.

« Pour ce qui est du dimensionnement, le service Amazon Elastic Load Balancer est facile à utiliser et propose des mesures prédéfinies, notamment pour l'utilisation des ressources CPU », affirme Maximilian Modl. « Même si le programme d'équilibrage de charge connaît une défaillance, le dimensionnement peut être réalisé par du personnel n'étant pas spécialisé dans le domaine. Nous pouvons ainsi planifier des campagnes marketing en tablant sur un trafic dense, sans que cela affecte notre équipe de développement Web. »

Maximilian Modl ajoute : « Les instances réservées Amazon Elastic Compute Cloud (Amazon EC2) permettent de parfaitement gérer le trafic régulier, mais aussi les pics de fréquentation. » Movinary compte 3 000 visites par jour en moyenne. En cas de pic de fréquentation (par exemple au lancement de nouvelles campagnes marketing), on peut enregistrer jusqu'à 20 000 utilisateurs créant des vidéos simultanément sur movinary.

L'utilisation d'instances Windows, associées aux ressources de CPU requises, a fourni d'excellents résultats avec le moteur de rendu vidéo personnalisé de movinary. « Nos développeurs conservent une maîtrise totale des serveurs via Secure Shell (SSH) », explique le PDG. « L'infrastructure et les services existants sont faciles à utiliser, ce qui permet de procéder à une configuration à partir d'images prédéfinies en très peu de temps. »

L'équipe de movinary utilise Git pour déployer son code sur le serveur Web. Elle a également créé une image de base d'un serveur Linux destinée à être exécutée en tant que serveur Web Apache. Pendant le processus de démarrage d'une instance, toutes les modifications provenant du référentiel Git sont extraites automatiquement. Si tous les éléments ont été synchronisés, le serveur accepte des requêtes HTTP et est donc disponible pour le programme Elastic Load Balancer. Si le serveur est en cours d'exécution, le référentiel est interrogé toutes les cinq minutes afin d'obtenir les modifications du code.

Le service movinary s'appuie sur différents produits AWS, comme cela est illustré dans les schémas d'architecture suivants.

Movinary Architecture Diagram 1

Illustration 1 : Architecture actuelle du serveur Web de movinary

Movinary Architecture Diagram 2

Illustration 2 : Architecture prévue pour le serveur Web de movinary

movinary-3-arch-diagram

Illustration 3 : Architecture du programme de conversion dans le cloud de movinary

L'équipe de movinary utilise actuellement trois instances Amazon EC2, accueillant respectivement le programme de conversion dans le cloud de la plate-forme, le serveur Web et une base de données. Le programme de conversion dans le cloud lance une instance pour chaque demande de rendu et la ferme lorsqu'il n'y a plus de demande en attente. Le serveur Web de movinary est automatiquement mis à l'échelle en se basant sur l'évolution de la latence. La base de donnée est mise à l'échelle avec des réplicas en lecture, une solution qui fonctionne bien pour les boutiques en ligne qui exécutent beaucoup plus de requêtes en lecture qu'en écriture. A l'heure actuelle, movinary stocke 67 Go d'images, de fichiers PDF et de vidéos dans Amazon Simple Storage Service (Amazon S3) afin de générer les vidéos des utilisateurs, ainsi que des modèles d'images et de vidéos.

Voici quelques informations supplémentaires sur l'utilisation des services AWS par l'équipe de movinary :

  • Amazon CloudWatch est utilisé pour le dimensionnement d'instances Web et l'envoi de notifications par e-mail en cas d'indisponibilité du service.
  • Amazon RDS est utilisé pour les informations de la boutique en ligne.
  • Le moteur de conversion dans le cloud de movinary (un service qui crée des vidéos uniques à partir de photos et de modèles et les génère dans le cloud) s'exécute sur des ordinateurs Windows. Le programme de conversion en lui-même est développé en Flash.
  • Magento est utilisé pour le site Web de movinary, mais aussi en tant que système de commerce électronique (application d'achat), et s'exécute dans l'infrastructure de l'entreprise (Amazon EC2 et Amazon RDS) grâce à l'utilisation de PHP et MySQL.
  • GWT est utilisé pour garantir à l'utilisateur une exécution uniforme du processus de création vidéo.
  • Varnish Cache est utilisé pour mettre en cache le site et offrir un service Web adaptatif aux clients.
  • Un serveur Apache Tomcat est utilisé pour accepter et surveiller les demandes envoyées au programme de conversion dans le cloud.
  • Adobe AIR et Avidemux sont utilisés pour générer les vidéos du client sur le terminal.

Grâce aux services AWS, l'équipe de movinary a pu rapidement se lancer dans la phase de production. « Nous avons commencé sur des ordinateurs locaux et avons été surpris par la facilité avec laquelle nous avons pu faire migrer notre service vers les technologies du cloud AWS », raconte Maximilian Modl. « Les images machine Amazon (AMI) prédéfinies et les programmes d'équilibrage de charge Elastic Load Balancer se sont avérés particulièrement utiles, nous permettant de passer du stade local à la production en un mois. »

L'équipe a également pu améliorer les performances de la plate-forme avec Amazon EC2. « Notre système principal de personnalisation de vidéo nécessite des performances élevées, explique Maximilian Modl Modl, et nous avons été ravis de constater que les instances m1-medium répondaient parfaitement à nos besoins en termes de performances CPU et de mémoire RAM. L'espace disque disponible pour notre instance peut être augmenté en deux clics, ce qui nous permet de gagner beaucoup de temps. »

Pour ce qui est d'Amazon RDS, « AWS gère les sauvegardes et les mises à jour. Le service peut aussi mettre à niveau l'infrastructure de manière semi-automatique. Notre système génère beaucoup plus de demandes en lecture qu'en écriture, ce qui est entièrement pris en charge dans le cadre du dimensionnement opéré par Amazon RDS. »

En hébergeant son service dans le cloud, movinary a choisi une option particulièrement rentable, car l'entreprise peut modifier de façon dynamique les instances qui lui sont attribuées. Elle a ainsi fait le choix d'une solution hautement personnalisable, disponible sur une infrastructure évolutive.

L'équipe de movinary teste actuellement Amazon RDS et Amazon ElastiCache, et envisage d'utiliser Amazon Simple Queue Service (Amazon SQS) pour la gestion de la file d'attente de rendu.

Movinary recommande aux développeurs envisageant de se tourner vers AWS de commencer avec Auto Scaling pour opérer un dimensionnement automatique en fonction de l'utilisation des ressources en CPU. « Une fois que l'on dispose de mesures supplémentaires, il est possible d'optimiser le dimensionnement en choisissant d'autres techniques de mesure et de mise à l'échelle », explique Maximilian Modl. L'équipe a dû procéder à quelques adaptations pour configurer les instances Amazon EC2. De nombreuses images préconfigurées sont disponibles.

L'équipe a également pu constater lors de la configuration des instances Amazon EC2 que de nombreuses images préconfigurées étaient disponibles, qui ne nécessitaient dans le cas présent que quelques adaptations minimes.

Selon le PDG Maximilian Modl, movinary a pris la bonne décision en choisissant AWS dès le départ. « L'offre de services d'AWS est unique, il n'en existe aucun équivalent. »

Pour en savoir plus sur AWS et les applications Web, consultez la page : http://aws.amazon.com/web-mobile-social/.