-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy path02s-deploying.md.erb
More file actions
202 lines (126 loc) · 12.3 KB
/
02s-deploying.md.erb
File metadata and controls
202 lines (126 loc) · 12.3 KB
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
---
title: Triển khai
slug: deploying
date: 0002/01/02
number: 2.5
sidebar: true
contents: Học để deploy trên Meteor.com.|Học để deploy trên Modulus.|Học để deploy dùng server riêng với Meteor Up.
paragraphs: 48
---
Một số người thích làm việc lặng lẽ trên một dự án cho đến khi nó hoàn hảo, trong khi những người khác không thể chờ đợi để cho thế giới biết càng sớm càng tốt.
Nếu bạn thuộc nhóm đầu tiên, và muốn tạm thời phát triển tại localhost, bạn có thể bỏ qua chương này. Mặt khác, nếu bạn thích dành thời gian để tìm hiểu làm thế nào để triển khai các ứng dụng trực tuyến của Meteor, chúng tôi sẽ hướng dẫn cho bạn.
Chúng ta sẽ được học làm thế nào để triển khai một ứng dụng Meteor theo vài cách khác nhau. Bạn có thể tự do lựa chọn cách triển khai trong bất kỳ giai đoạn phát triển nào, cho dù bạn đang làm việc trên Microscope hoặc bất kỳ ứng dụng Meteor khác. Hãy cùng bắt đầu!
<% note do %>
### Giới thiệu về Sidebars
Đây là một chương về **sidebar**. Sidebar tìm hiểu sâu sắc về một chủ đề chung của Meteor độc lập với phần còn lại của cuốn sách.
Vì vậy, nếu bạn muốn bắt đầu xây dựng Microscope, bạn có thể tạm thời bỏ qua chương này và trở lại với nó sau.
<% end %>
### Triển khai trên Meteor
Triển khai trên một tên miền phụ Meteor (ví dụ 'http://myapp.meteor.com`) là lựa chọn dễ dàng nhất, và là điều đầu tiên chúng ta sẽ thử làm. Điều này có thể hữu ích để giới thiệu ứng dụng của bạn với những người khác trong những ngày đầu của nó, hoặc để nhanh chóng thiết lập một server cho môi trường staging.
Triển khai trên Meteor khá là đơn giản. Bạn chỉ cần mở terminal, di chuyển vào thư mục ứng dụng Meteor của bạn, và gõ:
~~~bash
meteor deploy myapp.meteor.com
~~~
Tất nhiên, bạn sẽ phải thay thế "myapp" với một tên do bạn lựa chọn, tốt nhất là một tên mới mà vẫn chưa được sử dụng.
Nếu đây là lần đầu tiên bạn triển khai một ứng dụng, bạn sẽ được nhắc nhở để tạo một tài khoản Meteor. Và nếu mọi việc suôn sẻ, sau một vài giây, bạn sẽ có thể truy cập vào ứng dụng của bạn tại `http://myapp.meteor.com`.
Bạn có thể tham khảo [tài liệu chính thức] (http://docs.meteor.com/#deploying) để biết thêm thông tin về những thứ như truy cập trực tiếp vào cơ sở dữ liệu lưu trữ trên máy chủ của bạn, hoặc cấu hình một tên miền tùy chỉnh cho ứng dụng của bạn.
### Triển khai trên Modulus
[Modulus] (https://modulus.io/) là một lựa chọn tuyệt vời cho việc triển khai các ứng dụng Node.js. Đó là một trong số ít PaaS (nền tảng như một dịch vụ) mà cung cấp hỗ trợ Meteor chính thức, và đã có khá một số lượng người chạy sản phẩm ứng dụng Meteor trên đó.
Bạn có thể học thêm về Modulus bằng việc đọc [hướng dẫn triển khai cho ứng dụng Meteor](http://help.modulus.io/customer/portal/articles/1647770-using-meteor-with-modulus).
Hãy bắt đầu bằng việc [tạo một tài khoản] (https://modulus.io/register). Để triển khai ứng dụng trên Modulus, chúng ta cần phải cài đặt công cụ dòng lệnh Modulus
~~~bash
npm install -g modulus
~~~
Và sau đó xác nhận với:
~~~bash
modulus login
~~~
Bây giờ chúng ta sẽ tạo ra một dự án Modulus (lưu ý rằng bạn cũng có thể làm được điều này thông qua bảng điều khiển web Modulus '):
~~~bash
modulus project create
~~~
Bước tiếp theo sẽ được tạo ra một cơ sở dữ liệu MongoDB cho ứng dụng của chúng ta. Chúng ta có thể tạo ra một cơ sở dữ liệu MongoDB với [chính Modulus] (http://help.modulus.io/customer/portal/articles/1647770-using-meteor-with-modulus), [Compose] (https: //www.compose.io /) hoặc với bất kỳ nhà cung cấp dịch vụ cloud MongoDB nào khác.
Một khi đã tạo ra cơ sở dữ liệu MongoDB, chúng ta có thể nhận được `MONGO_URL` cho cơ sở dữ liệu từ giao diện người dùng web Modulus '(đi vào Bảng điều khiển> Cơ sở dữ liệu> Chọn cơ sở dữ liệu của bạn> Quản trị), sau đó sử dụng nó để cấu hình ứng dụng như vậy:
~~~bash
modulus env set MONGO_URL "mongodb://<user>:<pass>@mongo.onmodulus.net:27017/<database_name>"
~~~
Đó là bây giờ thời gian để triển khai các ứng dụng của chúng tôi. Nó là dễ như gõ:
~~~bash
modulus deploy
~~~
Bây giờ chúng ta đã triển khai thành công ứng dụng của chúng tôi để Modulus. Tham khảo [tài liệu Modulus] (https://modulus.io/codex/projects) để biết thêm thông tin về truy cập nhật ký, thiết lập tên miền tùy chỉnh, và SSL.
### Meteor Up
Mặc dù giải pháp cloud xuất hiện hàng ngày, chúng thường xuất hiện đi kèm với vấn đề và hạn chế của mình. Vì vậy tốt hơn hết là bạn triển khai ứng dụng Meteor trên server của riêng mình. Chỉ có một vấn đề là, việc tự mình triển khai thường không đơn giản, nhất là nếu bạn mong muốn triển khai với chất lượng của một sản phẩm thực sự.
[Meteor Up](https://github.com/arunoda/meteor-up) (hoặc nói ngắn gọn `mup`) là một giải pháp khác, được đi kèm với tiện ích dòng lệnh giúp cho việc thiết lập và triển khai dễ dàng hơn. Vì vậy hãy cùng xem làm thế nào để triển khai Microscope với Meteor Up.
Trước hết, chúng ta cần một server để push dữ liệu lên. Chúng tôi khuyến khích dùng [Digital Ocean](http://digitalocean.com) là dịch vụ có thể bắt đầu với chỉ $5 một tháng, hoặc [AWS](http://aws.amazon.com/), dịch vụ có thể bắt đầu hoàn toàn miễn phí (bạn sẽ sớm gặp phải những vấn đề về việc mở rộng, nhưng đủ để bạn tìm hiểu sơ qua với Meteor Up).
Dù cho bạn chọn server nào, bạn sẽ đi đến ba thứ: địa chỉ IP cho server, tài khoản đăng nhập (thường là `root` hoặc `ubuntu`), và mật khẩu. Hãy giữ cho chúng được bảo mật, vì bạn sẽ cần dùng đến sớm thôi!
### Khởi tạo Meteor Up
Để bắt đầu, chúng ta cần phải cài đặt Meteor Up qua `npm` như sau:
~~~bash
npm install -g mup
~~~
Chúng ta sẽ tạo một thư mục đặc biệt, tách rời mà sẽ chứa đựng thiết lập cho Meteor Up cho việc triển khai. Chúng ta dùng thư mục tách rời vì hai lý do: đầu tiên, sẽ tốt hơn nếu tránh dùng thông tin cá nhân vào một repo Git, đặc biệt trong trường hợp bạn làm việc với mã nguồn công cộng.
Tiếp theo, bằng việc dùng thư mục tách rời, chúng ta có thể đồng thời quản lý thiết lập của nhiều Meteor Up. Điều này sẽ thuận tiện cho cả việc triển khai môi trường phát triển và staging.
Hãy tạo một thư mục và dùng nó để khởi tạo dự án Meteor Up:
~~~bash
mkdir ~/microscope-deploy
cd ~/microscope-deploy
mup init
~~~
<% note do %>
### Chia sẻ qua Dropbox
Cách tốt nhất để chắc chắn rằng bạn và nhóm của bạn cùng dùng chung thiết lập cho việc triển khai là tạo thư mục thiết lập Meteor Up bên trong Dropbox hoặc một dịch vụ tương tự.
<% end %>
### Thiết lập cho Meteor Up
Khi khởi tạo một dự án mới, Meteor Up sẽ tạo hai file cho bạn: `mup.json` và `settings.json`.
`mup.json` sẽ thiết lập liên quan đến việc triển khai, trong khi `settings.json` sẽ chứa toàn bộ thiết lập liên quan đến ứng dụng (token OAuth, token phân tích, vân vân...).
Bước tiếp theo là thiết lập file `mup.json`. Sau đây là file `mup.json` được tạo mặc định bởi `mup init`, và tất cả việc bạn phải làm chỉ là điền vào chỗ trống:
~~~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" %>
Hãy xem xét từng bước thiết lập ở trên.
**Authentication Server**
Bạn sẽ nhận thấy rằng Meteor Up hỗ trợ xác thực dựa trên mật khẩu và xác thực dựa trên khoá mật (PEM), vì vậy nó có thể được sử dụng với hầu hết các nhà cung cấp điện toán đám mây.
**Lưu ý quan trọng**: nếu bạn chọn để sử dụng xác thực dựa trên mật khẩu, trước hết hãy chắc chắn rằng bạn đã cài đặt `sshpass` ([tham khảo hướng dẫn này] (https://gist.github.com/arunoda/7790979)).
**Cấu hình MongoDB**
Bước tiếp theo là cấu hình cơ sở dữ liệu MongoDB cho ứng dụng của bạn. Chúng tôi khuyên bạn nên sử dụng [Compose] (https://www.compose.io) hoặc bất kỳ nhà cung cấp dịch vụ đám mây MongoDB nào khác, vì họ cung cấp hỗ trợ chuyên nghiệp và các công cụ quản lý tốt hơn.
Nếu bạn đã quyết định sử dụng Compose, thiết lập `setupMongo` thành `false` và thêm biến môi trường `MONGO_URL` trong khối `env` của file `mup.json`. Nếu bạn quyết định host MongoDB với Meteor Up, chỉ cần thiết lập `setupMongo` thành `true` và Meteor Up sẽ lo phần còn lại.
**Đường dẫn ứng dụng Meteor**
Vì cấu hình Meteor Up của chúng ta nằm trong một thư mục khác, chúng ta sẽ cần phải trỏ Meteor Up trở lại ứng dụng của chúng ta bằng việc sử dụng thuộc tính `app`. Chỉ cần nhập vào đường dẫn local đầy đủ, mà bạn có thể nhận được bằng cách sử dụng lệnh `pwd` từ terminal khi đã nằm bên trong thư mục của ứng dụng.
**Biến môi trường**
Bạn có thể xác định tất cả các biến môi trường của ứng dụng (chẳng hạn như là `ROOT_URL`,` MAIL_URL`, `MONGO_URL`, vân vân) bên trong khối `env`.
### Thiết lập và Triển khai
Trước khi chúng ta có thể triển khai, chúng ta sẽ cần phải thiết lập máy chủ để sẵn sàng host ứng dụng Meteor. Sự kỳ diệu của Meteor Up ở chỗ nó có thể gói gọn quá trình phức tạp này trong một lệnh duy nhất!
~~~bash
mup setup
~~~
Lệnh này sẽ mất một vài phút tùy thuộc vào hiệu suất của máy chủ và kết nối mạng. Sau khi quá trình cài đặt thành công, cuối cùng chúng ta sẽ có thể triển khai ứng dụng của mình với:
~~~bash
mup deploy
~~~
Lệnh này sẽ bó các ứng dụng Meteor, và triển khai đến máy chủ mà chúng ta vừa mới thiết lập.
### Hiển thị log
Viết log là một việc khá quan trọng và Meteor Up cung cấp một cách rất dễ dàng để xử lý chúng bằng cách dùng lệnh `tail -f`. Chỉ cần gõ:
~~~bash
mup logs -f
~~~
Lệnh này kết thúc giới thiệu tổng quan cho chúng ta về những gì Meteor Up có thể làm. Để biết thêm thông tin, chúng tôi khuyên bạn nên truy [Meteor Up's GitHub repository](https://github.com/arunoda/meteor-up).
Ba cách để triển khai các ứng dụng Meteor nên là đủ cho hầu hết các trường hợp sử dụng. Tất nhiên, chúng tôi biết một số độc giả sẽ thích được kiểm soát hoàn toàn và thiết lập máy chủ Meteor từ con số 0. Nhưng đó là một chủ đề cho một ngày khác... hoặc có thể là trong một cuốn sách khác!