-
Notifications
You must be signed in to change notification settings - Fork 0
/
02s-deploying.md.erb
209 lines (130 loc) · 17.1 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
---
title: Ανάπτυξη
slug: deploying
date: 0002/01/02
number: 2.5
sidebar: true
contents: Μάθετε πώς να αναπτύξετε την εφαρμογή σας στο Meteor.com.|Μάθετε πώς να αναπτύξετε την εφαρμογή σας στο Modulus.|Μάθετε πώς να αναπτύξετε την εφαρμογή σας στο δικό σας διακομιστή, χρησιμοποιώντας το Meteor Up.
paragraphs: 48
---
Σε κάποιους αρέσει να δουλεύουν σιωπηρά σε ένα σχέδιο εφαρμογής μέχρι να είναι τέλειο, ενώ άλλοι ανυπομονούν να το δείξουν στον κόσμο το συντομότερο δυνατόν.
Αν είστε από τους πρώτους θα προτιμάτε να εργαστείτε τοπικά στον υπολογιστή σας προς το παρόν, μπορείτε να παραλείψετε από το κεφάλαιο. Αντιθέτως, αν προτιμάτε να μάθετε τώρα πώς να αναπτύξετε την εφαρμογή σας στο διαδίκτυο, στο κεφάλαιο αυτό θα βρείτε ό,τι χρειάζεστε.
Θα μάθουμε πώς να αναπτύσσουμε την εφαρμογή μας με διαφόρους τρόπους. Μπορείτε ελεύθερα να χρησιμοποιήσετε καθέναν από αυτούς σε οποιοδήποτε στάδιο κατασκευής της εφαρμογής σας, είτε πρόκειται για το Microscope είτε οποιαδήποτε άλλη εφαρμογή. Ας ξεκινήσουμε!
<% note do %>
### Παρουσιάζοντας τα Παραρτήματα
Αυτό το κεφάλαιο είναι ένα **παράρτημα**. Τα παραρτήματα εμβαθύνουν σε ενότητες ανεξάρτητα από το υπόλοιπο βιβλίο.
Συνεπώς, αν προτιμάτε να συνεχίσετε με την κατασκευή του Microscope, μπορείτε να παραλείψετε από το κεφάλαιο και να επιστρέψετε αργότερα.
<% end %>
### Ανάπτυξη στο Meteor.com
Η ανάπτυξη σε υποτομέα (subdomain) του Meteor.com (πχ `http://myapp.meteor.com`) είναι η πιο εύκολη επιλογή, και η πρώτη που θα δοκιμάσουμε. Μπορεί να σας φανεί χρήσιμο για να δείξετε την εφαρμογή σας σε άλλους σε πρώιμα στάδια, ή αν θέλετε μια γρήγορη και πρόχειρη λύση.
Η διαδικασία είναι σχετικά απλή. Ανοίξτε ένα παράθυρο τερματικού, πηγαίνετε στο φάκελο της εφαρμογής σας και πληκτρολογήστε:
~~~bash
meteor deploy myapp.meteor.com
~~~
Φυσικά, θα πρέπει να αντικαταστήσετε το "myapp" με ένα όνομα της επιλογής σας, το οποίο δεν χρησιμοποιείται ήδη.
Αν είναι η πρώτη φορά που αναπτύσσετε μια εφαρμογή, θα σας ζητηθεί να δημιουργήσετε ένα λογαριασμό Meteor. Αν όλα πάνε καλά, σε μερικά δευτερόλεπτα θα μπορείτε να δείτε την εφαρμογή σας στο `http://myapp.meteor.com`.
Μπορείτε να διαβάσετε την [επίσημη τεκμηρίωση](http://docs.meteor.com/#deploying) για περισσότερες πληροφορίες για θέματα όπως η προσπέλαση της βάσης δεδομένων στο διακομιστή ή η ρύθμιση του δικού σας τομέα (domain) για την εφαρμογή σας.
### Ανάπτυξη στο Modulus
[Το Modulus](https://modulus.io/) είναι μια πολύ καλή επιλογή για την ανάπτυξη εφαρμογών Node.js. Είναι από τους λίγους παρόχους PaaS (platform-as-a-service, πλατφόρμα ως υπηρεσία) που υποστηρίζουν επίσημα το Meteor, και υπάρχουν ήδη αρκετοί χρήστες που το χρησιμοποιούν για την ανάπτυξη των εφαρμογών τους σε επίπεδο παραγωγής (production level).
<% note do %>
### Demeteorizer
Modulus open-sourced a tool called [demeteorizer](https://github.com/onmodulus/demeteorizer) which converts your Meteor app into a standard Node.js app.
Το Modulus παρέχει ένα εργαλείο ανοιχτού κώδικα το οποίο ονομάζεται [demeteorizer](https://github.com/onmodulus/demeteorizer) και μετατρέπει την Meteor εφαρμογή σας σε τυπική εφαρμογή Node.js.
<% end %>
Ξεκινήστε [δημιουργώντας ένα λογαριασμό](https://modulus.io/register). Για να αναπτύξετε την εφαρμογή σας στο Modulus θα χρειαστεί να εγκαταστήσετε το εργαλείο γραμμής εντολών του Modulus.
~~~bash
npm install -g modulus
~~~
Και στη συνέχεια πρέπει να ταυτοποιηθείτε πληκτρολογώντας:
~~~bash
modulus login
~~~
Τώρα θα δημιουργήσουμε ένα σχέδιο εφαρμογής Modulus (σημειώστε ότι αυτό μπορείτε να το κάνετε από τον πίνακα ελέγχου της ιστοσελίδας):
~~~bash
modulus project create
~~~
Το επόμενο βήμα είναι να δημιουργήσουμε μια βάση δεδομένων MongoDB για την εφαρμογή μας. Αυτό μπορούμε να το κάνουμε είτε με το [Modulus](http://help.modulus.io/customer/portal/articles/1647770-using-meteor-with-modulus), είτε με το [Compose](https://www.compose.io/) ή οποιοδήποτε άλλο πάροχο υπηρεσιών MongoDB.
Μόλις δημιουργήσουμε την βάση δεδομένων μας, μπορούμε να βρούμε το `MONGO_URL` της από τον πίνακα ελέγχου του Modulus (Dashboard > Databases > Select your database > Administration) και να ρυθμίσουμε την εφαρμογή μας ως εξής:
~~~bash
modulus env set MONGO_URL "mongodb://<user>:<pass>@mongo.onmodulus.net:27017/<database_name>"
~~~
Τώρα ήρθε η ώρα να αναπτύξουμε την εφαρμογή μας:
~~~bash
modulus deploy
~~~
Μόλις αναπτύξαμε επιτυχώς την εφαρμογή μας στο Modulus. Δείτε την [τεκμηρίωση του Modulus](https://modulus.io/codex/projects) για περισσότερες πληροφορίες σχετικά με την προσπέλαση των αρχείων καταγραφής (logs), την ρύθμιση του δικού σας τομέα (domain) και τη χρήση SSL.
### Meteor Up
Παρότι νέοι πάροχοι εμφανίζονται καθημερινά, συχνά έχουν τα δικά τους προβλήματα και περιορισμούς. Προς το παρόν η καλύτερη λύση είναι η ανάπτυξη των εφαρμογών στον δικό σας διακομιστή. Το μόνο πρόβλημα είναι ότι η διαδικασία δεν είναι τόσο απλή, ειδικά σε επίπεδο παραγωγής (production level).
Το [Meteor Up](https://github.com/arunoda/meteor-up) (ή `mup` για συντομία) είναι μια προσπάθεια για την επίλυση του προβλήματος, παρέχοντας ένα εργαλείο γραμμής εντολών που αναλαμβάνει την ρύθμιση και ανάπτυξη των εφαρμογών για εσάς. Ας δούμε λοιπόν τη διαδικασία ανάπτυξης για το Microscope με τη χρήση του Meteor Up.
Πριν από οτιδήποτε άλλο, θα χρειαστούμε ένα διακομιστή. Σαν πάροχο προτείνουμε είτε το [Digital Ocean](http://digitalocean.com) με κόστος που ξεκινά από $5 το μήνα, είτε το [AWS](http://aws.amazon.com/) που προσφέρει δωρεάν Micro instances (θα συναντήσετε γρήγορα περιορισμούς αλλά προς το παρόν είναι αρκετό για να δοκιμάσουμε το Meteor Up).
Όποιο πάροχο και να επιλέξετε, θα χρειαστείτε τρία πράγματα: τη διεύθυνση IP του διακομιστή σας, το όνομα χρήστη (συνήθηως `root` ή `ubuntu`), και τον κωδικό πρόσβασης. Φυλάξτε αυτά τα στοιχεία με ασφάλεια, θα τα χρειαστείτε σύντομα!
### Αρχικοποίηση του Meteor Up
Για να ξεκινήσουμε, θα χρειαστεί να εγκαταστήσουμε το Meteor Up μέσω του `npm` ως εξής:
~~~bash
npm install -g mup
~~~
Στη συνέχεια θα δημιουργήσουμε έναν ειδικό ξεχωριστό φάκελο που θα περιέχει τις ρυθμίσεις του Meteor Up για τη συγκεκριμένη εφαρμογή. Αυτό το κάνουμε για δύο λόγους: πρώτον είναι συνήθως καλύτερο να αποφεύγουμε την τοποθέτηση προσωπικών στοιχείων πρόσβασης στην απόθήκη Git, ειδικά όταν αυτή είναι δημόσια.
Δεύτερον, με τη χρήση πολλαπλών ξεχωστών φακέλων, μπορούμε να διαχειριστούμε παράλληλα διαφορετικές ρυθμίσεις του Meteor Up για την εφαρμογή μας. Αυτό θα φανεί ιδιαίτερα χρήσιμο για την ανάπτυξη της εφαρμογή μας σε επίπεδο δοκιμαστικό ή παραγωγής αργότερα.
Ας δημιουργήσουμε λοιπόν αυτό το φάκελο και ας αρχικοποιήσουμε τις ρυθμίσεις του Meteor Up:
~~~bash
mkdir ~/microscope-deploy
cd ~/microscope-deploy
mup init
~~~
<% note do %>
### Μοιραστείτε με το Dropbox
Ένας πολύ καλός τρόπος για να είστε βέβαιοι ότι όλοι στην ομάδα σας χρησιμοποιούν τις ίδιες ρυθμίσεις ανάπτυξης, είναι να δημιουργήσετε τον φάκελο με τις ρυθμίσεις το Meteor Up μέσα στο Dropbox ή οποιαδήποτε άλλη παρόμοια υπηρεσία.
<% end %>
### Meteor Up Configuration
Κατά την αρχικοποίηση μιας εφαρμογής το Meteor Up δημιουργεί δύο αρχεία: `mup.json` και `settings.json`.
Το `mup.json` περιέχει όλες τις ρυθμίσεις σχετικά με την ανάπτυξη, ενώ το `settings.json` περίεχει όλες τις ρυθμίσεις σχετικά με την εφαρμογή (OAuth tokens, analytics tokens, κλπ).
Το επόμενο βήμα είναι να ρυθμίσετε το αρχείο `mup.json`. Αυτό είναι το `mup.json` που δημιουργείται από την εντολή `mup init`, και το μόνο που πρέπει να κάνετε είναι να συμπληρώσετε τα κενά:
~~~js
{
//server authentication info
"servers": [{
"host": "hostname",
"username": "root",
"password": "password"
//or pem file (ssh based authentication)
//"pem": "~/.ssh/id_rsa"
}],
//install MongoDB in the server
"setupMongo": true,
//location of app (local directory)
"app": "/path/to/the/app",
//configure environmental
"env": {
"ROOT_URL": "http://supersite.com"
}
}
~~~
<%= caption "mup.json" %>
Ας δούμε τις παραπάνω ρυθμίσεις ξεχωριστά.
**Server Authentication (Ταυτοποίηση Διακομιστή)**
Προσέξτε ότι το Meteor Up υποστηρίζει ταυτοποίηση τόσο μέσω κωδικού πρόσβασης όσο και μέσω προσωπικού κλειδιού (PEM), οπότε μπορείτε να το χρησιμοποιήσετε με σχεδόν όλους τους παρόχους.
**Σημαντική σημείωση**: αν επιλέξετε να χρησιμοποιήσετε την ταυτοποίηση μέσω κωδικού πρόσβασης, βεβαιωθείτε ότι έχετε εγκαταστήσει το `sshpass` πρώτα ([οδηγίες](https://gist.github.com/arunoda/7790979)).
**MongoDB Configuration (Ρύθμιση MongoDB)**
Το επόμενο βήμα είναι η ρύθμιση της βάσης δεδομένων της εφαρμογής σας. Προτείνουμε τη χρήση του [Compose](https://www.compose.io) ή οποιουδήποτε άλλου παρόχου υπηρεσιών MongoDB, επειδή προσφέρουν επαγγελματική υποστήριξη και καλύτερα εργαλεία διαχείρησης.
Αν επιλέξατε το Compose, ορίστε την παράμετρο `setupMongo` ως `false` και προσθέστε τη μεταβλητή περιβάλλοντος `MONGO_URL` στο τμήμα `env` του αρχείου `mup.json`. Αν επιλέξατε να χρησιμοποιήσετε τοπική εγκατάσταση του MongoDB, ορίστε την παράμετρο `setupMongo` ως `true` και το Meteor Up θα φροντίσει τα υπόλοιπα.
**Meteor App Path (Διαδρομή Εφαρμογής Meteor)**
Εφόσον τα αρχεία ρυθμίσεων του Meteor Up βρίσκονται σε διαφορετικό φάκελο, θα πρέπει να επισημάνουμε στις ρυθμίσεις τη διαδρομή στην οποία βρίσκεται η εφαρμογή μας. Χρησιμοποιείστε την πλήρη διαδρομή, την οποία μπορείτε να βρείτε πληκτρολογώντας στο παράθυρο τερματικού την εντολή `pwd` από το φάκελο της εφαρμογής (πχ `/home/user/app`).
**Environment Variables (Μεταβλητές Περιβάλλοντος)**
Μπορείτε να ορίσετε όλες τις εφαρμογές περιβάλλοντος της εφαρμογής σας (όπως `ROOT_URL`, `MAIL_URL`, `MONGO_URL`, κλπ) μέσα στο τμήμα `env` του αρχείου `mup.json`.
### Ρύθμιση και Ανάπτυξη
Προτού μπορέσουμε να αναπτύξουμε την εφαρμογή μας, θα πρέπει να ρυθμίσουμε το διακομιστή για να είναι έτοιμος να εκτελέσει εφαρμογές Meteor. Το Meteor Up πραγματοποιεί μαγικά όλη αυτή την περίπλοκη διαδικασία με μια μόνο εντολή!
~~~bash
mup setup
~~~
Η διαδικασία αυτή διαρκεί μερικά λεπτά ανάλογα με τους πόρους του διακομιστή και την ταχύτητα του δικτύου. Μετά την ολοκλήρωση της διαδικασίας μπορούμε επιτέλους να αναπτύξουμε την εφαρμογή μας:
~~~bash
mup deploy
~~~
Αυτή η εντολή θα ετοιμάσει την εφαρμογή Meteor και θα την αναπτύξει στον διακομιστή που μόλις ρυθμίσαμε.
### Εμφάνιση Αρχείων Καταγραφής
Τα αρχεία καταγραφής είναι πολύ σημαντικά και το Meteor Up παρέχει ένα πολύ εύκολο τρόπο ανάγνωσής τους εξομοιώνοντας την εντολή `tail -f`. Απλά πληκτρολογήστε:
~~~bash
mup logs -f
~~~
Με αυτά ολοκληρώσαμε την επισκόπηση του Meteor Up. Για περισσότερες πληροφορίες προτείνουμε να επισκεφτείτε το [Meteor Up's GitHub repository](https://github.com/arunoda/meteor-up).
Αυτοί οι τρεις τρόπου ανάπτυξης εφαρμογών Meteor είναι αρκετοί για τις περισσότερες περιπτώσεις. Φυσικά, κάποιοι από εσάς μπορεί να προτιμήσουν να έχουν τον πλήρη έλεγχο και να ρυθμίσουμε τον διακομιστή τους χειροκίνητα από την αρχή. Αυτό το θέμα όμως ίσως το συζητήσουμε μια άλλη μέρα... ή σε ένα άλλο βιβλίο!