linkedin

Moving from Heroku to OpenShift: From PaaS Simplicity to Kubernetes Control

A Heroku to OpenShift migration represents a strategic shift from platform abstraction to Kubernetes-driven operational control. While Heroku simplifies deployment through git push workflows and managed add-ons, OpenShift introduces enterprise-grade orchestration, policy enforcement, and hybrid cloud flexibility. As a result, organizations moving from Heroku to OpenShift gain significantly deeper visibility and governance.

Because Heroku abstracts much of the infrastructure layer, teams often outgrow its dyno-based model. In contrast, OpenShift delivers Kubernetes-native scalability, stronger RBAC enforcement, and structured multitenancy. Therefore, a migration from Heroku to OpenShift is typically driven by compliance requirements, hybrid deployment needs, or enterprise-scale architecture demands.

As of February 2026, OpenShift focuses on OpenShift Container Platform 4.x and later versions, with strong emphasis on the Developer Console, GitOps workflows through Argo CD integration, and Operator-based management for services that would previously have been handled as Heroku add-ons.

Core Application Services in a Heroku to OpenShift Migration

Heroku Service / FeatureOpenShift EquivalentNotes / Closest Match / Migration Tips
Dynos (application runtime)OpenShift Pods / Deployments / DeploymentConfigs (legacy)Pods + Deployments are the core runtime (Kubernetes-native). Use Horizontal Pod Autoscaler (HPA) for scaling like dynos.
Knative Serving (serverless on OpenShift)For Heroku-like “scale to zero” → Knative (built-in or via operator).
Source-to-Image (S2I) buildsDeploy via oc new-app (source-to-image) or git push to OpenShift’s internal Git (with Tekton pipelines). Convert buildpacks to Dockerfiles or use S2I builders.

OpenShift replaces dynos with Kubernetes pods and deployments. Scaling is managed through HPA. For teams wanting behaviour closer to Heroku’s scale-to-zero model, Knative can be introduced.

Deployment models can leverage Source-to-Image (S2I) builds, which feel closer to Heroku’s buildpack approach.

Database Strategy When You Migrate Heroku to OpenShift

OpenShift does not bundle a managed database equivalent like Heroku Postgres. Databases are typically deployed via Operators or consumed externally.

Heroku Service / FeatureOpenShift EquivalentNotes / Closest Match / Migration Tips
Heroku PostgresCrunchy PostgreSQL Operator (via OperatorHub)Official PostgreSQL Operator for clustered, managed Postgres inside OpenShift.
Red Hat Database Services or external managed DBAlternatives include external managed databases integrated via Service Binding.
Migrate with pg_dump + replication or tools like pglogical.

The Crunchy Data PostgreSQL Operator provides a production-ready PostgreSQL deployment inside OpenShift clusters. Some organizations may prefer keeping the database external while running applications on OpenShift.

Redis, Kafka and Messaging

Heroku Service / FeatureOpenShift EquivalentNotes / Closest Match / Migration Tips
Heroku RedisRedis Operator (via OperatorHub)Deploy via OperatorHub. Use PersistentVolumeClaims (PVCs) for storage.
Heroku KafkaStrimzi Kafka OperatorStrimzi provides full managed Kafka on OpenShift. Migrate topics via MirrorMaker or Kafka Connect.
Heroku RabbitMQRabbitMQ OperatorDeploy via OperatorHub. Alternative: OpenShift AMQ (Red Hat’s messaging service).

Operators simplify deployment of stateful services in OpenShift. Strimzi is the standard Kafka approach in Kubernetes environments, while Redis and RabbitMQ are typically deployed as Operator-managed workloads.

Configuration and Secrets

Heroku Service / FeatureOpenShift EquivalentNotes / Closest Match / Migration Tips
Config Vars (environment vars)Kubernetes ConfigMaps + SecretsUse ConfigMaps for non-sensitive values; Secrets for encrypted data.
OpenShift Service BindingMigrate via Heroku CLI export → kubectl / oc apply.

Configuration and secret handling become part of Kubernetes resource management. OpenShift Console simplifies visibility and updates.

CI/CD Strategy in a Kubernetes Migration from Heroku

Heroku Service / FeatureOpenShift EquivalentNotes / Closest Match / Migration Tips
Heroku Pipelines / Review AppsOpenShift Pipelines (Tekton-based) + GitOps (Argo CD)Tekton replaces Heroku Pipelines.
BuildConfigs + ImageStreamsReview apps → use OpenShift Routes + preview namespaces or Tekton triggers for PR-based environments.

