Replicated Use Cases - Build Better

Nikki Rouda

Welcome to this series where we talk about use cases, problems that Replicated can solve, and common challenges. First thing I'd like to do is introduce this concept of the software distribution lifecycle. You may be familiar with the software development lifecycle, but we consider that only one piece of the puzzle here, really under the concept of ‘build better’.

Here, we see a bigger virtuous circle that goes from:

  1. Building a good application
  2. Testing and securing it before it goes to customer environments
  3. Helping you sell more (either faster or addressing new markets)
  4. Being able to install faster during proof of concept or production installs
  5. Being able to support your customer's efficiency
  6. Measure what matters most
  7. Be able to use those insights to repeat the circle and build better

So, how does this play out in reality? Let's look at each one of these use cases in turn. This video will talk about building better. How do you build applications so that customers can manage them in their own environments?

Well, we can help in a lot of ways - one of them has to do with velocity. Younes Amar had a product at Wallaroo, and he talks about how Replicated allowed him to double the velocity of their product development. Ge really sped up the time to get his product up and running in a customer environment without having to worry about the installation complexities.

Obviously a huge advantage and we’re happy to see the results they've had. But how do we do that? Well, first is the basic premise that customers are looking to reduce the attack surface area. They don't want to send their data to 4, 5, 6, dozens of different SaaS applications. It puts the data outside their control. For those who are security conscious, that's a concern. Well, what we do here is we help you enable your app to run in a customer-managed environment. That means they bring the applications to the data, not send the data off to different SaaS services. This can really help eliminate objections to sales and open up new markets for you.

Now, the challenge with this is if you're deploying into customer managed environments, you need some way to install your software there. Sounds easy to write a simple script. Maybe you think Helm charts are all you need. But the reality ends up being much more complex than that due to the variability of customer environments.

So what we do is we help build Kubernetes and Helm installer tooling for you. We make it easier for you to package up your application and get it installed in those environments and manage it once it's there. You can focus on innovation, not building this tooling.

Another thing we help with is feature innovation and time to market. Maybe you're only releasing quarterly today - you have a very slow waterfall type of methodology, and a large part of that may have to do with complexity around automation. How do you manage your releases? How do you control which customers have access to which releases? How do you separate alpha, beta production? How do you control who has enterprise editions versus free or community editions? So, what we do is help you organize your releases by channel and assign customers to each one. You can release new vision versions quickly and increase your agility and competitiveness. Get those features out there and get them in the hands of your customers.

Something else we do related to that, around managing features and additions, is understand that different editions of your product may need different features enabled for different customers. We can implement these feature entitlements for different channels and releases. You can seed the market and drive adoption towards premium additions - help you manage that product led growth that everybody's after.

We also help you keep your app secure, and that can be quite challenging. If your customers run into bugs or CVEs, that can have a huge impact on the data and their trust for you. So you need to get these patches deployed quickly, get them into customer hands. We help deliver automatic updates and patches for your app. They can be installed with semantic versioning, so they go in the right order. We can give you a reporting notification so you can see when customers have updated or which ones have not. What versions are out there in the market, so that'll reduce your risk and help improve patch rates. 

We also help you provision test environments. Many ISVs don't test beyond a single type of environment, but maybe you're running EKS, GKE, OpenShift, Kind, K3S - whatever your customers have - you're going to want to test against all of that. We make it super easy to provision these environments. We know what your customers are running. We can help you provision those customer-representative combinations and build a matrix of test environments. This is a huge advantage for building a better product. 

Not least, we'll give you more visibility into your app life cycle, being able to tell you what version they're running, when it was last updated. Our SDK and instance insights give you this visibility so you know how your product's doing in the market.

We can help you avoid having to build complex run guides, install guides, they're always out of date, they always confuse customers, they don't handle every scenario. We're just going to package the manifest, we're going to automate it, we're going to architect it so you'll get success. So that's the first piece of improving your software distribution life cycle.

Thanks for reading!