Your dev teams and their cloud-native applications depend on being able to access their preferred databases, whether it’s Mongo or Cassandra, Kafka or Redis.
But when your ops team is already stretched, how can you effectively manage the lifecycle of these services?
Look no further than Portworx Data Services (PDS). PDS is a managed service that data gurus Portworx first announced back in September 2021, and GAd back in May 2022.
PDS simplifies the provisioning and management of common database solutions and app services to run on Kubernetes clusters — literally with the click of a button. Like Palette, PDS is built for production-grade, enterprise Kubernetes, giving you full choice of where to deploy your stack (unlike many hosted database offerings).
In this blog we'll explore step by step how to use PDS to provision a database on an existing target Kubernetes cluster. We’ll also show you how our Palette platform is powering PDS’s ability to deploy new Kubernetes clusters directly when needed.
Introducing PDS: a Platform-as-a-Service for Databases
In a nutshell, PDS allows your platform engineering teams to provide Database-as-a-Service for their internal customers — dev users. It supports many common types of open source database and app services:
- MessageBus: Kafka, RabbitMQ
- NoSQL: MongoDB, Cassandra
- RDBMS: Postgres, MySQL
- KV: Redis
As well as provisioning these services, PDS provides many common Day-2 operations including automated backup and restore, upgrades, auditing, capacity management, data migration and data security. It becomes a one-stop shop to run stateful services while avoiding data loss, maintaining high availability, whether running production or in dev/test environments.
The PDS management plane (also referred to as the PDS Control Plane) is offered as a SaaS service that the Portworx team will operate. You interact with this PDS Control Plane (either via UI or APIs) to provision and manage the lifecycle of your data services.
As part of provisioning a new service, you need to designate the “Deployment Target”. This is the registered workload K8s cluster and namespace where the managed database service will run. The PDS agent running in the designated cluster will do the rest: provision the service, manage backups, upgrades, etc.
A quick walkthrough: deploying a Postgres database
Let me show you how quickly we can create a simple Postgres database with Portworx Data Services. Incidentally, the experience is exactly the same for deploying Redis, Kafka, Cassandra and other services! One of the key values of PDS is its consistent UI and APIs, regardless of which types of databases you choose.
Using the PDS Control Plane, I can get visibility into all the services currently running on the Deployment Targets. From here, I can quickly deploy a new _Postgres _database — just click the big PostgreSQL button in the middle.
There are some basic Postgres specific properties that I can define, e.g: version, replicas, size, etc. These choices will vary depending on which data service you’ve chosen.
Note also the Target which specifies the pre-registered Deployment Target (K8s workload cluster) where the database service will be deployed.
Once I click on deploy, within minutes a new Postgres instance is created and ready for me to consume!
PDS has other management capabilities that you can trigger on these deployments. Dive in to the Portworx Data Services website to learn more.
Now the real magic: provisioning a new cluster in PDS
The PDS Control Plane is offered as a SaaS product. You simply need to apply for an account to start playing with it. But before you can start creating database services, you need to register one or more _target _K8s clusters where PDS can deploy.
There are certain requirements to be a PDS-ready Kubernetes cluster. There is a minimum supported Kubernetes version and, most importantly, Portworx Enterprise must be fully operational before PDS can be installed.
But what if you don’t have a ready-made K8s cluster with the Portworx Enterprise dependency already running?
Well, this is where I’m excited to share some news. Portworx and Spectro Cloud are working closely together to provide a seamless experience for users to provision end-to-end PDS-ready K8s clusters across any environment.
Soon you’ll be able to provision a new “Deployment Target” (_K8s Cluster) _directly from the PDS Control Plane, with all Portworx Enterprise dependencies pre-installed.
The end result: PDS provides a slick experience to provision new database services. And with Palette running behind the scenes, we provide an equally slick experience to provision the underlying clusters.
Users can quickly add an account for their favorite environment — you can deploy wherever Spectro Cloud Palette can provision Kubernetes. This includes all the major public clouds, like AWS, Google and Azure). But Palette also supports private clouds, VMware virtual machines in data centers, bare metal using Canonical MAAS, and even edge devices.
Once the cloud account is added, users can switch to the PDS Deployment Targets screen to pick a target and provision a new K8s cluster.
Again, in the spirit of keeping things simple, there really aren’t many cloud placement properties to specify.
Behind the covers, PDS calls out to Spectro Cloud Palette to provision a new K8s cluster into the designated environment, and then install all dependencies and components. PDS users of course do not need to know that Portworx is using Palette — everything is seamlessly integrated and managed by the Portworx team.
Provisioning a new database and a new target cluster is a powerful capability, but it really only takes minutes with PDS. Check out this quick demo video I recorded to see what I mean:
The future of databases of K8s is bright
Portworx has made running a database on Kubernetes easier than ever. PDS totally takes the pain out of providing DBaaS to your dev teams. And as the product continues to mature, we’ll see an even wider choice of offered database services with more day-2 capabilities.
We’re proud to be the technology partner enabling PDS to tackle the next challenge for ops teams: building the cluster that the database deploys on. If you need access to a database service without having to worry about maintaining a K8s cluster — we’ve got you covered, as the walkthrough above shows.
So what next?
- Register your interest for our private beta: Our integration with Portworx Data Services is still a work in progress, but together we’ll be running a private beta very soon. If you’re interested in trying it out, or have feedback, sign up right here.
- Explore Portworx Data Services: If you’re wowed by the idea of easy database deployments, you can sign up for PDS on the Portworx website here.
- Learn more about tackling storage challenges: Check out the webinar we ran with Portworx earlier this year for deeper technical insights.