User:Prashantgupta24/sandbox

Heroku (her-OH-koo) is a cloud platform as a service (PaaS) supporting several programming languages. It was founded by Orion Henry, James Lindenbaum, and Adam Wiggins. Heroku, one of the first cloud platforms, has been in development since June 2007, when it supported only the Ruby programming language, but has since added support for Java, Node.js, Scala, Clojure, Python, PHP and Go. Heroku was acquired by Salesforce.com in 2010. The base operating system is Debian or, in the newest stack, the Debian-based Ubuntu.

History
James Lindenbaum, Adam Wiggins, and Orion Henry founded Heroku supporting Rack-compatible projects. In October 2009, Byron Sebastian joined Heroku as CEO. On December 8, 2010, Salesforce.com acquired Heroku as a wholly owned subsidiary of Salesforce.com. Yukihiro "Matz" Matsumoto, the chief designer of the Ruby programming language, joined the company as Chief Architect, Ruby on July 12, 2011. That same month, Heroku added support for Node.js and Clojure. On September 15, 2011, Heroku and Facebook introduced Heroku for Facebook. Heroku now supports Cloudant, Couchbase Server, MongoDB and Redis databases in addition to its standard PostgreSQL, both as part of its platforms and as standalone services. Applications that are run from the Heroku server use the Heroku DNS Server to direct to the application domain (typically "applicationname.herokuapp.com"). Each of the application containers or dynos are spread across a "dyno grid" which consists of several servers. Heroku's Git server handles application repository pushes from permitted users.

There was a 24 hour service outage caused by June 2012 North American derecho. This resulted in many applications hosted by Heroku to go offline.

Features

 * Heroku DX : Heroku has recently provided Heroku DX, their initiative towards the new Heroku Developer Experience. This includes great new benefits to developers, such as:
 * Heroku Button: A one touch click which launches the app as well as the environment configuration.
 * Heroku Dashboard: This features a new visual design, which helps organizing your apps, new interactive patterns, which simplifies dragging and dropping app assignments, and a new activity section, which helps users collaborate.


 * Heroku Redis: It is an in-memory key-value data store, which is run by Heroku. This service is provisioned and managed as an add-on. Heroku Redis can be accessed from any language supported by Heroku with the help of a Redis driver.


 * Heroku Postgres: It is a reliable SQL database service for developers, which is fully managed by Heroku and provides a powerful suite of tools.


 * Heroku Private Spaces: An initiative which gives users the advantages associated with the cloud while providing greater trust controls that are normally associated with on-premise solutions. All elements are run in a network isolated environment, and this separates them from the public systems. Another advantage achieved is that it allows for more geographical control. To top it off, a private space needs a single command to execute.


 * Heroku Flow: A new feature which lets the users support and visualize the whole process of continuous delivery for their apps, all the way from development to production.

Advantages

 * Improved Performance dynos : Heroku provides new and improved dynos, which have higher RAM than previous versions. This also means higher consistency and faster response times. Customers can enjoy the benefits of an entire virtual machine through the performance-M dyno, as it can be reserved for a single customer. Moreover, their existing applications can be migrated within seconds.


 * Drag To Scale: Scaling is made extremely easy through Heroku admin panel. By just logging to the Heroku admin panel and dragging a vertical bar which increases the number of dynos handling the application, users can scale their application to handle increased traffic load.


 * Open Source components : Heroku provides open source components, such as Linux or PostgreSQL, which increase flexibility of use.


 * Stable deployment platforms : The deployment platforms offered by Heroku are stable since they are actively monitored by people managing Heroku.

Limitations

 * Request timeout not configurable: Sometimes, an application can take a lot of time to process a web request. The router will terminate the request if it takes longer than than 30 seconds to complete. Heroku has a default 30 second request timeout, which is not configurable. This could mean that after 30 seconds the request will be interrupted, but the code will keep on running, making the current dyno unavailable. Only for some languages, the timeout can be adjusted in  as follows :


 * Ephemeral filesystem : Heroku uses ephemeral file system, which means that you cannot upload files directly to the file system as they will be deleted on restart.


 * Price : Heroku provides 512 MB RAM and 1 web/1 worker for Free, but any additional worker is $25 a month. Also, it must remain inactive for a period of 6 hours in a 24 hour period. There are options to add more RAM and workers, but those options may reach $500 per worker per month. Heroku also offers a number of services and add-ons which cost extra.

Competitors
Some of the competitors in PaaS space are:
 * Cloud Foundry
 * CloudBees
 * dotCloud
 * AppHarbor
 * CloudControl
 * Engine Yard
 * AWS Elastic Beanstalk
 * Google App Engine
 * OpenShift