Category
5 min read

How Metis Enables Teams to Test Their Databases at Scale

Testing may be hard and we as testers know that. We may face many edge cases, things hard to reproduce, and problems with performance, or network connectivity. Depending on the type of our application, we may need to use dedicated tools for testing or sometimes even build our own.
Published on
May 6, 2024
Share this post
Contributors
Adam Furmanek
Dev Rel
Metis Team
See how Metis can make your database 3x faster and 50% cheaper!

Testing may be hard and we as testers know that. We may face many edge cases, things hard to reproduce, and problems with performance, or network connectivity. Depending on the type of our application, we may need to use dedicated tools for testing or sometimes even build our own.

This is especially true when we want to test how our applications interact with databases. We often overfocus on the correctness of reads and writes, and we disregard how things are executed. This can lead to many troubles after the deployment, especially when we use small databases in our testing suites.

It would be great if we could have our issues fixed automatically. Whenever there is a problem (or there may be a problem after we deploy to production), we would love to have it fixed automatically, so we could just focus on running our business. Preventing the problems from happening is what lets us move fast and deal with databases better. We need to have tools that can build observability around our databases, understand the interconnections between what we do and what gets deployed, and submit automated solutions.

Luckily, there is a simple solution to that. Database guardrails can analyze our code and changes, prevent the bad code from reaching production, and make sure all issues are avoided or fixed automatically. Let’s see what we can do.

Let Metis Prevent the Problems

When testing our applications before the deployment, we need to focus on multiple aspects like:

  • Do we read and write data correctly?
  • Do we utilize indexes in the best possible way?
  • Is our configuration optimal?
  • What extensions do we have and how are they configured between environments?

Some of these things we cover automatically with our testing pyramid. However, most of our testing procedures disregard how we interact with the database. We only focus on the correctness, but we ignore if we use the right indexes and if we send one query instead of multiple. These things can severely affect our deployments or even take production down due to performance issues.

Recommended reading: Database Chaos - Is Your Bottom Line Hanging By a Thread?

Fortunately, Metis can do all of that for us. Metis can analyze our queries, schema migrations, extensions, and configurations to verify that our applications will work well after the deployment.


Metis can project our local changes to production to verify if they’ll scale well. This way we don’t need to test and still be sure that our changes will work.

Metis integrates with our CI/CD pipelines and provides actionable insights into our deployment process. We can automatically stop the changes from being deployed if they pose the risk of breaking production.

This way, Metis covers the missing part of your CI/CD. You can feel confident when deploying to production.

Let Metis Handle Production Issues Automatically

After the deployment, things can gradually break over time. We may get different data distribution or traffic patterns, we may get much more data volume over time, or we may install updates that can break our systems. Unfortunately, the digital world changes constantly. We can’t just deploy once and forget about the system. We need to keep it in shape constantly.

Our monitoring solutions can’t help us with these issues. When the CPU load goes up, the monitoring systems will let us know there is a problem, but they won’t explain what’s the root cause and how to fix it. We need to do the hard work.

Metis takes a different approach. Metis implements database guardrails and provides observability around every part of our software development life cycle. This way, we get actionable insights explaining why the CPU load increased or why we lack memory. Metis integrates deployments and operations into one, so it can reason about all the interconnected pieces.

Metis truly understands how databases work. It can analyze database-oriented metrics around transactions, caches, index usage, extensions, buffers, and all other things that show the performance of the database.

Metis dives deep into database-related events like rollbacks, disk spills, or unused indexes. This way we’re not overloaded with infrastructure metrics that show that your CPU usage spiked but don’t explain why it happened. Metis gives actionable insights. This way we can know which indexes to configure or how to change the queries to make them faster.

Apart from metrics and queries, Metis understands everything database-related! It can reason about indexes, settings, configurations, extensions, and schema.

Metis tunes the database, sends alerts when some business decisions need to be made, or detects anomalies based on database-oriented reasoning. We don’t need to test our databases. We can just let Metis do the job and take care of them.

Use Metis and Skyrocket Your Tests

With Metis, you don’t need to think about your databases anymore. Metis prevents the bad changes from reaching production, gives actionable insights around schema migrations, extensions, configurations, and all database-related metrics, and gives you clarity on what happens with your database. Add it to your CI/CD pipeline today to make sure your database runs smoothly.

This is some text inside of a div block. This is some text inside of a div block. This is some text inside of a div block. This is some text inside of a div block. This is some text inside of a div block.

Never worry about your
database again!

Start using Metis and get your database guardrails set up in minutes