Giter VIP home page Giter VIP logo

cnpg-i's Introduction

CloudNativePG Interface (CNPG-I)

Status: PROPOSAL

Why do we need CNPG-I?

The CloudNativePG code base has sensibly grown over the years, increasing the cognitive load required to work with it and creating a bottleneck in the submission of new pull requests in the open source project itself.

The risk we are currently facing is that the delivery of new features is slowed down further and further as the project grows both in code base and adoption.

As with every successful open source project indeed, everyday maintainers need to face the dilemma to reject or approve a pull request in the code base knowing that, when it gets committed, it’s forever.

We need to find a different and more pluggable way of adding new behaviors and capabilities to the operator, not necessarily in the open source space.

The proposal here is to follow a pattern that’s already been successfully implemented in Kubernetes through the Container Storage Interface (CSI), and give birth to a new open source initiative within CloudNativePG called the “CloudNativePG Interface (CNPG-I)”.

The CNPG-I standard API, based on gRPC, should enable new organizations to join EDB (original creator of CloudNativePG) and develop a plugin or a collection of them - instead of creating, maintaining, and distributing a fork of CloudNativePG.

Some of the advantages of CNPG-I can bring are:

  • Remove complexity and responsibility from CloudNativePG open source code base, by delegating them to external plugins that can run as sidecar containers alongside Postgres
  • Remove bottleneck from CloudNativePG core team in terms of delivery of new features, increasing velocity, fostering prototyping, and nurturing an independent ecosystem of plugins
  • A standard gRPC-based API specification covering the customizable aspects of the operator and the operands, and providing a way to test the compliance with it
  • Encourage dynamic growth of the ecosystem through customizations that can be independently developed within the operands, as separate projects instead of operator forks, with a lower required cognitive load
  • Facilitate the move to CloudNativePG for other Postgres and Kubernetes companies.

Some examples of plugins

For example, plugins might involve:

  • WAL management (archive and restore)
  • Backup and recovery management
  • Logging and auditing
  • Export of metrics
  • Authentication and authorizations
  • Management of extensions
  • Management of an instance lifecycle
  • Management of the configuration of an instance

Trademarks

Postgres, PostgreSQL and the Slonik Logo are trademarks or registered trademarks of the PostgreSQL Community Association of Canada, and used with their permission.

cnpg-i's People

Contributors

leonardoce avatar fcanovai avatar renovate[bot] avatar armru avatar gbartolini avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.