Déploiement

Aparté 2.5

Traduction complétée à

Au programme de ce chapitre :

  • Apprendre comment déployer sur Meteor.com.
  • Apprendre comment déployer sur Modulus.
  • Apprendre comment déployer sur votre propre serveur en utilisant Meteor Up.
  • Certaines personnes aiment travailler tranquillement sur un projet jusqu'à ce qu'il soit parfait, tandis que d'autres ne peuvent pas attendre de le montrer au monde le plus tôt possible.

    Si vous êtes le premier type de personne et que vous préférez plutôt développer en local pour l'instant, vous êtes libre de sauter ce chapitre. D'un autre côté, si vous voulez prendre un peu de temps pour apprendre comment déployer votre application Meteor en ligne, nous avons ce qu'il vous faut.

    Nous allons apprendre comment déployer une application Meteor de plusieurs façons. Vous êtes libres d'utiliser chacune d'elles à n'importe quelle étape de votre processus de développement si vous travaillez sur Microscope ou une autre application Meteor. Allons-y !

    Présentation des Sidebars

    Ceci est un chapitre sidebar (aparté), les Sidebars donnent une vision approfondie sur des sujets concernant Meteor, indépendamment du reste du livre.

    Donc si vous préférez plutôt continuer à travailler sur Microscope, vous pouvez le sauter sans problème maintenant et y revenir plus tard.

    Déployer sur Meteor

    Déployer sur un sous-domaine Meteor (i.e. http://myapp.meteor.com) est l'option la plus simple et la première que nous testerons. Ça peut être utile pour présenter votre application dans ses premiers jours, ou de mettre en place rapidement un serveur de test.

    Déployer sur Meteor est simple. Ouvrez juste votre terminal allez dans le répertoire de votre application Meteor et tapez :

    meteor deploy myapp.meteor.com
    

    Bien sûr, vous devrez faire attention à remplacer “myapp” avec un nom de votre choix, de préférence un qui n'est pas déjà utilisé.

    Si c'est votre premier déploiement d'application, il vous sera demandé de créer un compte Meteor. Et si tout va bien après quelques secondes vous serez capable d'accéder à votre application à l'adresse http://myapp.meteor.com.

    Vous pouvez vous référer à la documentation officielle pour plus d'informations sur des choses comme accéder directement à la base de données de votre instance hébergée ou configurer un domaine personnalisé pour votre application.

    Déployer sur Modulus

    Modulus est une bonne option pour déployer des applications Node.js. C'est un des fournisseurs PaaS (platform-as-a-service) qui supporte officiellement Meteor, et il y a déjà quelques personnes qui exécutent des applications Meteor en production dessus.

    Vous pouvez en apprendre plus à propos de Modulus en lisant leur guide de déploiement pour application Meteor.

    Meteor Up

    Bien que de nouvelles solutions de cloud apparaissent chaque jour, elles viennent toujours avec leurs lots de problèmes et de limitations. Donc aujourd’hui, déployer sur votre propre serveur reste le meilleur moyen de mettre votre application Meteor en production. La seule chose est que déployer vous-même n'est pas si simple, surtout si vous recherchez un déploiement en production de qualité.

    Meteor Up (ou mup de son petit nom) est une autre tentative de solution à ce problème, avec un outil en ligne de commande qui s'occupe de la configuration et du déploiement pour vous. Regardons comment déployer Microscope en utilisant Meteor Up.

    Avant tout autre chose, nous aurons besoin d'un serveur. Nous recommandons Digital Ocean, qui démarre à 5$ par mois, ou AWS, qui fournit des Micro instances gratuitement (vous aurez rapidement des problèmes de scalabilité, mais si vous cherchez juste un terrain de jeu Meteor Up devrait être suffisant).

    Quel que soit le service que vous choisissez, vous obtiendrez trois choses : l'adresse IP de votre serveur, un login (habituellement root ou ubuntu), et un mot de passe. Gardez-les de côté, nous en aurons bientôt besoin !

    Initialiser Meteor Up

    Pour démarrer, nous aurons besoin d'installer Meteor Up via npm comme suit :

    npm install -g mup
    

    Nous allons créer ensuite un répertoire séparé, spécial qui contiendra vos configurations Meteor Up pour un déploiement particulier. Nous utilisons un répertoire séparé pour deux raisons : c'est mieux d'éviter d'inclure des données privées dans votre dépôt Git, spécialement si vous travaillez sur du code public.

    Deuxièmement, en utilisant plusieurs répertoires séparés, nous serons capables de gérer plusieurs configurations Meteor Up en parallèle. Ça sera très pratique pour déployer des instances de production et de tests par exemple.

    Créons ce nouveau répertoire et utilisons le pour initialiser un nouveau projet Meteor Up :

    mkdir ~/microscope-deploy
    cd ~/microscope-deploy
    mup init
    

    Partage avec Dropbox

    Un bon moyen de s'assurer que vous et votre équipe utilise les mêmes configurations de déploiement est simplement de créer un dossier de configuration Meteor Up dans votre Dropbox, ou un service similaire.

    Configuration Meteor Up

    Quand on initialise un nouveau projet, Meteor Up va créer deux fichiers pour vous : mup.json et settings.json.

    mup.json gardera toutes vos configurations relatives au déploiement, pendant que settings.json contiendra toutes les configurations relatives à l'application (jetons OAuth, jetons analytics, etc.).

    L'étape suivante est de configurer votre fichier mup.json. Voici le fichier mup.json par défaut généré par mup init, et tout ce que vous avez à faire est de remplir les blancs :

    {
      //info d'authentication serveur
      "servers": [{
        "host": "hostname",
        "username": "root",
        "password": "password"
        //ou fichier pem (authentification basée sur ssh)
        //"pem": "~/.ssh/id_rsa"
      }],
    
      //installer MongoDB sur le serveur
      "setupMongo": true,
    
      //chemin de l'application (répertoire local)
      "app": "/path/to/the/app",
    
      //configuration environnementale
      "env": {
        "ROOT_URL": "http://supersite.com"
      }
    }
    
    mup.json

    Traversons chacune de ces configurations.

    Server Authentication

    Vous noterez que Meteor Up supporte l'authentification par clés privées et basées sur des mots de passe (PEM), donc il peut être utilisé avec la plupart des fournisseur de cloud.

    Note importante : Si vous choisissez d'utiliser l'authentification par mot de passe, assurez-vous d'avoir installé sshpass au préalable (référez-vous à ce guide).

    Configuration MongoDB

    L'étape suivante est de configurer une base de données MongoDB pour votre application. Nous vous recommandons d'utiliser Compose ou n'importe quel autre fournisseur de cloud MongoDB car ils offrent un support professionnel et de meilleurs outils de gestion.

    Si vous avez décidé d'utiliser Compose, mettez setupMongo à false et ajoutez la variable d'environnement MONGO_URL dans le bloc env de mup.Json. Si vous décidez d'héberger MongoDB avec Meteor Up, mettez juste setupMongo à true et Meteor Up s'occupera du reste.

    Chemin de l'application Meteor

    Maintenant que notre configuration Meteor Up a pris vie dans un répertoire différent, nous allons avoir besoin de faire pointer Meteor Up vers notre application en utilisant la propriété app. Entrez juste votre chemin local complet, que vous pouvez trouver en utilisant la commande pwd dans le terminal quand vous êtes placé dans votre répertoire.

    Variables d'environnement

    Vous pouvez spécifier toutes les variables d'environnement de votre application (telles que ROOT_URL, MAIL_URL, MONGO_URL, etc.) à l'intérieur du bloc env.

    Configurer et déployer

    Avant qu'on puisse déployer nous allons avoir besoin de configurer le serveur pour qu'il puisse héberger des applications Meteor. La magie de Meteor Up encapsule ce processus complexe dans une seule commande !

    mup setup
    

    Ça va prendre quelques minutes en fonction de la performance du serveur et de la connectivité réseau. Après le succès de l'installation, vous pouvez finalement déployer votre application avec :

    mup deploy
    

    Ça va compacter votre application Meteor, et la déployer sur le serveur que nous venons de mettre en place.

    Afficher les journaux

    Les journaux sont importants et Meteor Up fournit un moyen très facile de les manipuler en émulant la commande tail -f. Tapez juste :

    mup logs -f
    

    Ça vous donne une vue d'ensemble des capacités de Meteor Up. Pour plus d'informations, nous vous suggérons de visiter le dépôt Github de Meteor Up.

    Ces trois façons de déployer des applications Meteor devrait être suffisantes pour la plupart des cas. Bien sûr, nous savons que plusieurs d'entre vous préféreront avoir un contrôle complet et configurer leur serveur Meteor de bout en bout. Mais c'est un sujet pour un autre jour… ou peut-être un autre livre !