/
02s-deploying.md.erb
206 lines (128 loc) · 10.3 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
---
title: Driftsättning
slug: deploying
date: 0002/01/02
number: 2.5
sidebar: true
contents: Lära dig hur man driftsätter på Meteor.com.|Lära dig hur man driftsätter på Modulus.|Lära dig hur man driftsätter på din egen server med Meteor Up.
paragraphs: 46
---
Vissa personer gillar att jobba tyst på ett projekt tills det är perfekt, andra kan inte vänta med att visa världen så snart som möjligt.
Om du är den första typen av person och hellre utvecklar lokalt tills vidare, känn dig fri att hoppa över detta kapitel. Men om du å andra sidan gärna tar dig tid och lär dig hur man driftsätter din Meteor applikation online, så har vi det du behöver.
Vi kommer att lära oss hur man driftsätter en applikation på fem olika sätt. Känn dig fri att använda den du känner för oavsett var du är i din utvecklingsprocess, om du jobbar på Microscope eller någon annan Meteor applikation. Så låt oss komma igång!
<% note do %>
### Introduktion av sidofält
Detta är ett **sidofält**-kapitel. Sidofält tar en djupare inblick i mer generella Meteor-ämnen oberoende av resten av boken.
Så om du hellre fortsätter med att bygga Microscope, så kan du tryggt skippa detta tills vidare och komma tillbaka till det senare.
<% end %>
### Driftsättning på Meteor
Driftsättning på en Meteor subdomän (t.ex. `http://myapp.meteor.com`) är det enklaste valet, och kanske det första vi provar. Det kan vara användbart att förevisa din applikation till andra i dess tidiga dagar, eller för att enkelt sätta upp en stageserver.
Driftsättning på Meteor är ganska enkelt. Öppna helt enkelt din terminal, och gå till din Meteor-applikations katalog, och skriv:
~~~bash
$ meteor deploy myapp.meteor.com
~~~
Självklart måste du ta hand om att byta ut "myapp" med ett valfritt namn, föreslagsvis ett som inte redan används. Om detta är din första gång du driftsätter en applikation så kommer du att bli uppmanad om att skapa ett Meteor-konto. Om allt går bra så kommer du inom ett par sekunder kunna komma åt din applikation på `http://myapp.meteor.com`.
För mer information och saker som direkt åtkomst till din hostade instans databas, eller konfigurationen för en anpassad domän för din applikation, så kan du referera till [den officiella dokumentationen](http://docs.meteor.com/#deploying).
### Driftsättning på Modulus
[Modulus](https://modulus.io/) är ett utmärkt alternativ för att driftsätta NodeJS applikationer. Det är en av dom leverantör av PaaS (Platform-som-en-tjänst) som stödjer Meteor, och det finns redan en hel del människor som kör Meteor-applikationer i produktion där.
<% note do %>
### Demeteorizer
Modulus öppna-källkodsverktyg kallas för [demeteorizer](https://github.com/onmodulus/demeteorizer) och kan konvertera din Meteor-applikation till en standard NodeJS-applikation.
<% end %>
Börja med att [skapa ett konto](https://modulus.io/register). För att driftsätta din applikation på Modulus kommer vi behöva installera Modulus terminalprogram.
~~~bash
$ npm install -g modulus
~~~
Och sedan autentisera med:
~~~bash
$ modulus login
~~~
Vi kommer nu att skapa ett Modulus-projekt (notera att du kan också göra detta via Modulus egna instrumentpanel på webben):
~~~bash
$ modulus project create
~~~
Nästa steg så kommer vi att skapa en MongoDB-databas för vår applikation. Vi kan skapa en MongoDB-databas med [Modulus själv](https://modulus.io/codex/database/getting_started), [MongoHQ](https://www.mongohq.com/) eller med någon annan moln-MongoDB-leverantör.
När vi har skapat vår MongoDB-databas så kan hämta sätta `MONGO_URL`:en för den genom Modulus egna webbgränssnitt (gå till Dashboard > Databases > Select your database > Administration), använd den sedan för att konfigurera din applikation såhär:
~~~bash
$ modulus env set MONGO_URL "mongodb://<user>:<pass>@mongo.onmodulus.net:27017/<database_name>"
~~~
Nu är det dags att driftsätta din applikation. Helt enkelt skriver du bara:
~~~bash
$ modulus deploy
~~~
Vi har nu lyckats driftsätta vår applikation på Modulus. Referera gärna till [Modulus dokumentation](https://modulus.io/codex/projects) för mer information om accessloggar, anpassade domänuppsättningar eller SSL.
### Meteor Up
Då det dyker nya molnlösningar varje dag, så kommer dom ofta med deras egna problem och begränsningar. Så från och med idag är driftsättning på en egen server fortfarande det bästa sättet att placera en Meteor-applikation i produktion. Det enda är, att driftsätta själv är inte helt enkelt, speciellt om man letar efter en driftsättning med produktionskvalité.
[Meteor Up](https://github.com/arunoda/meteor-up) (eller kort `mup`) är ett försök till att lösa detta problemet, med ett terminalverktyg som tar hand om uppsättning och driftsättning åt dig. Så låt oss prova att driftsätta Microscope med Meteor Up.
Före något annat behöver vi en server att ladda upp till. Vi rekommenderar antingen [Digital Ocean](http://digitalocean.com), som startar sina abonnemang vid $5 per månad, eller [AWS](http://aws.amazon.com/), som tillhandahåller Micro-instanser gratis (du kommer snabbt stöta på skalningsproblem, men om du bara vill leka runt med Meteor Up så bör detta vara tillräckligt).
Hur som helst vilken tjänst du väljer, så kommer du landa med tre detaljer: din servers IP-adress, ett login (normalt `root` eller `ubuntu`), och ett lösenord. Håll dessa uppgifter nära till hands någonstans, för vi kommer snart behöva dom!
### Initiering av Meteor Up
För att komma igång så behöver vi installera Meteor Up via `npm` med följande:
~~~bash
$ npm install -g mup
~~~
Vi kommer sedan att skapa en speciel, separat katalog som får hålla våra Meteor Up -inställningar för vår särskilda driftsättning. Vi använder en separat katalog för två orsaker: för det första så är det normalt bästa sättet att undvika inkludering i ditt Git repo, speciellt om du jobbar på en publik kodbas.
För det andra genom att använda flera separata kataloger öppbar det för möjligheten att hantera flera Meteor Up -konfigurationer parallellt. Detta kommer komma till hands när man till exempel driftsätter till produktion- och stageinstanser.
Så låt oss skapa denna nya katalog och använda den till att initiera ett nytt Meteor Up -projekt:
~~~bash
$ mkdir ~/microscope-deploy
$ cd ~/microscope-deploy
$ mup init
~~~
<% note do %>
### Dela med Dropbox
Ett utmärkt sätt att se till att du och ditt team alltid har samma driftsättningsinställningar är genom att helt enkelt skapa din Meteor Up -konfigurationsmapp inne i din Dropbox, eller med någon liknande tjänst.
<% end %>
### Konfiguration för Meteor Up
När man initierar ett nytt projekt kommer Meteor Up skapa två filer åt dig: `mup.json` och `settings.json`.
`mup.json` kommer innehålla driftsättningsrelaterade inställningar, medan `settings.json` kommer innehålla alla applikationsrelaterade inställningar (OAuth nycklar, analytics nycklar, etc.).
Nästa steg är att konfigurera din `mup.json`-fil. Här genereras standard filen `mup.json` med `mup init`, och allt du behöver göra är att fylla i är tomrummen:
~~~js
{
//serverns autentiseringsinformation
"servers": [{
"host": "hostname",
"username": "root",
"password": "password"
//or pem file (ssh based authentication)
//"pem": "~/.ssh/id_rsa"
}],
//installera MongoDB på servern
"setupMongo": true,
//sökväg till applikationen (lokal katalog)
"app": "/path/to/the/app",
//konfigurera miljövariabler
"env": {
"ROOT_URL": "http://supersite.com"
}
}
~~~
<%= caption "mup.json" %>
Låt oss gå igenom dessa inställningar.
**Server Autentisering**
Du kommer märka att Meteor Up stödjer autentisering baserade på lösenord och privata nycklar (PEM), så det kan användas av nästan vilken molnleverantör som helst.
**Viktig notis**: om du väljer att göra lösenordsbaserad autentisering, se till att du har installerat `sshpass` först ([hänvisa till denna guiden](https://gist.github.com/arunoda/7790979)).
**MongoDB Konfiguration**
Nästa steg är att konfigurera en MongoDB databas för din app. Vi rekommenderar att ni använder [MongoHQ](https://www.mongohq.com/home) eller vilken moln-MongoDB-leveratör som helst, då de erbjuder professionell support och bättre förvaltningsverktyg.
Om du bestämt dig för att använda MongoHQ, ändra `setupMongo` till `false` och lägg till miljövariabeln `MONGO_URL` till blocket `env` i filen `mup.json`. Om du bestämt dig för att förvalta din MongoDB med Meteor Up så behöver du bara ändra `setupMongo` till `true` och så tar Meteor Up hand om resten.
**Meteor Applikationssökväg**
Sedan konfigurationen för din Meteor Up bor i flera olika kataloger så kommer vi behöva peka tillbaka Meteor Up till din applikation med användning av inställningen 'app'. Lägg bara till din fulla lokala sökväg, som du kan ta fram med kommandot `pwd` från en terminal när du befinner dig i din applikations katalog.
**Miljövariabler**
Du kan specifiera alla dina applikationers miljövariabler (så som `ROOT_URL`, `MAIL_URL`, `MONGO_URL`, etc.) inne i blocket `env`.
### Uppsättning och driftsättning
Innan vi kan driftsätta, så måste vi sätta upp servern så den är redo att förvalta Meteor-applikationer. Magin i Meteor Up kapslar in denna komplexa process till ett enkelt kommando!
~~~bash
$ mup setup
~~~
Detta kommer ta ett par minuter beroende på serverns prestanda och nätverksanslutning. Efter att uppsättningen har lyckats, så kan vi slutligen driftsätta vår applikation med:
~~~bash
$ mup deploy
~~~
Detta kommer bunta ihop din Meteor applikation, och driftsätta den på den server vi precis satte upp.
### Visa Loggar
Loggar är ganska viktiga och Meteor Up tillhandahåller ett väldigt enkelt sätt att emulera kommandot `tail -f`. Skriv bara:
~~~bash
$ mup logs -f
~~~
Detta sammanfattar vår översikt av vad Meteor Up kan göra. För mer information föreslår vi att ni besöker [GitHub repot för Meteor Up](https://github.com/arunoda/meteor-up).
Dessa tre sätt av att driftsätta Meteor applikationer borde vara nog för de flesta fallen. Men givetvis vet vi att några av er föredrar att vara i full kontrol över uppsättningen av era servrar med Meteor från grunden. Men det är ett ämne för en annan dag… eller kanske en annan bok!