Shared Baseline Testing

Mojeek most likely uses traditional servers and not microservices. But, I read an article about shared baseline testing. And, I thought it was good enough to share here.

If you develop microservices, there is a need to test updates to the component services. One way to test would be to create a parallel testing infrastructure. Then you would have several options for managing tests. You could have developers wait their turn to test their changes. You could collect a series of changes and test the changes in batches. Or, you could create a new cloud environment for each test.

Each of these approaches has problems in terms of cost or wait times. It costs a lot of money to duplicate your infrastructure just for testing. And, even if you committed to creating an environment for each test, it can take thirty minutes for a test environment to be built from scratch.

But there is another option available.

Instead of creating a parallel testing infrastructure, you can simply add the test service to production. Then, you can use special routing rules to direct test traffic through the test services. These routing rules isolate production traffic from test traffic and private customer data from test data, all while sharing the underlying infrastructure. This strategy of using special routing rules saves both money and the time it would otherwise take to set up a more isolated environment.

Some large technology companies, like Uber and Lyft, developed their own internal solutions. And, the article from The New Stack is an advertorial from a company selling a similar solution.

Even so, I thought this concept of shared baseline testing was important enough to share since it represents a fundamental shift in the options available to companies who develop microservices.

Read the original article below. And that article also links to blog posts from Uber and Lyft which detail their internal engineering efforts. There is also a post from DoorDash which talks about how they used the product being advertised.

If you develop microservices and testing has been a bottleneck in your organization, shared baseline testing might offer a way to speed up the development cycle.

1 Like