Deploy app NodeJS với Heroku và Docker


1040

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

Create a new app on Heroku to deploy Node.js

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:

Heroku Welcome Screen

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?

Heroku addons

(Để 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 Hub
  • COPY: 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 trong
  • RUN:điều này chạy các lệnh, trong trường hợp này là npm install
  • COPY 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 npm
  • CMD: 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 :


Like it? Share with your friends!

1040