How to deploy Meteor on Amazon EC2

Update – April 19, 2012: I’ve reworked this post into a new, improved remote deploy script for Meteor, named Meteoric. You can read about it and install it from Github and soon in the Meteor Book.

Meteor is an ambitious open source real-time Web framework, based on Node.js and MongoDB.

Meteor hit version 0.5 a week ago and some people are starting to use it for production apps. Telescope and Sidebar are examples of such apps that were recently launched (both were created by Sacha Greif). However, the hosting options for production-ready Meteor apps are still limited, with most people opting to host their apps on Meteor’s own hosting platform *.meteor.com, or on Heroku.

Performance-wise, as Meteor apps generate lots of real-time data exchange between server and clients, we’re still in a bit of a grey area. I thought it would be interesting to deploy a Meteor app on EC2 and test the app’s performance. So here’s how you can deploy a Meteor app on EC2:

  1. Launch a 64-bits EC2 instance.
    I launched a Medium instance running Ubuntu Server 12.04.1, the latest Long-Term Support release of Ubuntu Server. Then connect to your instance in the usual way.
  2. Install Node and npm:

     
    sudo apt-get install python-software-properties 
    sudo add-apt-repository ppa:chris-lea/node.js 
    sudo apt-get update 
    sudo apt-get install nodejs npm
    
  3. Install Meteor
    curl https://install.meteor.com | /bin/sh
  4. Install MongoDB:
    sudo apt-get install mongodb
  5. Checkout your Git repo. At that point, you can install git (apt-get install git) and clone your Meteor app’s repository (for example for a Github repo: git clone https://github.com/SachaG/Telescope.git), for example in /home/meteor.
  6. Bundle your app. This is where it gets a bit trickier. You have to bundle your Meteor app, i.e. according to the canonical documentation : “generate a fully-contained Node.js application in the form of a tarball”. As you’re running the Node app on this very server, you don’t have to upload the tarball anywhere however – you just have to untar it there (it would actually be handy to be able to “bundle as a directory, not a tarball”).
     
    cd mymeteorapp 
    meteor bundle bundle.tgz 
    tar -zxvf bundle.tgz 
    
  7. Run the app. At this point you have your bundled Node.js app in the bundle/ directory, and you’ll run it as any Node server. In particular, if you want your app to be accessible via HTTP you need to specify port 80. You also need to specify your MongoDB installation’s location, and you may have to specify your app’s ROOT_URL as well.
    
    PORT=80 MONGO_URL=mongodb://localhost:27017/sidebar ROOT_URL=http://ec2-23-20-113-59.compute-1.amazonaws.com/ node bundle/main.js
    

Optional:

  1. Install meteorite (a package manager for Meteor) if your Meteor app requires it:
    npm install -g meteorite  

    Then you can just replace every meteor call with Meteorite’s command line, mrt (mrt bundle, etc.)

  2. If you want your server to not terminate when you close your connection to your server, you can use nohup:
     
    PORT=80 MONGO_URL=mongodb://localhost:27017/sidebar ROOT_URL=http://ec2-23-20-113-59.compute-1.amazonaws.com/ nohup node bundle/main.js &
    

    Of course, you can use less basic “daemonizing tools”, like Forever (Node) or monit.

  3. If you want to import a dump of your MongoDB data (say from Heroku): your dump is most probably in BSON form, so you should do:
    mongorestore --db yourmeteorapp dump/

EC2 Meteor Community AMI

Here’s an Ubuntu-based Meteor AMI if you need one: Meteor Community AMI.

If you liked this article, feel free to comment on Hacker News!

Le PDF du livre en téléchargement gratuit

Le PDF du livre est désormais en téléchargement gratuit sur Productism : http://productism.com/product/2953801200-social-commerce

Productism (ma startup donc) est un site social où les utilisateurs (il faut Facebook ou Twitter pour s’inscrire) commentent et se recommandent des produits. Donc n’hésitez pas à commenter le livre directement sur Productism 🙂

[Présentation] L’architecture du Web social en e-commerce

Une lecture très intéressante sur le Social commerce : Marcel Weiss, de l’excellent blog allemand Exciting Commerce, décrit dans les slides ci-dessous comment les principaux paradigmes d’interaction du Web social sont de plus en plus utilisés en e-commerce :

  • The Follower Principle : les relations sociales asymétriques (comme sur Twitter) sont très adaptées au e-commerce (les liens sont plus “faibles” que de vrais liens d’amitié
  • The Stream : un flux temps-réel d’événement
  • The One Click Gesture : la plus petite unité de participation online (le bouton Like par exemple)
  • Share Connection to other web services : la possibilité de connecter son application aux autres réseaux sociaux pour en augmenter la distribution

On est en train de mettre en place tous ces principes dans ma nouvelle startup, Productism !

J-7 avant E-Commerce One to One Monaco

Je serai les 17 et 18 mars (jeudi et vendredi prochain) à la première édition de l’événement E-Commerce One to One Monaco, le nouvel événement d’E-Business, les organisateurs (entre autres) des salons E-commerce et E-marketing Paris.

Le lien Plancast de l’événement : http://plancast.com/p/4cqh

Le concept de E-Commerce One to One Monaco est un peu différent de E-Commerce et E-Marketing Paris : c’est plutôt un rendez-vous d’affaires entre décideurs e-commerce et prestataires techniques et marketing.

J’aurai le plaisir d’animer la table ronde du 18 sur le Social commerce, avec des représentants d’Altics, d’Antidot, de LaSer, d’eCircle et de Neolane. Voilà le brief que j’ai préparé pour ma présentation :

Les opportunités du Social commerce pour les e-commerçants

Le Social commerce est incontournable en 2011, parce que plus que jamais les consommateurs sont connectés et échangent sur les produits et services qu’ils ont acheté ou ont envie d’acheter. L’acte d’achat en ligne est devenu intrinsèquement social — le consommateur est extrêmement influencé (dans le bon sens du terme) par ses amis et les amis de ses amis.

2010 a vu la croissance très forte de “startups” de Social commerce, comme Groupon (achat “groupé” se propageant de manière quasi virale sur les réseaux sociaux), Etsy (“eBay de l’artisanat”), et de nombreuses autres un peu moins connues mais révélatrices de l’évolution des usages, comme Blippy (partager automatiquement tous ses achats avec ses amis…) ou Polyvore (appli permettant à ses utilisateurs de créer des collages de photos de vêtements ou d’objets de “stars”, collages que l’utilisateur peut ensuite diffuser à l’ensemble de son réseau, et qui sont associés à des liens vers des sites marchands).

Mais le Social commerce n’est pas uniquement (loin de là) une opportunité pour les startups, c’est aussi une opportunité géante pour les e-commerçants eux mêmes. En diffusant mieux leurs produits et leurs offres “sur”, ou plutôt “via”, les réseaux sociaux, les marchands peuvent réellement faire exploser la visibilité de leurs produits. Il y a autant de manières pour les e-commerçants de faire du Social commerce que de startups et de nouveaux services sur le sujet :

Les offres promotionnelles peuvent devenir quasi-virales, les commerçants peuvent ouvrir une boutique sur Facebook, etc. Ou alors ils peuvent interfacer leur boutique avec les réseaux sociaux (via les API Facebook et Open Graph Protocol par exemple). De nouveaux mécanismes d’interaction comme le bouton Like peuvent permettre de décupler la visibilité et le “référencement social” des produits. Les marchands peuvent aussi devenir leur propre réseau social, en créant des “pages profil” de leurs consommateurs (ceux qui le souhaitent) avec des flux d’activités, des commentaires, etc. ce qui augmente aussi la fidélité du client.

En allant plus loin, les marchands pourraient eux-mêmes devenir des plateformes applicatives à la Facebook ou Twitter (ce que l’on pourrait appeller “Merchant as a Platform”) : en fournissant des API d’accès à leurs données (sur les produits, sur leurs clients, etc.), les e-commerçants pourraient créer autour d’eux des écosystèmes de développeurs d’application tierces, que le consommateur pourrait utiliser pour améliorer son expérience (exemples de Netflix ou d’Amazon) et notamment pour la rendre encore plus sociale.

P.S. : Si vous êtes e-marchand ou décideur e-commerce, rapprochez vous d’ingrid@comexposium.com pour participer.

[Compte-rendu] Session “Social commerce” du Social media club, 10 février 2011

La synthèse de la session publique “Social commerce” du Social media club, que j’ai eu le plaisir d’animer à la Cantine jeudi dernier, est en ligne ici — Merci Damien pour cette synthèse complète et fidèle !

Quelques morceaux choisis ci-dessous :

Des acteurs comme Blippy se positionnent sur d’autres leviers d’engagement des audiences en se définissant comme réseaux sociaux de publication des achats […]. Ici, c’est dans le partage qu’il y a du social. Chez Etsy en revanche, c’est dans la relation avec le vendeur qu’on retrouve du social. Etsy est en effet un service qui peut se définir comme le EBay des produits artisanaux où l’acheteur et le vendeur entretiennent des relations sociales dans une logique de commerce de pair à pair.

Enfin, des start-ups plus petites proposent elles aussi des modèles originaux alliant ludique et logique de recommandation. C’est le cas de Polyvore qui propose à ses utilisateurs de créer des collages à partir de photos de vêtements ou d’objets, collage que l’utilisateur peut ensuite diffuser à l’ensemble de son réseau, collages bien sûr associés à des liens vers des sites marchands. Ici, l’acte d’achat et le produit sont définis par le service comme des objets de discussion.

La suite sur le site du Social media club.

Réflexions post-salon E-Marketing 2011 : vers une affiliation plus moderne ?

Le salon E-Marketing 2011 s’est tenu à Paris hier et avant-hier. C’est un gros succès avec d’année en année, toujours plus de stands et de visiteurs.

L’occasion aussi de discuter d’affiliation avec des représentants des grosses plateformes (Zanox, Tradedoubler, etc.), mais aussi au hasard des rencontres, avec quelques éditeurs, et même quelques annonceurs 😉
Avec également une conférence d’introduction au sujet de très bonne qualité par Michel Racat de Beezup (un “dashboard” d’affiliation pour les marchands).

La plupart des services Social commerce (hors ceux mis en place par les marchands eux-mêmes) reposent sur le modèle économique de la publicité en ligne et plus spécifiquement (pour une bonne partie d’entre eux) sur l’affiliation. C’est vrai pour les services de communautés de shopping (Polyvore, qui permet de faire un “collage” de mes vêtements préférés et de le partager avec mes amis — avec des liens vers les marchands qui vendent le produit), pour les services de partage d’achat (Blippy, Appsfire pour les applications iPhone, etc.), et même, conceptuellement, pour les sites de daily deals à la Groupon (c’est bien de la publicité à la performance puisque le commerçant “paye” Groupon au nombre de clients qui vont effectivement venir chez lui — la question de la fidélité de ces clients étant un autre sujet).

Bonne nouvelle donc, l’affiliation marche très fort : les derniers chiffres du SRI (Syndicat des Régies Internet) et de l’Observatoire de l’e-pub, présentés lors du salon, font état d’une croissance 2010 sur le marché français de 15% sur l’affiliation à 180 M€, de 19% sur les comparateurs de prix (principalement de l’affiliation), et également une croissance sur le segment “à la performance” du display (Pourquoi les bannières à la performance et la partie affiliation des comparateurs de prix ne sont pas dans “Affiliation” ? Mystère méthodologique. Si vous avez la réponse dites-le moi ;)).

Le CPA (Collectif des plateformes d’affiliation), l’association professionnelle des plateformes, présente aussi aujourd’hui son bilan de l’affiliation 2010 qui donne tout un tas de chiffres en croissance, ce qui est très encourageant (Le CPA regroupe comme nous sous le terme “Affiliation” tous les segments à la performance, ce qui donne un total de 20% des dépenses publicitaires en ligne).

La slide sur les attentes des éditeurs est particulièrement révélatrice et confirme les discussions que j’ai pu avoir dans les couloirs du salon : il y a quand même aujourd’hui des limites assez contraignantes dans la mesure de la performance publicitaire. En effet, le fondement technologique de l’affiliation (le cookie) ne permet que des trackings assez simplistes :

  • dans la plupart des cas, le dernier affilié à “placer son cookie” est celui qui remporte 100% de la commission d’affiliation, même si c’est l’affilié précédent qui avait “convaincu” le consommateur sur son intention d’achat (ce dernier voit dans son interface une “annulation de vente” ou une “déduplication”).
  • Certains éditeurs (les très gros) parviennent néanmoins à négocier des règles de priorité de cookies, c’est-à-dire que leur cookie remporte 100% de la commission même s’il n’est pas le dernier.
  • Enfin, les services de retargeting (Criteo, NextPerformance, etc.) “raflent”, par construction (puisqu’ils sont présents lorsque le consommateur n’est plus en phase active de prospection d’achat), de nombreuses commissions d’affiliation aux autres affiliés.

Est-ce qu’on ne pourrait pas imaginer des technos plus poussées que les cookies d’affiliation actuels pour quantifier plus finement, la “part de responsabilité” de chaque affilié dans la vente d’un produit à un consommateur (et donc le rémunérer en proportion) ? Est-ce que l’on ne bénéficierait pas (éditeurs, annonceurs et plateformes) d’une transparence accrue sur la mesure de la performance ?

Qu’en pensez-vous ?