Tekton-based pipelines manage CI/CD. Namespaces and Routes enable review environments similar to Heroku’s preview apps.

Add-ons, Logging and Monitoring

Heroku Service / FeatureOpenShift EquivalentNotes / Closest Match / Migration Tips
Add-ons (general)OperatorHub catalogMany Heroku add-ons map to Operators (Prometheus, Grafana, ELK stack).
LoggingOpenShift Cluster Logging (EFK stack) OR Loki + GrafanaBuilt-in EFK or Loki-based logging. Ship logs automatically from pods.
Metrics / MonitoringOpenShift Monitoring (Prometheus + Grafana + Alertmanager)Built-in cluster and app monitoring; stronger than Heroku metrics.

OpenShift includes integrated observability components, significantly expanding visibility compared to Heroku’s default tooling.

Scheduled Jobs and Cron Tasks

Heroku Service / FeatureOpenShift EquivalentNotes / Closest Match / Migration Tips
Cron Jobs / Scheduled TasksKubernetes CronJobs OR OpenShift CronJobsDirect equivalent.
Knative Eventing or KEDAFor event-driven scheduling patterns.

Kubernetes-native CronJobs directly replace Heroku Scheduler.

Networking and Security in OpenShift vs Heroku

OpenShift provides advanced networking built on OVN-Kubernetes or OpenShift SDN, along with strong security enforcement.

Heroku Feature / ConceptOpenShift EquivalentNotes / Migration Tips
Default Networking (public exposure)OpenShift SDN / OVN-Kubernetes + RoutesApps exposed via Routes or LoadBalancer services.
Heroku Private SpacesOpenShift Projects (namespaces) + NetworkPolicies + SCCProjects provide isolation; NetworkPolicies control traffic; SCC enforces pod security.
Heroku Private Space PeeringMultus / FederationAdvanced multi-network and multi-cluster connectivity.
Heroku VPN ConnectionExternal VPN integrationIntegrate with cloud provider VPNs (e.g., AWS Site-to-Site) or use egress routing.
Heroku RouterOpenShift Routes (HAProxy-based) OR IngressRoutes handle path/host routing and TLS termination.
Security GroupsNetworkPolicies + Security Context ConstraintsGranular pod-level security and traffic controls.
IP AllowlistingEgress NetworkPolicies + NATAssign static IPs via cloud provider or node config.
SSL / HTTPS terminationRoute TLS + cert-manager OperatorAutomatic edge TLS; cert-manager for Let’s Encrypt automation.

OpenShift Projects and NetworkPolicies provide stronger isolation than Heroku’s implicit model. Routes replace the Heroku Router and support TLS termination modes including edge, re-encrypt, and passthrough.

Quick Migration Considerations

Simplest path → Use oc new-app with git repositories and Source-to-Image builds to replicate Heroku-style deployment simplicity.

Best for enterprise scale → Deploy OpenShift with Operators for stateful services and use GitOps for declarative management.

Zero-downtime → Rolling updates via Deployments; database replication with tools like pglogical; blue/green deployment using Routes.

Networking and security shift → Projects and NetworkPolicies replace Heroku’s abstracted isolation model. Multitenancy design should be addressed early.

Cost note → OpenShift pricing varies depending on self-managed vs managed deployments. It is often more cost-effective at scale than Heroku Enterprise, especially for hybrid environments.

Integration and Data Flow Considerations

In many Heroku environments, middleware logic and data synchronization patterns gradually became part of application services. Moving workloads to OpenShift does not automatically reorganize or simplify those designs. If integration responsibilities were previously distributed across services, that structure will continue unless it is intentionally reviewed and adjusted.

For organizations already using MuleSoft, OpenShift can host application workloads while API governance and orchestration remain within the existing integration layer. This avoids rebuilding integration logic inside Kubernetes services and makes practical use of existing platform investments.

As operational control increases with OpenShift, having a clearly defined integration model becomes more important to maintain stability and scalability.

Next Steps in Evaluation

A successful Heroku to OpenShift migration requires separating infrastructure relocation from architectural modernization. When reassessing a Heroku footprint, it is helpful to separate infrastructure relocation from architectural refinement. Some components may simply require rehosting, while others may benefit from redesign or consolidation.

As a result, a structured review gives teams clear visibility into application dependencies, integration flows, and operational effort, enabling them to make informed decisions about what to move, what to modify, and what to retain.

At NJC Labs, we designed the Heroku Modernization Assessment to support this type of evaluation. Specifically, we map current architecture and outline practical next steps aligned to long-term platform strategy so organizations can move forward with clarity and confidence.