Heroku deploy web hướng dẫn

Heroku cung cấp dịch vụ máy chủ đám mây giúp dễ dàng trong việc deploy ứng dụng. Trong bài viết này, CO-WELL Asia hướng  dẫn bạn một cách đơn giản để deploy một ứng dụng lên Heroku nhé!

A. Tổng quan về Heroku

1. Heroku là gì?

Heroku là nền tảng đám mây cho phép các lập trình viên xây dựng, triển khai, quản lý và mở rộng ứng dụng (PaaS – Platform as a service), hỗ trợ nhiều nền tảng như NodeJS, Ruby, Java, PHP, Python, Go, Scala …

Ngoài hỗ trợ nền tảng để chạy các ngôn ngữ lập trình, Heroku cũng hỗ trợ cả Postgresql database.

2. Heroku hoạt động như thế nào?

Heroku chạy các ứng dụng trong dynos – nó là một loại máy ảo có thể tự scale phần cứng tùy vào độ lớn của ứng dụng chạy trên nó

3. Heroku có những tính năng gì?

  • Heroku Runtime

Heroku Runtime cung cấp các smart container mà ứng dụng của bạn sẽ chạy trong đó. Nó xử lý mọi thứ từ từ cấu hình, điều phối, cân bằng tải, backup, log, bảo mật…

  • Heroku Teams

Là một công cụ quản lý nhóm, kết hợp nhiều lập trình viên lại với nhau để xây dựng phần mềm tốt hơn.

  • Scale

Heroku có thể mở rộng quy mô ứng dụng ngay lập tức, cả theo chiều dọc và chiều ngang.

  • Add-ons

Mở rộng, nâng cao và quản lý các ứng dụng của bạn với các dịch vụ được tích hợp sẵn như New Relic, MongoDB, SendGrid, Searchify, Fastly, Papertrail, ClearDB MySQL, Treasure Data…

  • Code/data rollback

Heroku cho phép bạn khôi phục mã nguồn hoặc cơ sở dữ liệu của mình về trạng thái trước đó ngay lập tức.

  • App metrics

Với tính năng giám sát tích hợp lưu lượng, thời gian phản hồi, bộ nhớ, tải CPU và lỗi…bạn sẽ luôn biết được ứng dụng của bạn đang hoạt động ra sao.

  • Continuous delivery

Heroku Flow sử dụng Heroku Pipeline, Review Apps và tích hợp Github để xây dựng quy trình CI/CD gồm build, test, deploy…

  • GitHub Integration

Tích hợp Github giúp bạn có thể pull request, push, commit,…

B. Cách deploy ứng dụng lên Heroku

Trước khi làm các bước hướng dẫn dưới đây, việc đầu tiên là lên trang chủ của Heroku và đăng ký cho mình một tài khoản nhé.

Bước 1: Cài đặt Heroku CLI

  • Truy cập đường dẫn: The Heroku CLI | Heroku Dev Center và làm theo hướng dẫn.

Bước 2: Tạo ứng dụng trên Heroku

  • Ở trang chủ Heroku, chọn “New > Create new app”

Heroku deploy web hướng dẫn

  • Điền thông tin app của bạn vào form tạo app sau đó nhấn “Create app”
  • Sau khi tạo xong, bạn sẽ được chuyển hướng vào trang quản lý app vừa tạo. Trang này sẽ có giao diện dạng như hình sau:

Heroku deploy web hướng dẫn

Bước 3: Bắt đầu đẩy lên Heroku

# Login heroku từ terminal  heroku login  # Di chuyển vào thư mục vừa clone  cd test-nodejs  # Khởi tạo git của Heroku  git init  heroku git:remote -a ten-app-cua-ban  # Đẩy toàn bộ code lên 
git add .  git commit -m "init"  git push heroku master

Heroku sẽ tự nhận biết ứng dụng của bạn chạy trên nền tảng nào và biết cách deploy cho phù hợp.

Khi deploy thành công, bạn sẽ nhận được output dạng như sau:

...

remote: -----> Caching build

remote: - node_modules

remote:

remote: -----> Pruning devDependencies

remote: audited 194 packages in 1.075s

remote: found 4 vulnerabilities (3 low, 1 critical)

remote: run npm audit fix to fix them, or npm audit for details

remote:

remote: -----> Build succeeded!

remote: -----> Discovering process types

remote: Procfile declares types -> (none)

remote: Default types for buildpack -> web

remote: remote: -----> Compressing…

remote: Done: 23.7M

remote: -----> Launching…

remote: Released v3

remote: https://ten-app-cua-ban.herokuapp.com/ deployed to Heroku

remote:

remote: Verifying deploy… done.

To https://git.heroku.com/ten-app-cua-ban.git

[new branch] master -> master

Sau đó thử truy cập vào https:// + ten-app-cua-ban.herokuapp + .com để xem kết quả nhé.

MỘT SỐ LƯU Ý VỚI TÀI KHOẢN HEROKU MIỄN PHÍ

  • Cứ 30 phút nếu app không có request tới server thì Heroku sẽ set machine state thành cold sleep để tiết kiệm tài nguyên hệ thống. Nếu có request mới sau 30’ thì Heroku sẽ khởi động lại từ cold sleep nên sẽ tốn thời gian.
  • Mỗi user Heroku sẽ tạo tối đa được 5 app, nếu thêm thông tin thẻ tín dụng sẽ tạo được tối đa 100 app.
  • Mỗi tài khoản sẽ có 550 giờ sống mỗi tháng, chia đều cho tất cả các app. Nếu thêm thông tin thẻ tín dụng, bạn sẽ có 1000 giờ sống mỗi tháng. Nếu sử dụng hết tầm 70% số giờ, Heroku sẽ có mail thông báo cho bạn (tham khảo chi tiết)
  • Nếu app có các tính năng như thêm, CUD file trực tiếp trên Heroku, thì mặc định các chứng năng này sẽ không hoạt động, bởi tất cả các file khi deploy lên Heroku sẽ ở trạng thái read-only.

Hồ Nguyễn Bảo Trân – CO-WELL Asia