Những tính năng của Heroku và 9 step start ứng dụng Heroku
Table of Contents
- Heroku Runtime
Nó cung cấp các smart container mà ứng dụng của bạn sẽ chạy trong đó. Nó xử lý mọi từ từ cấu hình, điều phối, cân bằng tải, backup, log, bảo mật…
- Heroku Teams
Đây 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,…
Deploy ứng dụng sử dụng Heroku
Đây là một ví dụ về việc đưa một project Laravel lên Heroku. Đầu tiên hãy lên Heroku đăng ký một account.
Bước 1: Cài Heroku CLI
Bạn cài đặt theo link hướng dẫn dưới đây cho hệ điều hành mình đang dùng, do mình sử dụng MacOS nên sẽ cài thông qua homebrew
brew install heroku/brew/heroku
Sau đó xác định phiên bản của nó bằng command:
heroku --version
Bước 2: Cài đặt ứng dụng Laravel
Mở terminal và sử dụng command sau:
composer create-project laravel/laravel herokularavel --prefer-dist
Bước 3: Tạo một Procfile
Bên trong thư mục gốc của Laravel (root), tạo một file gọi là Procfile – chứa câu lệnh mà heroku sẽ chạy. Sau đó bỏ dòng này vào procfile:
# Procfile web: vendor/bin/heroku-php-apache2 public/
Bước 4: Khởi tạo dự án với Git repo
git init
Bước 5: Đăng nhập vào Heroku từ terminal
heroku login
Bước 6: Tạo một ứng dụng Heroku
Gõ lệnh sau tại thư mục chứa code, Heroku sẽ yêu cầu bạn nhập tài khỏan, rồi tạo một “app” cho bạn, đồng thời thiết lập git để sẵn sàng “đẩy code lên Heroku”
heroku create Creating app... done, ⬢ ironman-spiderman-12345 https://ironman-spiderman-12345.herokuapp.com/ | https://git.heroku.com/ironman-spiderman-12345.git
Nó sẽ tự động tạo một ứng dụng với tên random, ví dụ như: ironman-spiderman-12345
. Bạn sẽ có một url là ironman-spiderman-12345.herokuapp.com
Bước 7: Setting một Laravel encryption key
Gõ lệnh sau:
php artisan key:generate --show
Nó sẽ show một key và bạn copy vào cho vào lệnh sau:
heroku config:set APP_KEY={Your copied key}
Bước 8: Push sự thay đổi lên Heroku
Sau đó add các file vào Git:
git add .
Commit các thay đổi:
git commit -m "laravel deploy to heroku"
Push nó lên Heroku server:
git push heroku master
Và bạn sẽ thấy:
Bước 9: Start ứng dụng
Để start ứng dụng trên Heroku, bạn gõ lệnh sau:
heroku open
Lúc này ứng dụng sẽ live trên url: https://ironman-spiderman-12345.herokuapp.com/ (cái này mình chỉ ghi ví dụ để bạn dễ mường tượng)
Tổng kết
Bài viết giúp các bạn biết về Heroku là gì, đồng thời hướng dẫn các bước cơ bản chạy một ứng dụng web app trên Heroku. Một số lưu ý:
- Heroku hỗ trợ 1 free database PostgreSQL.
- Khi chạy production, hầu hết các web app sẽ được chạy trên các “máy ảo”/”server”/”cloud” riêng. Người dùng sẽ tự cài đặt database, cài requirements và chạy code. Heroku là dịch vụ rất tiện nhưng khá đắt khi website bắt đầu lớn, theo mình chỉ thích hợp sử dụng test mà thôi.