Heroku là một lựa chọn tuyệt vời giúp lập trình viên triển khai được các mã dự án nguồn nhanh và gọn hơn. Vậy Heroku là gì? Cách đăng ký Heroku và đưa ứng dụng lên như thế nào? Các bạn hãy cùng Tino Group tìm hiểu qua bài viết dưới đây nhé.
Heroku là gì?
Định nghĩa Heroku
Heroku là một nền tảng đám mây cho phép các cá nhân, doanh nghiệp xây dựng, triển khai, quản lý và mở rộng ứng dụng. Lợi thế chính của nền tảng này nằm ở tính linh hoạt và dễ sử dụng, đây là giải pháp giúp các nhà phát triển đưa ứng dụng của họ ra thị trường đơn giản và nhanh chóng nhất
Được quản lý bởi một công ty cùng tên, Heroku mang lại một trải nghiệm tuyệt vời cho nhà phát triển ứng dụng, khi họ chỉ cần tập trung vào phát triển, nâng cấp sản phẩm cốt lõi của mình mà không bị phân tâm trong việc duy trì hoạt động máy chủ, phần cứng hoặc các cơ sở hạ tầng.
Heroku còn được biết đến như một nơi để triển khai các ứng dụng trong dyno. Khi bạn bắt đầu triển khai một ứng dụng Heroku, bạn phải thiết lập một máy ảo được gọi là slug, sử dụng một hoặc nhiều buildpacks. Lúc này, khi một máy ảo được khởi chạy từ slug sẽ được gọi là dyno.
Đối với trường hợp phải xử lý nhiều công việc phức tạp, bạn sẽ phải thêm một số block (scale chiều ngang) hoặc tăng thêm kích thước cho các block (scale chiều dọc). Lúc này, phí sử dụng Heroku sẽ được tính dựa trên số lượng dyno cũng như kích thước của mỗi dyno mà bạn đang dùng.
Có thể bạn sẽ phải trả phí nếu muốn sử dụng đầy đủ tính năng của Heroku, nhưng thực tế Heroku không hề lưu trữ ứng dụng của bạn mà cả nền tảng Heroku và tất cả các ứng dụng được phát triển trên đó đều triển khai trên Amazon Web Services (AWS).
Một số ngôn ngữ lập trình mà Heroku cơ khả năng hỗ trợ gồm: NodeJS, Ruby, Python, PHP, Java, Scala, Clojure, Go, Kotlin,…Bên cạnh đó, Heroku còn hỗ trợ cả Postgresql database.
Cách hoạt động của Heroku
Heroku có cách thức hoạt động khá giống với các dịch vụ git (github, gitlab). Để sử dụng nền tảng này, bạn cần phải đăng ký một tài khoản, sau đó tạo các git repository (heroku gọi là app) và dùng các git command để đẩy code lên. Điểm khác biệt của Heroku so với các dịch vụ git ở chỗ với mỗi git repository trên Heroku bạn sẽ có một domain dạng https://ten-repository.herokuapp.com – đây là nơi show demo cho repository của bạn.
Ngoài ra, bạn cũng có thể sử dụng một git repository trên github để deploy lên Heroku. Tuy nhiên, bạn không nên sử dụng Heroku để thay thế cho các dịch vụ git như github hay gitlab.
Một số tính năng Heroku mang lại cho người dùng
Heroku Runtime
Hỗ trợ cung cấp các smart container mà ứng dụng của bạn sẽ chạy trong đó. Bên cạnh đó, tính năng này còn giúp xử lý mọi thứ quan trọng trong ứng dụng bao gồm cấu hình, điều phối, cân bằng tải, backup, log, bảo mật…
Heroku Postgres (SQL)
Đây là một dịch vụ cơ sở dữ liệu SQL được quản lý trực tiếp bởi Heroku nên rất đáng tin cậy và rất an toàn cho người dùng. Chúng được thiết lập dễ dàng với mã hóa nhanh chóng, mở rộng quy mô đơn giản,…
Scale
Tính năng Scale mang lại cho bạn khả năng mở rộng quy mô của ứng dụng ngay lập tức, theo cả chiều dọc lẫn chiều ngang. Hơn nữa, bạn có thể điều hành mọi thứ một cách đơn giản từ các dự án sở thích nhỏ lẻ cho đến thương mại điện tử cấp doanh nghiệp.
Heroku Redis
Hỗ trợ dịch vụ Redis phục vụ cho lập trình viên sử dụng. Dịch vụ này cho phép lưu trữ trên bộ nhớ với tốc độ nhanh phổ biến
Add-ons
Hỗ trợ bạn quản lý các ứng dụng với dịch vụ được tích hợp sẵn như New Relic, Mongo DB, SendGrid, Searchify, Fasty, ClearDB,…
Code/data rollback
Giúp người dùng có thể dễ dàng 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 đó.
App Metrics
Đây là tính năng giúp giám sát lưu lượng, thời gian phải hồi, bộ nhớ, tải CPU và lỗi. Giúp bạn quản lý ứng dụng chặt chẽ
GitHub Integration
Giúp bạn có thể thực hiện các tính năng như pull request, push, commit…hoạt động với mọi branch mà bạn muốn.
Continuous Delivery
Heroku Flow sử dụng Heroku Pipeline, review Apps và Githus hỗ trợ xây dựng quy trình pipeline CI/CD gồm xây dựng, test, deploy
Heroku phù hợp với đối tượng nào?
- Lập trình viên: Được chính các lập trình viên tạo ra nên không ai hiểu được khó khăn trong công việc này hơn họ. Nền tảng Heroku được thiết kế tỉ mỉ để hỗ trợ người dùng có trải nghiệm tốt nhất đồng thời tối đa hóa năng suất của ứng dụng.
- Giám đốc công nghệ: Một Giám đốc công nghệ phải đảm nhận vai trò quan trọng trong cả hai lĩnh vực là kỹ thuật và kinh doanh. Do đó, họ cần Heroku để rút ngắn con đường phân phối ứng dụng từ ý tưởng đến sản xuất.
- Các đội, nhóm: Heroku Teams giúp kết nối các nhà lập trình viên và khách hàng lại gần với nhau nhằm tạo ra phần mềm tốt hơn. Với Heroku Teams, bạn có thể thoải mái tự tổ chức, thêm và quản lý thành viên cũng như được quyền kiểm soát chi tiết với các quyền ở cấp ứng dụng.
- Sinh viên: Nền tảng này sẽ cung cấp cho sinh viên một con đường đơn giản để thiết lập và chạy các dự án ứng dụng một cách nhanh chóng.
Ưu điểm và nhược điểm của Heroku
Ưu điểm
- Database hoàn toàn miễn phí
- Cung cấp nhiều gói xây dựng đa dạng
- Chứa nhiều ngôn ngữ lập trình phổ biến
- SSL sử dụng miễn phí
- Có khả năng hỗ trợ làm việc nhóm
- Cho phép liên kết với các loại Github đơn giản nhất.
Nhược điểm
Heroku chỉ cho bạn sử dụng miễn phí 550 giờ/tháng. Tuy nhiên, bạn có thể gia tăng số giờ sử dụng lên đến 1000 giờ/tháng qua việc bạn trả phí. Với 1000 giờ này sẽ đủ để cho một blog cá nhân hoạt động mượt mà.
Chỉ sau từ 2 đến 3 giờ ,nếu server không có người truy cập thì nó sẽ tự động chuyển sang trạng thái ngủ.
Hướng dẫn cách đăng ký và đưa ứng dụng lên Heroku
Đăng ký tài khoản và cài Heroku CLI
Bước 1: Để đăng ký tài khoản trên Heroku bạn hãy truy cập vào đây và điền các thông tin cần thiết.
Bước 2: Xác thực đăng ký qua mail
Bước 3: Cài Heroku CLI
Bạn hãy truy cập vào đây và làm theo hướng dẫn để cài đặt CLI
Lưu ý: Bạn cần chọn đúng phiên bản của hệ điều hành. CLI hỗ trợ cho macOS, Ubuntu, Windows (32 bit, 64 bit).
Cách đưa ứng dụng lên Heroku
Bước 1: 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 2: Tạo một Procfile
Tại thư mục gốc của Laravel (root), bạn hãy tạo một file gọi là Procfile – file này sẽ chứa câu lệnh mà heroku sẽ chạy. Sau đó bỏ dòng code này vào procfile:
# Procfile
web: vendor/bin/heroku-php-apache2 public/
Bước 3: Khởi tạo dự án với Git repo
git init
Bước 4: Đăng nhập vào Heroku từ terminal
heroku login
Bước 5: Tạo một ứng dụng Heroku
Nhập lệnh sau đây tại thư mục chứa code, lúc này Heroku yêu cầu bạn nhập tài khỏan, sau đó sẽ tạo một “app” cho bạn, đồng thời thiết lập git để sẵn sàng “đưa 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
Lúc này nó sẽ tự động tạo một ứng dụng mang tên random, ví dụ như: ironman-spiderman-12345. Từ đó, bạn sẽ có một url là ironman-spiderman-12345.herokuapp.com
Bước 6: Setting một Laravel encryption key
Gõ lệnh sau:
php artisan key:generate –show
Lúc này bạn sẽ nhận một key, hãy copy vào cho vào lệnh sau:
heroku config:set APP_KEY={Your copied key}
Bước 7: 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 8: Khởi động ứng dụng
Để khởi động ứng dụng trên Heroku, bạn gõ lệnh sau: heroku open
Bài viết trên đã cho bạn cái nhìn tổng quan về Heroku, một công cụ đắc lực cho các lập trình viên có thể triển khai ứng dụng nhanh gọn hơn. Hy vọng các bạn có thể khai thác tối đa những tính năng mà công cụ này mang lại nhé!
FAQs về Heroku
Tại sao Heroku lại được nhiều người sử dụng?
Nhiều nhà phát triển đánh giá cao về Heroku bởi những lý do như:
Cung cấp trải nghiệm tốt: Hầu hết các thao tác trên Heroku được diễn ra rất nhanh chóng và độ bảo mật thông tin cao.
Tính năng đa dạng và linh hoạt: Các tính năng được tối ưu hóa và tạo nên một hệ sinh thái đa dạng ở Heroku. Với sự mạnh mẽ này sẽ giúp bạn có thể triển khai ứng dụng cực kỳ nhanh chóng. Bạn có thể tùy chọn trả phí hoặc sử dụng miễn phí để có thể trải nghiệm ứng dụng một cách tốt nhất trong khả năng cho phép của mình.
Hỗ trợ kết nối với salesforce: Heroku cho phép ứng dụng của bạn có thể đồng bộ 2 chiều với salesforce. Từ đó, bạn sẽ dễ dàng đưa ra cái nhìn tổng quát và phân tích, đánh giá khách hàng của mình
Heroku miễn phí hay trả phí?
Heroku có cả gói miễn phí và trả phí. Với gói miễn phí, Heroku chỉ cho bạn sử dụng 550 giờ/tháng. Còn khi trả phí, bạn có thể gia tăng số giờ sử dụng lên 1000 giờ/tháng. Với 1000 giờ này là đủ để cho một blog cá nhân hoạt động đều đặn, êm ái trong vòng một tháng.
Làm sao để tránh tình trạng server bị rơi vào trạng thái ngủ?
Chỉ sau từ 2 đến 3 giờ nếu như server không có người truy cập thì nó sẽ tự động chuyển sang trạng thái ngủ. Để tránh server bị tắt đột ngột, cách đơn giản bạn cần làm là tự tạo ra traffic cho server. Hoặc bạn có thể sử dụng Pingdom để ping trang blog của mình thường xuyên và đảm bảo sao cho server không bị tắt.
Heroku gồm các phiên bản nào?
Những phiên bản nổi bật nhất của Heroku có thể kể đến như: Heroku Postgres, Heroku Redis, Heroku Enterprise, Heroku Connect, Heroku Elements. Mỗi phiên bản sẽ có những tính năng nổi bật khác nhau để hỗ trợ người dùng.