Announcing: The Commercial Software Distribution Handbook

Paige Calvert, Kaylee McHugh, and Grant Miller
 | 
Oct 11, 2024

Replicated is proud to announce the Commercial Software Distribution Handbook - a guide written for any and every company looking to distribute their enterprise software into self-hosted environments. The Handbook provides tips for every element of the Commercial Software Distribution Lifecycle, from how to develop your software for self-hosted environments, to learning how to test your software for customers’ unique environments, to understanding how to provide these customers with the best support from your team. 

Below is a short snippet from the handbook. To get a free copy of the whole book, download it here or stop by the Replicated booth at KubeCon Salt Lake City to receive a first edition copy. 

____________________________________________________________________________

Introduction 

Commercial software distribution is the business process that independent software vendors (ISVs) use to enable enterprise customers to self-host a fully private instance of the vendor's application in an environment controlled by the customer.

Since its inception, software distribution into self-hosted environments has changed drastically. What was once almost exclusively a process where a Solutions Engineer physically traveled to a customer’s office, installed software onto dusty servers in a dark closet, and traveled back to that closet every time an upgrade was needed, is now replaced with a world of VMs, containers and private clouds. Yet, the goals for Software Distribution remain the same: deploy software, quickly and securely, into environments where the customer has complete visibility and control. 

At Replicated, we’ve been enabling self-hosted software for nearly a decade and have worked with hundreds of software vendors as they implement a modern approach to this problem. Over this time, we’ve developed a unique expertise in recognizing and implementing the key steps to distributing software well. Now, we are sharing what we've learned with you and empowering every software vendor to transform how their software is distributed. 

To this end, we’ve developed the Commercial Software Distribution Lifecycle. Developed through years of trial and error, thousands of conversations with early-stage startups and Fortune 500 companies, and pulling from the expertise of our staff, the Commercial Software Distribution Lifecycle represents the stages that are essential for every company that wants to deliver their software securely and reliably to customer controlled environments.

This lifecycle was inspired by the DevOps lifecycle and the SDLC, but it focuses on the unique things that must be done to successfully distribute third party, commercial software to tens, hundreds, or thousands of enterprise customers. The phases are: 

Develop Phase

Develop refers to the technical decisions made by software vendors to prepare software to be consumed by enterprise customers in on-prem environments. To provide a seamless experience for customers, software vendors must consider how an application will be distributed while developing it—not after the fact. This includes considerations during the design, architecture, and packaging of the application. When done well, customers can install the application when and where they want to without any major changes to the application’s architecture. 

An application is developed properly for modern on-prem deployments when it addresses the following: 

  • The application is resilient. It comes back on failures and is also built to avoid externally-facing failures. For example, leveraging cloud-native Kubernetes best practices for packaging will provide you with a dependable solution for resilience and high availability.
  • The application uses components that are portable, so vendors and customers are not locked in to specific cloud providers or services. This makes the application more self-contained and portable. For example, using an open-source queuing solution like RabbitMQL as opposed to AWS’s SQS will provide more portability. 
  • The application is packaged with open standards whenever possible, rather 
than providing custom scripts or bespoke installers. For example, most enterprise customers are familiar with Helm because 
it provides a consistent, reusable, and shareable packaging format. For customers who aren't familiar with Helm or Kubernetes, vendors can provide alternative installation options that treat Kubernetes as a dependency without exposing it to the customer.
  • The application follows the principle of least privilege to minimize the privileges required from the enterprise customer’s cluster, including avoiding tools that require escalated permissions. For example, not expecting to be able to deploy operators into existing clusters as RBAC may not allow it.  
  • The application allows customers the choice of supplying required services as part of installation, as opposed to utilizing whatever services are embedded with the application. For example, enterprise customers should be able to provide a connection string to their own database rather than using the embedded database option. 
  • The application is developed and tested with an understanding of the different network settings that enterprises will require. For most applications, the vast majority of enterprise customers are not going to give inbound access to their instance of the application. Others will allow outbound access, either directly or through a proxy. Finally, the most security conscious customers will not provide any outbound access to the internet, also known as an air gap environment. These network settings can complicate installation, updates, reporting, and application operations if not thoroughly tested.

When developed well, these considerations allow the enterprise customer to install the software where and how they want to. They aren’t limited by the application’s architecture and are able to bring their own requirements and tooling when needed. In this way, the application provides the right amount of structure and flexibility for the enterprise customer to be successful, whether this is the first self-hosted application they are deploying or the 100th.

____________________________________________________________________________

To read tips for all phases of the Commercial Software Distribution Lifecycle, download the entire Commercial Software Distribution Handbook here or stop by the Replicated booth at KubeCon Salt Lake City.