StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. Application & Data
  3. Platform as a Service
  4. Platform As A Service
  5. Heroku vs Kubernetes

Heroku vs Kubernetes

OverviewDecisionsComparisonAlternatives

Overview

Heroku
Heroku
Stacks25.8K
Followers20.5K
Votes3.2K
Kubernetes
Kubernetes
Stacks61.2K
Followers52.8K
Votes685

Heroku vs Kubernetes: What are the differences?

Heroku is a cloud platform that enables developers to build, deploy, and scale applications easily, while Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications across clusters of hosts. Let's explore the key differences between them.

  1. Hosting Platform: Heroku is a fully managed Platform as a Service (PaaS) that simplifies application deployment, while Kubernetes is an open-source container orchestration platform for automating the deployment, scaling, and management of containerized applications.

  2. Level of Control: Heroku provides a higher level of abstraction and hides the underlying infrastructure details, making it easy to deploy applications without worrying about infrastructure management. In contrast, Kubernetes offers fine-grained control over the infrastructure, allowing users to customize and optimize their deployment configurations.

  3. Scalability: Heroku provides an auto-scaling feature that automatically adjusts the number of dynos (containers) based on the application's load. Kubernetes also supports auto-scaling but provides more advanced scaling features, such as horizontal pod autoscaling, which allows scaling individual pods based on CPU utilization.

  4. Customization and Extensibility: Heroku provides a streamlined user experience with limited customization options, focusing on simplicity. On the other hand, Kubernetes offers extensive customization and extensibility options, allowing users to configure various resources like networking, storage, and security policies according to their specific requirements.

  5. Vendor Lock-In: Heroku is a cloud-based platform provided by Salesforce, hence there is a level of vendor lock-in as all applications need to be deployed on the Heroku platform. Kubernetes, being an open-source technology, provides more flexibility and avoids vendor lock-in as it can be deployed on any cloud provider or on-premises infrastructure.

  6. Learning Curve: Heroku is known for its simplicity and ease of use, making it quick to learn and deploy applications. On the other hand, Kubernetes has a steeper learning curve due to its complex architecture and various concepts like pods, services, replica sets, and deployments. It requires more time and effort to master Kubernetes compared to Heroku.

In summary, Heroku is a managed PaaS with simplified deployment, while Kubernetes provides fine-grained control and advanced features for container orchestration, making it more suitable for complex and scalable deployments.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Advice on Heroku, Kubernetes

Simon
Simon

Senior Fullstack Developer at QUANTUSflow Software GmbH

Apr 27, 2020

DecidedonGitHubGitHubGitHub PagesGitHub PagesMarkdownMarkdown

