Simplifying CI/CD for NoSQL

David Segleau
Couchbase
Published in
3 min readOct 29, 2020

--

CI/CD is a must-have, especially for modern cloud, mobile, and microservices-based applications. A good CI/CD implementation reduces overall costs, improves quality, reliability, time to market, as well as customer and application developer satisfaction. CI/CD is so important to modern applications, that organizations are starting to spend almost as much on CI/CD as they do on traditional enterprise application development.

One of the primary CD challenges is understanding and managing the interdependencies between the application and the database that it’s using. The application dependencies for relational databases are very well understood, and there many products that address this. After all, enterprises have been using RDBMS for almost 40 years. NoSQL databases for the most part, are schemaless, which eliminates the most pervasive database dependency issue. However, there are application and configuration interdependencies for NoSQL databases that we’re still discovering how to deal with in the most efficient, reliable, and fool-proof manner.

So, how do you simplify your journey towards effective CI/CD for NoSQL without going through the costly trial-and-error, steep learning curve process? You leverage the advice and expertise from DevOps architects and engineers who have “been there, done that”, and by using a NoSQL database that enables CI/CD integration out of the box.

Brant Burnett, a Systems Architect at CenterEdge is one of those experts. Not only does he have the experience and knowledge of building state-of-the-art CI/CD systems, but he has encapsulated this into tools that he’s made publically available in several open source repositories. His most recent tools are described in detail in a Couchbase CONNECT presentation entitled “Powering Lightning-Fast but Ultra-Safe Continuous Delivery With Couchbase”.

Brant starts off the presentation with a great technical summary of the benefits and challenges of CD from a DevOps point of view.

He then addresses one of the NoSQL application/database dependencies that can significantly affect both functionality and performance: indexes. Index creation, syntax, and behavior is very different between NoSQL databases. In order to improve reliability and predictability, Brant created the couchbase-index-manager tool to simplify index creation and monitoring during a CD cycle. This tool is especially useful when deploying to different Dev, QA and production systems, which typically have very different indexing requirements.

The next challenge that Brant addresses is the need to automatically create a “known” configuration or starting point, that includes both generated data sets and indexes. He has created a tool called CouchbaseFakeIt (based on open source npm fakeit), which includes a Couchbase Docker container and all of the information necessary to fully configure a Couchbase server, as well as populate it with data and build the necessary indexes.

He wraps up his presentation with how and why CenterEdge uses Docker containers for many CI, QA and Development tasks. By combining Brant’s CD tools to simplify building the proper NoSQL database, with Docker (and other tools) to simplify their CI tasks, CenterEdge is able to achieve their DevOps quality and agility goals.

For more details on this great approach to simplifying CI/CD for Couchbase, including links to the open source repositories for his tools, listen to the presentation here.

--

--

David Segleau
Couchbase

Database guy. All things database: RDBMS, NoSQL, JSON, Performance, Scalability, & Architecture. Many hats: Engineering, Support, QA, Prod Mgmt & Marketing.