Heroku was initially developed by James Lindenbaum, Adam Wiggins,[5] and Orion Henry[6] for supporting projects that were compatible with the Ruby programming platformRack.[7] The prototype development took around six months. Later on, Heroku faced setbacks because of a lack of proper market customers as many app developers used their own tools and environment.[8] In January 2009, a new platform was launched which was built almost from scratch after a three-month effort. In October 2009, Byron Sebastian joined Heroku as CEO.[9] On December 8, 2010, Salesforce.com acquired Heroku as a wholly owned subsidiary of Salesforce.com. On July 12, 2011,Yukihiro "Matz" Matsumoto, the chief designer of theRuby programming language, joined the company as Chief Architect for Ruby.[10] That same month, Heroku added support forNode.js andClojure. On September 15, 2011, Heroku andFacebook introduced Heroku for Facebook.[11] At present Heroku supportsRedis databases[12][13] in addition to its standardPostgreSQL.[14]
On April 7, 2022, Heroku suffered a significant security intrusion when attackers were able to obtain an access token for a Heroku account that was used for automation purposes.[15][16] Heroku confirmed that the attack accessedOAuth bearer tokens used for integration withGitHub andsalted and hashed customer passwords in May 2022.[15] The OAuth2 tokens were then used in targeted attacks against an unknown set of GitHub repositories apparently in an attempt to find secret tokens, wherenpm was the primary repository GitHub identified as a target.[16] It is unclear if the original source of the breach is known or not.[17]
In August 2022, Heroku announced that its free plans would be discontinued, citing fraud and abuse as reasons for the change.[18]
In March 2024 at Kubecon Paris, Heroku announced that it was replatforming onto Kubernetes.[19]
The name "Heroku" is aportmanteau of "heroic" and "haiku".[20] The Japanese theme is a nod toMatz for creating Ruby. The creators of Heroku did not want the name of their project to have a particular meaning, in Japanese or any other language, and so chose to invent a name.[citation needed]
A diagrammatic view of the working of Heroku Platform
Applications that are run on Heroku typically have a uniquedomain used to routeHTTP requests to the correctapplication container[21] ordyno.[22] Each of the dynos are spread across a "dyno grid" which consists of several servers. Heroku'sGit server handles application repository pushes from permitted users.[23]
All Heroku services are hosted on Amazon'sEC2 cloud-computing platform.[24]
The Heroku network runs the customer's apps in virtual containers which execute on a reliable runtime environment. Heroku calls these containers "Dynos". These Dynos can run code written in Node, Ruby, PHP, Go, Scala, Python, Java, or Clojure. Heroku also provides custom build packs with which the developer can deploy apps in any other language. Heroku lets the developer scale the app instantly just by either increasing the number of dynos or by changing the type of dyno the app runs in.[25]
Heroku Postgres
Heroku Postgres is theCloud database (DBaaS) service for Heroku based onPostgreSQL. Heroku Postgres provides features like continuous protection, rollback, and high availability; also forks, followers, and data clips.
Heroku Redis
Heroku Redis is the customizedRedis from Heroku to provide a better developer experience. It is fully managed and is provided as a service by Heroku. It helps in managing instances with a CLI, associate data with Postgres to gain business insights using SQL tools, and lets customer gain performance visibility.
Heroku Teams
Heroku Teams is a team management tool which provides collaboration and controls to bring a customer's developers, processes, and tools together in order to build better software. With Heroku Teams, teams can self-organize, add, and manage members, get fine-grained control with app-level permissions, and also use collaboration tools like Heroku Pipelines. It also provides delegated administration and centralized billing.
Heroku Enterprise
Heroku Enterprise provides services to large companies which help them to improve collaboration among different teams. It provides a set of features like fine-grained access controls, identity federation, and private spaces to manage their enterprise application development process, resources, and users.
Heroku Connect
Heroku Connect lets users create Heroku apps that can easily integrate withSalesforce deployments at scale. This is done by having seamless data synchronization between Heroku Postgres databases and Salesforce organizations.
Heroku Elements
Heroku Elements provides users with Add-ons (tools and services for developing, extending, and operating the app), Buildpacks (which automate the build processes for the preferred languages and frameworks), and Buttons (a tool for the one-click provisioning, configuring, and deployment of third party components, libraries, and patterns).