forked from DiscoverMeteor/DiscoverMeteor_fr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
02s-deploying.md.erb
212 lines (133 loc) · 10.9 KB
/
02s-deploying.md.erb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
---
title: Déploiement
slug: deploying
date: 0002/01/02
number: 2.5
points: 1
sidebar: true
photoUrl: http://www.flickr.com/photos/monomaniacgarage/10703829133/
photoAuthor: Monomaniacgarage
sidebar: true
contents: 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.
paragraphs: 46
---
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 !
<% note do %>
### 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.
<% end %>
### 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 :
~~~bash
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](http://docs.meteor.com/#deploying) 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](https://modulus.io/) 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.
<% note do %>
### Demeteorizer
Modulus a rendu open-source un outil appelé [demeteorizer](https://github.com/onmodulus/demeteorizer) qui convertit votre application Meteor dans une application NodeJS standard.
<% end %>
Commencez par [créer un compte](https://modulus.io/register). Pour déployer une application sur Modulus, nous aurons besoin d'installer l'outil en ligne de commande de Modulus :
~~~bash
npm install -g modulus
~~~
Et s'authentifier avec :
~~~bash
modulus login
~~~
Nous allons créer un projet Modulus (notez que vous pouvez également faire ça via le tableau de bord web de Modulus) :
~~~bash
modulus project create
~~~
L'étape suivante sera de créer une base de données MongoDB pour notre application. Nous pouvons créer une base de données MongoDB avec [Modulus lui-même](https://modulus.io/codex/database/getting_started), [Compose](https://www.compose.io/) ou avec un autre founisseur de cloud MongoDB.
Une fois que nous avons créé notre base de données MongoDB, nous pouvons obtenir le paramètre 'MONGO_URL' pour notre base de données de l'UI web de Modulus (Dashboard > Databases > Select your database > Administration), puis utilisez le pour configurer votre application comme ceci :
~~~bash
modulus env set MONGO_URL "mongodb://<user>:<pass>@mongo.onmodulus.net:27017/<database_name>"
~~~
Il est temps maintenant de déployer votre application. C'est aussi simple que taper :
~~~bash
modulus deploy
~~~
Nous avons maintenant déployé avec succès notre application sur Modulus. Référez vous à [la documentation Modulus](https://modulus.io/codex/projects) pour plus d'informations à propos de l'accès aux logs, la configuration des domaines personnalisés et SSL.
### 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](https://github.com/arunoda/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](http://digitalocean.com), qui démarre à 5$ par mois, ou [AWS](http://aws.amazon.com/), 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 :
~~~bash
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 :
~~~bash
mkdir ~/microscope-deploy
cd ~/microscope-deploy
mup init
~~~
<% note do %>
### 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.
<% end %>
### 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 :
~~~js
{
//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"
}
}
~~~
<%= caption "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](https://gist.github.com/arunoda/7790979)).
**Configuration MongoDB**
L'étape suivante est de configurer une base de données MongoDB pour votre application. Nous vous recommandons d'utiliser [Compose](https://www.compose.io) 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 temrinal 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 !
~~~bash
mup setup
~~~
Ça 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 :
~~~bash
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 :
~~~bash
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](https://github.com/arunoda/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 !