Heroku ban đầu được phát triển bởi James Lindenbaum, Adam Wiggins,[5] 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.[6] 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ọ.[cần dẫn nguồn] 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.[7] 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.[8] 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.[9] Hiện tại, ngoài cơ sở dữ liệu tiêu chuẩn là PostgreSQL,[10] Heroku hỗ trợ cả Redis.[11][12]
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.[13]
Cái tên "Heroku" là từ kết hợp của "heroic" (anh hùng) và "haiku".[14] 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” (hiroku), 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á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[15] hoặc dyno.[16] 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.[17]
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.[18]
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).