PDS is composed of the following main components:

  • Control plane: an interactive hosted SaaS service for the users. It provides the UI, API, and a catalog of data services. Users interact with this control plane to deploy their services to kubernetes clusters that they’ve targeted.

  • Kubernetes extensions: PDS operators that get deployed to target clusters once they’re connected. PDS includes 2 operators:

    • The Deployment operator allows you to deploy the data service to the cluster and controls custom resources, services, config maps, secrets, etc.

    • The Backup operator allows you to take backups, logical and physical of your data services and offload them to the cloud.

  • Data services: An application, such as a database, you choose these from a catalog.

PDS architecture diagram

PDS uses the the components defined above in the following way:

  • The PDS frontend is accessed via a web browser.

  • PDS backend logic includes the following functionality for managing PDS resources:

    • Database deployments and backups

    • target clusters and environments

    • accounts, tenants, projects, teams, and user roles

  • PDS also exposes this functionality with a REST API.

  • The Deployment Operator runs on each target cluster and is responsible for deployment, updates, and deletion of all supported databases. The deployment operator works in conjunction with the DB custom resources.

  • The Backup Operator runs on each target cluster and performs ad-hoc and scheduled backups of the databases. The Backup Operator works in conjunction with Backup custom resources.

  • pds-system - all PDS components run in their this namespace.

Last edited: Thursday, Apr 28, 2022