Best practice for managing the structure of Couchbase

What is the best practice for the following related use cases in Couchbase?

Usecases:

  • Enable developers to initialize a Couchbase cluster and all buckets, scopes, collections, indexes and such that is compatible with the code they want to run.
  • Deploy changes to buckets, scopes, etc to staging and production when deploying new code.
  • Apply any recent changes to buckets, scopes to a restored backup that were applied after the backup was taken.

Thanks!

There are REST APIs for management https://docs.couchbase.com/server/current/rest-api/rest-intro.html

The SDKs have apis for most of the management APIS.

For changes since the last backup - do another incremental backup. Or use xdcr to keep a standby cluster up-to-date with an.active cluster.

Backups can also be used to copy indexes etc.

Couchbase Testcontainers can be used to spin up a serve for testing.

GitHub - couchbaselabs/cbdinocluster has some pre-configured clusters.

Many Couchbase repositories are public, you can explore wha we do ourselves.

Thanks @mreiche! We need something really simple to use for our users. So I think we will need to build something for them.

@peder_cillers Do you think you can open source the tool you will build ?

I’ve done some work to automate Couchbase deployment with Pulumi.

It hasn’t been published yet because it’s not battle tested, but it uses this couchbase http client, if that can help you.

We will include it in our CLI tool that is currently “Source Available” but not Open Source. It’s free to use for hobby and prototype projects.

Thanks!

Do you mind sharing the link ?

Sure, not much to look at yet, but here it is: https://github.com/Cillers-com/cillers-cli