Heroku

Last updated
Heroku, Inc.
Company type Subsidiary
Industry Cloud platform as a service
Founded2007;17 years ago (2007)
FounderJames Lindenbaum, Adam Wiggins, Orion Henry
Headquarters San Francisco, California
Key people
Bob Wise (CEO), Gail Frederick (CTO)
ProductsHeroku Platform, Heroku Postgres, Heroku Redis, Heroku Enterprise, Heroku Teams, Heroku Connect, Heroku Elements, Heroku Review Apps [1] [2]
Parent Salesforce.com
Website heroku.com

Heroku is a cloud platform as a service (PaaS) supporting several programming languages. As one of the first cloud platforms, Heroku has been in development since June 2007, when it supported only the Ruby programming language, but now also supports Java, Node.js, Scala, Clojure, Python, PHP, and Go. [3] For this reason, Heroku is said to be a polyglot platform as it has features for a developer to build, run and scale applications in a similar manner across most of these languages. Heroku was acquired by Salesforce in 2010 for $212 million. [4]

Contents

History

Heroku was initially developed by James Lindenbaum, Adam Wiggins, [5] and Orion Henry [6] for supporting projects that were compatible with the Ruby programming platform Rack. [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 the Ruby programming language, joined the company as Chief Architect for Ruby. [10] That same month, Heroku added support for Node.js and Clojure. On September 15, 2011, Heroku and Facebook introduced Heroku for Facebook. [11] At present Heroku supports Redis databases [12] [13] in addition to its standard PostgreSQL. [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 accessed OAuth bearer tokens used for integration with GitHub and salted 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, where npm 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]

Etymology

The name "Heroku" is a portmanteau of "heroic" and "haiku". [19] The Japanese theme is a nod to Matz for creating Ruby. The name itself is pronounced similarly to the Japanese word meaning “widely” (hiroku), though 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.

Architecture

A diagrammatic view of the working of Heroku Platform ArchitectureHeroku.png
A diagrammatic view of the working of Heroku Platform

Applications that are run on Heroku typically have a unique domain used to route HTTP requests to the correct application container [20] or dyno. [21] Each of the dynos are spread across a "dyno grid" which consists of several servers. Heroku's Git server handles application repository pushes from permitted users. [22]

All Heroku services are hosted on Amazon's EC2 cloud-computing platform. [23]

Products

The Heroku Platform
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. [24]
Heroku Postgres
Heroku Postgres is the Cloud database (DBaaS) service for Heroku based on PostgreSQL. Heroku Postgres provides features like continuous protection, rollback, and high availability; also forks, followers, and data clips.
Heroku Redis
Heroku Redis is the customized Redis 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 with Salesforce 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).

Related Research Articles

<span class="mw-page-title-main">PostgreSQL</span> Free and open-source object relational database management system

PostgreSQL, also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. PostgreSQL features transactions with atomicity, consistency, isolation, durability (ACID) properties, automatically updatable views, materialized views, triggers, foreign keys, and stored procedures. It is supported on all major operating systems, including Linux, FreeBSD, OpenBSD, macOS, and Windows, and handles a range of workloads from single machines to data warehouses or web services with many concurrent users.

Web development is the work involved in developing a website for the Internet or an intranet. Web development can range from developing a simple single static page of plain text to complex web applications, electronic businesses, and social network services. A more comprehensive list of tasks to which Web development commonly refers, may include Web engineering, Web design, Web content development, client liaison, client-side/server-side scripting, Web server and network security configuration, and e-commerce development.

<span class="mw-page-title-main">Ruby on Rails</span> Server-side open source web application framework

Ruby on Rails is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web pages. It encourages and facilitates the use of web standards such as JSON or XML for data transfer and HTML, CSS and JavaScript for user interfacing. In addition to MVC, Rails emphasizes the use of other well-known software engineering patterns and paradigms, including convention over configuration (CoC), don't repeat yourself (DRY), and the active record pattern.

In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on top of" the resulting platform.

Google App Engine is a cloud computing platform as a service for developing and hosting web applications in Google-managed data centers. Applications are sandboxed and run across multiple servers. App Engine offers automatic scaling for web applications—as the number of requests increases for an application, App Engine automatically allocates more resources for the web application to handle the additional demand.

<span class="mw-page-title-main">Microsoft Azure</span> Cloud computing platform by Microsoft

