
VividCortex Automates Fast and Confidently with CircleCI
CircleCI was automated, configured and running for VividCortex in less time than it took you to read this (practically).
The Challenge Prior to CircleCI
Before CircleCI, there were a lot of problems, such as the possibility for developers to ship code that hadn’t been QA’ed and reviewed properly, or the effort of testing being a deterrent to writing and running tests. But these all boil down to a single outcome: we weren’t able to ship high-quality code as fast as we wanted to. As a startup, speed and cash are of the essence, and with a team of 15 developers, even a 5% loss of productivity is directly equivalent to more headcount. When tests take minutes to run instead of seconds, you get way less work done. You iterate way slower. You try to batch and bundle the changes you ship. All of this is directly counter to what we know about improving the throughput of a complex system: increase the batch size and cycle time, and you slash productivity dramatically. That’s where we were before CircleCI. And as a company that’s focused on achieving exactly the same goals for our own customers (help optimize engineering output by shipping better code faster and shortening feedback loops) that was completely unacceptable to me.
We’d tried a variety of other things, including hosting our own Jenkins and using third-party tools that try to do similar things as CircleCI does. I probably don’t need to explain the pain of using Jenkins to anyone who’s used it, but to sum up, Jenkins systems always end up being magical special snowflake servers that only a few people have the knowledge or willingness to deal with. This is a serious problem for a modern software engineering team focused on continuous integration and delivery; it causes tremendous loss of productivity for the entire team. The other companies that I tried were difficult to do business with and their solutions didn’t remove much, if any, of the pain of using Jenkins; I spent several days just trying to get things configured in one provider’s system, with no luck. So, before CircleCI, testing was generally done a) manually, on a developer’s own system with all the non repeatability and Heisenbugs that implies; b) not integrated with our overall system of coding and deploying such as GitHub; c) individually, with no collaboration and communication amongst team members through mechanisms such as pull request merge statuses and emails upon failures. It was fine by the standards of 15 years ago, but miserable by today’s standards.
The Solution
CircleCI runs our tests faster, cheaper, and better than any other product we’ve tried. It’s hard to measure exactly how much CircleCI improved productivity, but I am confident it’s more than 5%. The ease of setup and configuration is unbelievable, so it was a delight to get started with CircleCI and we were fully automated in practically less time than it just took you to read this. We were also shocked at how fast our tests completed. I still remember the first time I opened a pull request in the GitHub web interface and saw the green checkmark appear a moment later. I almost didn’t trust it, so I clicked through to the test run’s console log and inspected it. After spinning our wheels on other approaches, the ease, speed, and power of using CircleCI blew me away. I was sold instantly.
Our customers rely on us to ship extremely high-quality, high-performance code. You see, they are running an agent program on their database servers–the crown jewels of their infrastructure. And unlike most monitoring agents that measure just a few high-level aggregate metrics in 1-minute or 5-minute summary resolution, VividCortex’s agents are capturing tens of thousands of fully granular performance metrics every single second. The performance and correctness challenges are orders of magnitude harder, but any defect or performance flaw in our agent software is a direct threat to our business. CircleCI is a vital part of ensuring that we don’t ship bugs to our customers’ database servers.
We also pride ourselves on iterating fast. It’s common for customers to request a feature or improvement and we ship it within hours or days–sometimes within minutes. Every time we do this, we can metaphorically hear jaws dropping on the other end of the support thread. We’ve won several deals this way, especially against competitors that can’t match our speed and quality. I can’t imagine how we could do this without CircleCI.
About VividCortex
VividCortex is a database monitoring product that gives our customers immediate insight into the work their distributed, diverse databases do. Our product finds performance problems that slip past every other monitoring product, because we capture performance metrics at much higher completeness and granularity. The amount of metrics we capture is overwhelming for humans, so we have developed proprietary algorithms that cut through the noise, finding and surfacing signals that expose problems before they even manifest. And unlike traditional monitoring products that are built for DBAs, VividCortex helps the entire team understand and optimize performance across all stages of the software development lifecycle: from developers to QA to operations to SREs and security, from dev environments to staging and production. We’ve been using CircleCI since 2013.