Created in 2007, Heroku was one of the very first cloud applications, which means the entire service was available on its website, heroku.com, as opposed to the end-user having to access the service locally on one's own company servers. Heroku provides a suite of tools for developers or companies of any size to quickly build and deploy their applications to the web, in a variety of languages. This leads to a faster feedback loop and time to market for applications.
Let’s say a developer has an application they want to publish to the web, like a two-player tic-tac-toe game or a shopping-list app. Before Heroku, developers had to configure a server from the ground up, which could take a few hours to a few days just to set up a basic webserver. This usually involved creating and managing many different pieces of software in a Unix operating system environment, deciding on hosting, software, and hardware. A developer also needed to manually increase or decrease application processes based on the demand for the application's resources. This crucial DevOps role is inherently risky, time-consuming, and usually requires expertise across multiple domains, including scripting, code deployment, and a wide variety of open source tools and technologies. Heroku relieves much of this stress and workload.
Heroku’s cloud-based deployment platform allows application code to be bundled together with the necessary configuration settings, dependency description, and build requirements, and deployed to a virtual Unix machine called a slug. Scaling up or down — increasing or decreasing the capacity for the server to handle requests — is as easy as increasing the amount of running processes, called “dynos,” for your server. Heroku’s platform supports many of today’s most popular programming languages, including Ruby, Node.js, Java, Python, Clojure, Scala, Go, and PHP.
Recognizing that developers are critical to application and company success, Heroku optimizes for developer happiness. It focuses relentlessly on providing an outstanding experience for everyone involved in the development workflow. The Heroku dashboard and suite of tools allow developers whose main focus is usually on application development to manage the broad and complex responsibilities of DevOps. Today Heroku processes more than 13 billion requests a day and has more than 6 million apps on its platform, deployed by companies like IFTTT, Macy’s, teespring, and more.
Heroku also provides an ecosystem of more than 150 integrated applications for add-on features, some of the most popular being logging with Papertrail, caching with MemCachier, monitoring with New Relic, and database provisioning and management with Postgresql.