Microsoft Azure, often referred to as Azure, is a cloud computing platform run by Microsoft. It offers access, management, and the development of applications and services through global data centers. It also provides a range of capabilities, including software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS). Microsoft Azure supports many programming languages, tools, and frameworks, including Microsoft-specific and third-party software and systems.

<span class="mw-page-title-main">Redis</span> Source available in-memory key–value database

Redis is a formerly open-source, now "source available", in-memory storage, used as a distributed, in-memory key–value database, cache and message broker, with optional durability. Because it holds all data in memory and because of its design, Redis offers low-latency reads and writes, making it particularly suitable for use cases that require a cache. Redis is the most popular NoSQL database, and one of the most popular databases overall. Redis is used in companies like Twitter, Airbnb, Tinder, Yahoo, Adobe, Hulu, Amazon and OpenAI.

<span class="mw-page-title-main">Opa (programming language)</span>

Opa is an open-source programming language for developing scalable web applications.

<span class="mw-page-title-main">OpenShift</span> Cloud computing software

OpenShift is a family of containerization software products developed by Red Hat. Its flagship product is the OpenShift Container Platform — a hybrid cloud platform as a service built around Linux containers orchestrated and managed by Kubernetes on a foundation of Red Hat Enterprise Linux. The family's other products provide this platform through different environments: OKD serves as the community-driven upstream, Several deployment methods are available including self-managed, cloud native under ROSA, ARO and RHOIC on AWS, Azure, and IBM Cloud respectively, OpenShift Online as software as a service, and OpenShift Dedicated as a managed service.

Jelastic is a cloud platform software vendor that provides multi-cloud Platform as a Service-based on container technology for hosting service providers, ISVs, telecommunication companies, enterprises and developers. The platform is available as public cloud in over 70 data centers, as well as virtual and on-premises servers. Jelastic provides support of Java, PHP, Ruby, Node.js, Python, Go environments, custom Docker containers and Kubernetes clusters.

TogglTrack is a time tracking software developed by Toggl OÜ which is headquartered in Tallinn, Estonia, The company offers online time tracking and reporting services through their website along with mobile and desktop applications.

<span class="mw-page-title-main">Plotly</span> Canadian computing company

Plotly is a technical computing company headquartered in Montreal, Quebec, that develops online data analytics and visualization tools. Plotly provides online graphing, analytics, and statistics tools for individuals and collaboration, as well as scientific graphing libraries for Python, R, MATLAB, Perl, Julia, Arduino, JavaScript and REST.

<span class="mw-page-title-main">Cocaine (PaaS)</span> Platform as a service system

Cocaine was an open-source PaaS system for creating custom cloud hosting apps that are similar to Bluemix, Google App Engine, or Heroku. Several services have already been implemented this way, including a service for detecting a user's region or language, a service for accessing MongoDB storage, and a URL fetcher.

Google Cloud Platform (GCP), offered by Google, is a suite of cloud computing services that provides a series of modular cloud services including computing, data storage, data analytics, and machine learning, alongside a set of management tools. It runs on the same infrastructure that Google uses internally for its end-user products, such as Google Search, Gmail, and Google Docs, according to Verma, et.al. Registration requires a credit card or bank account details.

Wercker is a Docker-based continuous delivery platform that helps software developers build and deploy their applications and microservices. Using its command-line interface, developers can create Docker containers on their desktop, automate their build and deploy processes, testing them on their desktop, and then deploy them to various cloud platforms, ranging from Heroku to AWS and Rackspace. The command-line interface to Wercker has been open-sourced.

<span class="mw-page-title-main">DBeaver</span> Multi-platform database administration software

DBeaver is a SQL client software application and a database administration tool. For relational databases it uses the JDBC application programming interface (API) to interact with databases via a JDBC driver. For other databases (NoSQL) it uses proprietary database drivers. It provides an editor that supports code completion and syntax highlighting. It provides a plug-in architecture that allows users to modify much of the application's behavior to provide database-specific functionality or features that are database-independent. This is a desktop application written in Java and based on Eclipse platform.

AppSheet is an application that provides a no-code development platform for application software, which allows users to create mobile, tablet, and web applications using data sources like Google Drive, DropBox, Office 365, and other cloud-based spreadsheet and database platforms. The platform can be utilized for a broad set of business use cases including project management, customer relationship management, field inspections, and personalized reporting.

