Heroku

**Heroku** là một nền tảng đám mây như một dịch vụ (PaaS) hỗ trợ một vài ngôn ngữ lập trình. Là một trong những nền tảng đám mây đầu tiên, Heroku đã được phát triển từ tháng 6 năm 2007, khi nó chỉ hỗ trợ ngôn ngữ lập trình Ruby, nhưng hiện đã hỗ trợ Java, Node.js, Scala, Clojure, Python, PHP và Go. Vì lý do này, Heroku được cho là một nền tảng đa ngôn ngữ vì nó có các tính năng để nhà phát triển xây dựng, chạy và mở rộng các ứng dụng theo cách tương tự trên hầu hết các ngôn ngữ. Heroku được Salesforce mua lại vào năm 2010 với giá 212 triệu USD.

## Lịch sử
Heroku ban đầu được phát triển bởi James Lindenbaum, Adam Wiggins, và Orion Henry để hỗ trợ các dự án tương thích với nền tảng lập trình Ruby có tên là Rack. Quá trình phát triển mẫu đầu tiên mất khoảng sáu tháng. Sau đó, Heroku phải đối mặt với những thất bại vì thiếu khách hàng thị trường thích hợp khi nhiều nhà phát triển ứng dụng sử dụng các công cụ và môi trường của riêng họ. Tháng 1 năm 2009, một nền tảng mới đã được ra mắt, nền tảng này được xây dựng gần như hoàn toàn từ đầu sau ba tháng nỗ lực. Tháng 10 năm 2009, Byron Sebastian gia nhập Heroku với tư cách là Giám đốc điều hành. Ngày 8 tháng 12 năm 2010, Salesforce.com đã mua lại Heroku như một công ty con thuộc sở hữu hoàn toàn của Salesforce.com. Ngày 12 tháng 7 năm 2011, Yukihiro "Matz" Matsumoto, nhà thiết kế chính của ngôn ngữ lập trình Ruby, đã gia nhập công ty với tư cách là Kiến trúc sư trưởng Ruby. Cùng tháng đó, Heroku đã hỗ trợ thêm cho Node.js và Clojure. Ngày 15 tháng 9 năm 2011, Heroku và Facebook đã giới thiệu Heroku dành cho Facebook. Hiện tại, ngoài cơ sở dữ liệu tiêu chuẩn là PostgreSQL, Heroku hỗ trợ cả Redis.

Tháng 8 năm 2022, Heroku đã thông báo rằng các gói miễn phí của họ sẽ bị ngừng, với lý do người dùng gian lận và lạm dụng.

## Từ nguyên
Cái tên "Heroku" là từ kết hợp  của "heroic" (anh hùng) và "haiku". Chủ đề tiếng Nhật ám chỉ tới Matz vì đã tạo ra Ruby. Bản thân cái tên này được phát âm tương tự như từ tiếng Nhật có nghĩa là "rộng rãi" (), mặc dù những người sáng tạo ra Heroku không muốn tên dự án của họ có một ý nghĩa cụ thể trong tiếng Nhật hoặc bất kỳ ngôn ngữ nào khác, và vì vậy đã chọn tự tạo ra cái tên này.

## Cấu trúc

Các ứng dụng chạy trên Heroku thường có một miền duy nhất được sử dụng để định tuyến các yêu cầu HTTP đến đúng cùng chứa ứng dụng hoặc *dyno.*  Mỗi dyno nằm trên một "lưới dyno" bao gồm một vài máy chủ. Máy chủ Git của Heroku xử lý các lần đẩy kho ứng dụng từ những người dùng được cho phép.

Tất cả các dịch vụ của Heroku đều được lưu trữ trên nền tảng điện toán đám mây EC2 của Amazon.

## Các sản phẩm

; Nền tảng Heroku
: Mạng Heroku chạy các ứng dụng của khách hàng trong các vùng chứa ảo thực thi trên môi trường thời gian chạy đáng tin cậy. Heroku gọi những vùng chứa này là "Dyno". Các Dyno này có thể chạy mã được viết bằng Node, Ruby, PHP, Go, Scala, Python, Java hoặc Clojure. Heroku cũng cung cấp các gói xây dựng tùy chỉnh mà nhà phát triển có thể triển khai ứng dụng bằng bất kỳ ngôn ngữ nào khác. Heroku cho phép nhà phát triển mở rộng ứng dụng ngay lập tức chỉ bằng cách tăng số lượng dyno hoặc bằng cách thay đổi loại dyno mà ứng dụng đang chạy.
; Heroku Postgres
: Heroku Postgres là dịch vụ cơ sở dữ liệu đám mây (DBaaS) cho Heroku dựa trên PostgreSQL. Heroku Postgres cung cấp các tính năng như bảo vệ liên tục, khôi phục và tính sẵn sàng cao; cũng như phân nhánh, người theo dõi và dataclip.
; Heroku Redis
: Heroku Redis là Redis được Heroku tùy chỉnh để cung cấp trải nghiệm tốt hơn cho nhà phát triển. Nó được quản lý hoàn toàn và được cung cấp như một dịch vụ của Heroku. Nó giúp quản lý các phiên bản bằng CLI, liên kết dữ liệu với Postgres để có được thông tin chi tiết về doanh nghiệp bằng cách sử dụng các công cụ SQL và cho phép khách hàng có được khả năng hiển thị hiệu suất.
; Heroku Teams
: Heroku Teams là một công cụ quản lý nhóm cung cấp khả năng cộng tác và kiểm soát để tập hợp các nhà phát triển, quy trình và công cụ của khách hàng lại với nhau nhằm tạo ra phần mềm tốt hơn. Với Heroku Teams, các nhóm có thể tự tổ chức, thêm và quản lý thành viên, có được quyền kiểm soát chi tiết với quyền cấp ứng dụng và cũng có thể sử dụng các công cụ cộng tác như Heroku Pipelines. Nó cũng cung cấp quyền quản trị được ủy quyền và thanh toán tập trung.
; Heroku Enterprise
: Heroku Enterprise cung cấp dịch vụ cho các công ty lớn giúp họ cải thiện sự hợp tác giữa các nhóm khác nhau. Nó cung cấp một tập hợp các tính năng như kiểm soát truy cập chi tiết, liên kết danh tính và không gian riêng để quản lý quy trình phát triển ứng dụng doanh nghiệp, tài nguyên và người dùng của họ.
; Heroku Connect
: Heroku Connect cho phép người dùng tạo các ứng dụng Heroku có thể dễ dàng tích hợp với việc triển khai Salesforce trên quy mô lớn. Điều này được thực hiện bằng cách đồng bộ hóa dữ liệu liền mạch giữa cơ sở dữ liệu Heroku Postgres và các tổ chức Salesforce.
; Heroku Elements
: Heroku Elements cung cấp cho người dùng tiện ích bổ sung (công cụ và dịch vụ để phát triển, mở rộng và vận hành ứng dụng), Gói xây dựng (tự động hóa quy trình xây dựng cho các ngôn ngữ và khuôn khổ ưa thích) và Nút (công cụ cung cấp, cấu hình chỉ bằng một cú nhấp chuột và triển khai các thành phần, thư viện và mẫu của bên thứ ba).

## Tham khảo


## Liên kết ngoài

*