Moving database workloads to OpenShift using PostgreSQL

by Jonathan S. Katz

VP Platform Engineering, Crunchy Data

OpenShift, built on top of open source Kubernetes, provides many advantages for running applications, including efficiency, automation, and infrastructure abstraction. App developers can specify their deployment requirements through manifests that can be applied universally in any OpenShift environment. This principle, known as infrastructure-as-code or ”GitOps,“makes it easier for engineering and operations to create predictable environments for application runtimes.

But what about running databases in OpenShift? The typical organizational migration process to OpenShift saw many companies first migrating over their stateless, or application, workloads while leaving their stateful, or database, workloads in their traditional environment.

However, it appears this trend is shifting: the Cloud Native Computing Foundation (CNCF) Cloud Native Survey 2020 reports that 55% of respondents are running stateful applications in containers in production environments. Further, from our experience at Crunchy Data, we see this shift also include using open source in the data stack, with the preferred choice being PostgreSQL.

So what is causing the shift to running databases in OpenShift, and how does it work with your open source journey?

Crunchy Postgres on OpenShift

I’ve given many talks on PostgreSQL where I segment the subject’s experience between what I did in development versus in a production environment. This is a notable distinction: when working with a database, a vital component of your application, there are many more requirements to manage it in production to successfully keep your data safe. These include support for high availability, disaster recovery, monitoring, and more.

In the pre-DevOps days, building up a production PostgreSQL from scratch was tough for me. I remember the first time I got streaming replication to work: it took me a day-and-a-half, and even with playbooks I developed, it would still take me an hour to be up and running!

Automating setting up production PostgreSQL through simple configuration has great power: it makes setting up a fault-tolerant, open source database accessible to application developers.

Automation is where OpenShift provides many impressive capabilities for running databases in containers, particularly when coupled with an Operator. The ability to scale up nodes uniformly makes it easier to manage hardware for databases as they grow. Kubernetes features, like node affinity and tolerations, allow admins to decide where Postgres instances are deployed. Combined with an operator’s logic, these tools enable database workloads to deploy essential production requirements, like high availability, or to take advantage of hardware optimized for running databases.

Crunchy PostgreSQL for Kubernetes allows enterprises to deploy production-ready, trusted, open source PostgreSQL on Red Hat OpenShift. Powered by the open source Crunchy Postgres Operator, Crunchy PostgreSQL for Kubernetes provides the essential features in a turnkey manner for running PostgreSQL that work at an enterprise level. These include provisioning, high availability, disaster recovery (backups & restores), monitoring, advanced security controls, and more.

Crunchy PostgreSQL for Kubernetes has been a part of many organizations’ replatforming on OpenShift story, in part to it achieving the autopilot capability level as part of Red Hat OpenShift Operator Certification. The “autopilot” capability level designates the highest level of automation associated with operator technologies, including PostgreSQL cluster self-healing after an automated failover event and advanced high-availability configurations for workloads sensitive to transaction loss and uptime.

The typical hesitancy to replatforming databases to containerized environments is around storage. We saw this hesitancy when virtual machines rolled out at scale; over time and with more success stories mounting, we have witnessed administrators become more comfortable with Postgres in containerized environments. To help build that confidence, our team recently worked with Red Hat to validate running Postgres containers on OpenShift.

Replatforming Hybrid Cloud API Management with Containerized Postgres

The IBM Cloud & Cognitive Software segment includes hybrid cloud capabilities focused on integration, including API management, app integration, enterprise messaging, event streaming, high-speed data transfer, and end-to-end integration security. IBM API Connect is a market-leading and award-winning API management solution that allows enterprises to control their APIs and drive digital business with a robust API strategy. API Connect provides capabilities to create, secure, manage and socialize APIs deployed across any cloud, as well as on-premises. These market-leading capabilities are available as both a standalone software product and included in a modern, hybrid integration platform with IBM Cloud Pak for Integration built on Red Hat OpenShift.

To enable ultimate scale and flexibility for hybrid use cases, API Connect takes advantage of cloud-native and microservice-based architecture, fully containerized and leveraging Kubernetes for container orchestration. To deliver as a cloud-native and containerized solution, IBM needed a Postgres database partner for handling persistent product configuration data that met enterprise-grade requirements for their clients. To that end, IBM selected Crunchy PostgreSQL for Kubernetes.

Because high availability and resiliency were vital decision criteria, the Level 5 “Auto Pilot” certification for the Postgres Operator was a significant factor. This included options for a 2-Site HA topology across multiple OpenShift clusters with logical replication for resiliency and HA connection pooling for a highly quality user experience.

Start Replatforming with Open Source on the Red Hat Marketplace

It’s not just early adopters running PostgreSQL on Kubernetes anymore. Many Crunchy Data customers have successfully deployed Postgres on Kubernetes and have been kind enough to talk about their experience in doing so. Open source lowers the cost of managing data while allowing it to be deployed in hybrid environments.

So are you ready to bring your data to open source? Crunchy PostgreSQL for Kubernetes is available in the Red Hat Marketplace. This open cloud marketplace enables enterprise companies to quickly discover and access certified software for container-based environments across the hybrid cloud. Through the marketplace, customers can take advantage of responsive support, streamlined billing, and simplified governance with a single dashboard to provide visibility and insights across clouds.