Our whole DevOps stack consists of the following tools:

  • @{GitHub}|tool:27| (incl. @{GitHub Pages}|tool:683|/@{Markdown}|tool:1147| for Documentation, GettingStarted and HowTo's) for collaborative review and code management tool
  • Respectively @{Git}|tool:1046| as revision control system
  • @{SourceTree}|tool:1599| as @{Git}|tool:1046| GUI
  • @{Visual Studio Code}|tool:4202| as IDE
  • @{CircleCI}|tool:190| for continuous integration (automatize development process)
  • @{Prettier}|tool:7035| / @{TSLint}|tool:5561| / @{ESLint}|tool:3337| as code linter
  • @{SonarQube}|tool:2638| as quality gate
  • @{Docker}|tool:586| as container management (incl. @{Docker Compose}|tool:3136| for multi-container application management)
  • @{VirtualBox}|tool:774| for operating system simulation tests
  • @{Kubernetes}|tool:1885| as cluster management for docker containers
  • @{Heroku}|tool:133| for deploying in test environments
  • @{nginx}|tool:1052| as web server (preferably used as facade server in production environment)
  • @{SSLMate}|tool:2752| (using @{OpenSSL}|tool:3091|) for certificate management
  • @{Amazon EC2}|tool:18| (incl. @{Amazon S3}|tool:25|) for deploying in stage (production-like) and production environments
  • @{PostgreSQL}|tool:1028| as preferred database system
  • @{Redis}|tool:1031| as preferred in-memory database/store (great for caching)

The main reason we have chosen Kubernetes over Docker Swarm is related to the following artifacts:

  • Key features: Easy and flexible installation, Clear dashboard, Great scaling operations, Monitoring is an integral part, Great load balancing concepts, Monitors the condition and ensures compensation in the event of failure.
  • Applications: An application can be deployed using a combination of pods, deployments, and services (or micro-services).
  • Functionality: Kubernetes as a complex installation and setup process, but it not as limited as Docker Swarm.
  • Monitoring: It supports multiple versions of logging and monitoring when the services are deployed within the cluster (Elasticsearch/Kibana (ELK), Heapster/Grafana, Sysdig cloud integration).
  • Scalability: All-in-one framework for distributed systems.
  • Other Benefits: Kubernetes is backed by the Cloud Native Computing Foundation (CNCF), huge community among container orchestration tools, it is an open source and modular tool that works with any OS.
12.8M views12.8M
Comments
Russel
Russel

Lead Engineer at StackShare

Jul 19, 2019

DecidedonHerokuHerokuKubernetesKubernetesAmazon EKSAmazon EKS

We began our hosting journey, as many do, on Heroku because they make it easy to deploy your application and automate some of the routine tasks associated with deployments, etc. However, as our team grew and our product matured, our needs have outgrown Heroku. I will dive into the history and reasons for this in a future blog post.

We decided to migrate our infrastructure to Kubernetes running on Amazon EKS. Although Google Kubernetes Engine has a slightly more mature Kubernetes offering and is more user-friendly; we decided to go with EKS because we already using other AWS services (including a previous migration from Heroku Postgres to AWS RDS). We are still in the process of moving our main website workloads to EKS, however we have successfully migrate all our staging and testing PR apps to run in a staging cluster. We developed a Slack chatops application (also running in the cluster) which automates all the common tasks of spinning up and managing a production-like cluster for a pull request. This allows our engineering team to iterate quickly and safely test code in a full production environment. Helm plays a central role when deploying our staging apps into the cluster. We use CircleCI to build docker containers for each PR push, which are then published to Amazon EC2 Container Service (ECR). An upgrade-operator process watches the ECR repository for new containers and then uses Helm to rollout updates to the staging environments. All this happens automatically and makes it really easy for developers to get code onto servers quickly. The immutable and isolated nature of our staging environments means that we can do anything we want in that environment and quickly re-create or restore the environment to start over.

The next step in our journey is to migrate our production workloads to an EKS cluster and build out the CD workflows to get our containers promoted to that cluster after our QA testing is complete in our staging environments.

656k views656k
Comments

Detailed Comparison

Heroku
Heroku
Kubernetes
Kubernetes

Heroku is a cloud application platform – a new way of building and deploying web apps. Heroku lets app developers spend 100% of their time on their application code, not managing servers, deployment, ongoing operations, or scaling.

Kubernetes is an open source orchestration system for Docker containers. It handles scheduling onto nodes in a compute cluster and actively manages workloads to ensure that their state matches the users declared intentions.

Agile deployment for Ruby, Node.js, Clojure, Java, Python, Go and Scala.;Run and scale any type of app.;Total visibility across your entire app.;Erosion-resistant architecture. Rich control surfaces.
Lightweight, simple and accessible;Built for a multi-cloud world, public, private or hybrid;Highly modular, designed so that all of its components are easily swappable
Statistics
Stacks
25.8K
Stacks
61.2K
Followers
20.5K
Followers
52.8K
Votes
3.2K
Votes
685
Pros & Cons
Pros
  • 703
    Easy deployment
  • 459
    Free for side projects
  • 374
    Huge time-saver
  • 348
    Simple scaling
  • 261
    Low devops skills required
Cons
  • 27
    Super expensive
  • 9
    Not a whole lot of flexibility
  • 7
    Storage
  • 7
    No usable MySQL option
  • 5
    Low performance on free tier
Pros
  • 166
    Leading docker container management solution
  • 130
    Simple and powerful
  • 108
    Open source
  • 76
    Backed by google
  • 58
    The right abstractions
Cons
  • 16
    Steep learning curve
  • 15
    Poor workflow for development
  • 8
    Orchestrates only infrastructure
  • 4
    High resource requirements for on-prem clusters
  • 2
    Too heavy for simple systems
Integrations
Mailgun
Mailgun
Postmark
Postmark
Loggly
Loggly
Papertrail
Papertrail
Redis Cloud
Redis Cloud
Red Hat Codeready Workspaces
Red Hat Codeready Workspaces
Nitrous.IO
Nitrous.IO
Logentries
Logentries
MongoLab
MongoLab
Gemfury
Gemfury
Vagrant
Vagrant
Docker
Docker
Rackspace Cloud Servers
Rackspace Cloud Servers
Microsoft Azure
Microsoft Azure
Google Compute Engine
Google Compute Engine
Ansible
Ansible
Google Kubernetes Engine
Google Kubernetes Engine

What are some alternatives to Heroku, Kubernetes?

Clever Cloud

Clever Cloud

Clever Cloud is a polyglot cloud application platform. The service helps developers to build applications with many languages and services, with auto-scaling features and a true pay-as-you-go pricing model.

Rancher

Rancher

Rancher is an open source container management platform that includes full distributions of Kubernetes, Apache Mesos and Docker Swarm, and makes it simple to operate container clusters on any cloud or infrastructure platform.

Google App Engine

Google App Engine

Google has a reputation for highly reliable, high performance infrastructure. With App Engine you can take advantage of the 10 years of knowledge Google has in running massively scalable, performance driven systems. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow.

Red Hat OpenShift

Red Hat OpenShift

OpenShift is Red Hat's Cloud Computing Platform as a Service (PaaS) offering. OpenShift is an application platform in the cloud where application developers and teams can build, test, deploy, and run their applications.

Docker Compose

Docker Compose

With Compose, you define a multi-container application in a single file, then spin your application up in a single command which does everything that needs to be done to get it running.

Docker Swarm

Docker Swarm

Swarm serves the standard Docker API, so any tool which already communicates with a Docker daemon can use Swarm to transparently scale to multiple hosts: Dokku, Compose, Krane, Deis, DockerUI, Shipyard, Drone, Jenkins... and, of course, the Docker client itself.

AWS Elastic Beanstalk

AWS Elastic Beanstalk

Once you upload your application, Elastic Beanstalk automatically handles the deployment details of capacity provisioning, load balancing, auto-scaling, and application health monitoring.

Tutum

Tutum

Tutum lets developers easily manage and run lightweight, portable, self-sufficient containers from any application. AWS-like control, Heroku-like ease. The same container that a developer builds and tests on a laptop can run at scale in Tutum.

Render

Render

Render is a unified platform to build and run all your apps and websites with free SSL, a global CDN, private networks and auto deploys from Git.

Portainer

Portainer

It is a universal container management tool. It works with Kubernetes, Docker, Docker Swarm and Azure ACI. It allows you to manage containers without needing to know platform-specific code.

Related Comparisons

GitHub
Bitbucket

Bitbucket vs GitHub vs GitLab

Bootstrap
Materialize

Bootstrap vs Materialize

Laravel
Django

Django vs Laravel vs Node.js

Bootstrap
Foundation

Bootstrap vs Foundation vs Material UI

Node.js
Spring Boot

Node.js vs Spring-Boot