Heroku Là Gì? Cách đưa ứng Dụng Lên Heroku | TopDev
Có thể bạn quan tâm
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).
Bạn có ý tưởng cần thử nghiệm và đo đạc các đánh giá của người dùng? Tuy nhiên để đưa một website hoạt động thì bạn cần nào là code, nào là cài đặt máy chủ, webserver...
Với Heroku, bạn chỉ cần tập trung chuyên môn vào code và deploy là bạn có thể đưa sản phẩm ngay đến người dùng để lấy ý kiến.
Heroku là gì?
Heroku là gì? Nó 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).
Nó rất linh hoạt và dễ sử dụng, cung cấp cho một con đường đơn giản nhất để đưa sản phẩm tiếp cận người dùng. Nó giúp các nhà phát triển tập trung vào phát triển sản phẩm mà không cần quan tâm đến việc vận hành máy chủ hay phần cứng…
Heroku hoạt động như thế nào?
Sau khái niệm Heroku là gì thì hãy cùng nhau tìm hiểu các hoạt động của nó. Heroku chạy các ứng dụng trong dynos – nó là một máy ảo mà có thể tăng giảm sức mạnh dự vào độ lớn của ứng dụng.
Hiểu đơn giản là dynos nhưng là các block, bạn muốn tăng tốc độ xử lý nhiều công việc phức tạp thì thêm block (scale chiều ngang) hoặc tăng kích thước block (scale chiều dọc) .
Heroku sẽ thanh toán phí tháng dựa trên số lượng dynos và kích thước mỗi dyno bạn sử dụng.
Heroku có ưu và khuyết điểm gì?
Bạn có thể dùng Heroku miễn phí cùng với vô vàn các addons hỗ trợ cực kỳ hữu ích thì đấy được coi là một trong những dịch vụ hấp dẫn. Hỗ trợ nhiều ngôn ngữ lập trình như:
- NodeJS
- Ruby
- Python
- PHP
- Java
- Scala
- Clojure
- Go
- Kotlin
Ngoài ra chúng ta còn được cung cấp Database, SSL miễn phí, hỗ trợ mạnh làm việc team cũng như liên kết với Github một cách đơn giản.
Khuyết điểm thì tất nhiên là có, việc miễn phí sẽ chỉ có giới hạn là 550 giờ mỗi tháng. Nếu muốn tăng lên 1000 giờ thì bạn cần cài đặt phương thức thanh toán trên đó. Tuy nhiên để kiểm nghiệm một ý tưởng hay một trang web nhỏ thì nhiêu đó là quá đủ để thu về kết quả.
Sau 2 đến 3 giờ nếu server không có người truy cập thì server sẽ chuyển sang trạng thái ngủ. Về việc server bị tắt khi không có traffic, cách đơn giản nhất là tự tạo traffic cho nó.
Cách dễ nhất là dùng Pingdom để ping trang blog của bạn thường xuyên giữ cho server không bị tắt.
Heroku có những tính năng gì?
- 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.
Các nhóm này có thể tự tổ chức, kiểm soát, thêm thành viên và sử dụng các công cụ cộng tác như Heroku Pipelines.
- 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/herokuSau đó xác định phiên bản của nó bằng command:
heroku --versionBước 2: Cài đặt ứng dụng Laravel
Mở terminal và sử dụng command sau:
composer create-project laravel/laravel herokularavel --prefer-distBướ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 initBước 5: Đăng nhập vào Heroku từ terminal
heroku loginBướ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.gitNó 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 --showNó 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 masterVà bạn sẽ thấy:
Jenkins là gì? Build và deploy code nhanh chóng với Jenkins Kubernetes là gì? Cùng tìm hiểu cách hoạt động của K8s Microservices là gì? Speed up Microservices 1: Tác dụng phụ và một số chiến lược cơ bảnBước 9: Start ứng dụng
Để start ứng dụng trên Heroku, bạn gõ lệnh sau:
heroku openLú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.
Có thể bạn muốn xem thêm:
- Vận hành một Website Free trên Heroku, tại sao không?
- Bí kiếp để host apps hoàn toàn miễn phí
- Sự khác biệt giữa Database và Data Warehouse
Xem thêm tuyển dụng ngành cntt hấp dẫn trên TopDev
Từ khóa » Heroku Là Gì
-
Heroku Là Gì ? Deploy Sử Dụng Heroku - Hoclaptrinh
-
Heroku Là Gì? Cách đăng Ký Heroku Và đưa ứng Dụng Lên - Tino Group
-
HƯỚNG DẪN DEPLOY ỨNG DỤNG LÊN HEROKU | CO-WELL Asia
-
Heroku Là Gì ? Tổng Quan Về Nền Tảng đám Mây Heroku
-
Đưa Dự án Lên "mây" Với Heroku - đừng để Dự án Của Bạn Trên Local
-
Heroku Là Gì? Phân Tích Các Tính Năng Và ưu Nhược điểm - Teky
-
Heroku Là Gì? Tìm Hiểu Tổng Quan Về Heroku - ITNavi
-
Tìm Hiểu Heroku Là Gì? Vì Sao Lại được Nhiều Người Sử Dụng?
-
Heroku Là Gì? Định Nghĩa Và Các đặc điểm Nổi Bật - Bizfly Cloud
-
Cách Tạo Và Deploy Một ứng Dụng đơn Giản Lên Heroku - Viblo
-
Triển Khai Web Trên Heroku - Viblo
-
Heroku Là Gì? Định Nghĩa, Khái Niệm
-
[Phần 2] Tự động Hóa Công Việc Nhàm Chán Với Heroku - Kipalog
-
Heroku Là Gì? Hướng Dẫn Tạo Tài Khoản HEROKU Nhanh