Microsoft, a technology company historically known for its opposition to the open source software paradigm, turned to embrace the approach in the 2010s. From the 1970s through 2000s under CEOs Bill Gates and Steve Ballmer, Microsoft viewed the community creation and sharing of communal code, later to be known as free and open source software, as a threat to its business, and both executives spoke negatively against it. In the 2010s, as the industry turned towards cloud, embedded, and mobile computing—technologies powered by open source advances—CEO Satya Nadella led Microsoft towards open source adoption although Microsoft's traditional Windows business continued to grow throughout this period generating revenues of 26.8 billion in the third quarter of 2018, while Microsoft's Azure cloud revenues nearly doubled.

<span class="mw-page-title-main">Appery.io</span> App-building platform

Appery.io is a cloud-based HTML5, Ionic, jQuery Mobile, and hybrid app-building platform for developing mobile apps, web apps, and PWAs. Appery.io is a browser-based drag-and-drop visual builder tool that supports Android and iOS with integrated Apache Cordova/PhoneGap output. The platform is used by DIYers to create apps for their customers.

HammerDB is an open source database benchmarking application developed by Steve Shaw. HammerDB supports databases such as Oracle, SQL Server, Db2, MySQL and MariaDB. HammerDB is written in TCL and C, and is licensed under the GPL v3.

References

  1. "Heroku Review Apps - wikieduonline".
  2. "Heroku Review Apps now Generally Available". blog.heroku.com. 18 April 2016.
  3. "About Heroku". Stack Overflow. Retrieved March 2, 2016.
  4. Salesforce.com Buys Heroku For $212 Million In Cash https://techcrunch.com/2010/12/08/breaking-salesforce-buys-heroku-for-212-million-in-cash/
  5. "Adam Wiggins" . Retrieved 22 October 2016.
  6. https://www.linkedin.com/in/orion-henry-9056727 [ self-published source ]
  7. Ruby on Rails Startup Heroku Gets $3 Million, Tech Crunch, 2008-05-08
  8. Heroku Cloud Platform, TheTechnologyVault, 11 January 2023
  9. SourceLabs' Byron Sebastian Joins Heroku as CEO, Venture Beat, 2009-10-14
  10. Ruby's Creator, Matz, Joins Heroku (article), Ruby Inside, 2011-07-12
  11. Facebook Partners With Heroku to Offer Developers Free Sample Application Hosting, Social Times, archived from the original on 2016-03-06
  12. "Six Things to Consider When Using Redis on Heroku". Redis Labs. 9 November 2012. Retrieved March 2, 2016.
  13. NoSQL, Heroku, and You (weblog), Heroku, 2010-07-20
  14. "Rails Heroku Tutorial". RailsApps Project. Retrieved March 2, 2016.
  15. 1 2 Alspach, Kyle. "Heroku-GitHub cyberattack included stolen customer passwords - Protocol" . Retrieved 2023-07-29.
  16. 1 2 Duckett, Chris. "Heroku to begin user password reset almost a month after GitHub OAuth token theft". ZDNET. Retrieved 2023-07-29.
  17. "GitHub hacked, npm data stolen after Heroku, Travis-CI tokens abused". The Stack. 2022-04-19. Retrieved 2023-07-29.
  18. Wiggers, Kyle (August 25, 2022). "Heroku announces plans to eliminate free plans, blaming 'fraud and abuse'". TechCrunch . Retrieved August 25, 2022.
  19. "The term is merger of "Hero" and "Haiku". | Hacker News". news.ycombinator.com. Retrieved 2016-08-05.
  20. "What is application containerization (app containerization)? - Definition from WhatIs.com" . Retrieved 22 October 2016.
  21. "Dynos and the Dyno Manager - Heroku Dev Center" . Retrieved 22 October 2016.
  22. "Deploying Node.js Apps on Heroku - Heroku Dev Center" . Retrieved 22 October 2016.
  23. "Heroku Security" . Retrieved 1 December 2017.
  24. Middleton, Neil; Schneeman, Richard (November 2013). "How Heroku Works". Heroku: Up and Running. Sebastopol, CA: O'Reilly Media, Inc. ISBN   978-1-4493-4138-1 . Retrieved 2024-03-16.