Contents
Deploy NodeJS đến PaaS
Trong phần này của hướng dẫn, bạn sẽ tìm hiểu cách sử dụng Heroku để deploy các ứng dụng NodeJS của mình một cách dễ dàng. “Heroku có thể phù hợp tuyệt vời cho các nhóm muốn thực hiện không chi phí hoặc tạo các ứng dụng nhỏ”
Platform-as-a-Service cũng phù hợp với điều đó
Điều kiện tiên quyết Heroku
Để triển khai đến Heroku, chúng ta phải push code vào kho lưu trữ git từ xa. Để đạt được điều này, hãy thêm key publiccủa bạn vào Heroku. Sau khi đăng ký, hãy truy cập vào tài khoản của bạn và lưu nó vào đó (cách khác, bạn có thể thực hiện với CLI).
Chúng ta cũng cần tải xuống và cài đặt toolbelt Heroku. Để xác minh rằng cài đặt của bạn đã thành công, hãy chạy lệnh sau trong terminal của bạn:
heroku --version
heroku-toolbelt/3.40.11 (x86_64-darwin10.8.0) ruby/1.9.3
Khi toolbelt được thiết lập và chạy, hãy đăng nhập để sử dụng nó:
heroku login
Enter your Heroku credentials.
Email: joe@example.com
Password:
(Để biết thêm thông tin về toolbelt, hãy truy cập Heroku Devcenter)
Deploy lên Heroku

Nhấp vào Create New App, thêm mới và chọn một khu vực. Trong vài giây, ứng dụng của bạn sẽ sẵn sàng và màn hình sau sẽ chào đón bạn:

Truy cập trang Settings của ứng dụng và lấy URL Git. Trong terminal của bạn, thêm url remote Heroku:
git remote add heroku HEROKU_URL
Bạn đã sẵn sàng deploy ứng dụng đầu tiên của mình cho Heroku – nó thực sự chỉ là git push:
git push heroku master
Khi bạn làm điều này, Heroku bắt đầu xây dựng ứng dụng của bạn và deploy nó. Sau khi deploy, dịch vụ của bạn sẽ có thể truy cập được tại https://YOUR-APP-NAME.herokuapp.com
Heroku Add-ons
Một trong những phần có giá trị nhất của Heroku là hệ sinh thái của nó vì có hàng chục đối tác cung cấp cơ sở dữ liệu, công cụ giám sát và các giải pháp khác.
Để dùng thử add-on, hãy cài đặt Trace, giải pháp giám sát NodeJS của chúng ta. Để làm như vậy, hãy tìm Add-ons trên trang ứng dụng của bạn và bắt đầu nhập Trace, sau đó nhấp vào nó để sử dụng. Dễ dàng, phải không?

(Để kết thúc tích hợp Trace, hãy làm theo hướng dẫn Heroku.)
Deploy NodeJS sử dụng Docker
Trong phần này của hướng dẫn, bạn sẽ học cách tạo image từ các ứng dụng NodeJS của mình và chạy chúng.
Docker cơ bản
Để bắt đầu với Docker, hãy tải xuống và cài đặt nó từ trang web Docker.
Đưa ứng dụng NodeJS vào bên trong Docker
Đầu tiên, chúng ta phải hiểu đúng hai định nghĩa:
- Dockerfile: bạn có thể coi Dockerfile như một biên lai – nó bao gồm hướng dẫn về cách tạo image Docker
- Docker image: output của quá trình chạy Dockerfile – đây có thể chạy được
Để chạy một ứng dụng bên trong Docker, trước tiên chúng ta phải viết Dockerfile.
Dockerfile cho NodeJS
Trong thư mục gốc của dự án của bạn, hãy tạo Dockerfile, một tệp văn bản trống, sau đó copy code sau vào đó:
FROM risingstack/alpine:3.3-v4.2.6-1.1.3
COPY package.json package.json
RUN npm install
# Add your source files
COPY . .
CMD ["npm","start"]
Những điều cần lưu ý ở đây:
FROM
: mô tả dựa trên image được sử dụng để tạo image mới – trong trường hợp này là từ Docker HubCOPY
: lệnh này sao chép tệp package.json vào image Docker để chúng ta có thể chạy npm install bên trongRUN
:điều này chạy các lệnh, trong trường hợp này là npm installCOPY
một lần nữa – lưu ý rằng chúng ta đã thực hiện các bản sao theo hai bước riêng biệt. Lý do là Docker tạo các class từ kết quả lệnh, vì vậy nếu package.json của chúng ta không thay đổi, nó sẽ không thực hiện cài đặt lại npmCMD
: image Docker chỉ có thể có một CMD – điều này xác định quy trình nào sẽ được bắt đầu với image
Khi bạn có Dockerfile, bạn có thể tạo một image từ nó bằng cách sử dụng:
docker build .
Sử dụng mô-đun NPM riêng? Hãy xem hướng dẫn về cách cài đặt các mô-đun NPM riêng trong Docker!
Sau khi xây dựng thành công image của mình, bạn có thể liệt kê chúng với:
docker images
Để chạy image
docker run IMAGE_ID
Xin chúc mừng! Bạn vừa chạy một ứng dụng Dockerized NodeJS cục bộ. Đã đến lúc deploy nó!
Deploying Docker Image
Một trong những điều tuyệt vời về Docker là một khi bạn có một image, bạn có thể chạy nó ở mọi nơi – hầu hết các môi trường sẽ chỉ đơn giản là lấy image docker của bạn và chạy nó.
Một số nhà cung cấp mà bạn có thể thử:
- AWS BeanStalk
- Heroku Docker Support
- Docker Cloud
- Kubernetes on Google Cloud
Việc thiết lập chúng rất đơn giản – nếu bạn gặp bất kỳ vấn đề nào, hãy hỏi trong phần nhận xét!
Kết luận
Qua bài viết, bạn có thể deploy lên docker và heroku, để có thể chia sẻ và sử dụng app NodeJS của bạn đến với mọi người.
Tham khảo thêm về NodeJS và React tại đây :
- Cài đặt NodeJS chi tiết trên Window và Ubuntu
- Từng bước tạo ứng dụng React với Firebase
- Những điều nên tránh khi build NodeJS

Bài viết này được sưu tầm và tổng hợp từ nhiều nguồn trên Internet.
Nếu có gì không hiểu thì inbox messenger bên dưới mình hỗ trợ thêm nhé.