Interest in the adoption of Kubernetes (K8s) has certainly exploded over the past 3-5 years, but as with any next wave technology, there’s still a lot of confusion in the market about how to best leverage it to accelerate your business goals. In this post, we’ll break down the differences between K8s infrastructure delivery and management, and K8s application delivery and management, and highlight key business concerns to consider as you select the right suite of tools to get your software into the hands of your customers.
Delivering customer value, and continuing to grow your product adoption, requires being able to get your product in the hands of your target customers and allowing them to recognize that value quickly.
According to the Synergy Research Group, while the enterprise SaaS market has matured, it still only accounts for 20% of total enterprise software spend. Capturing a large enterprise as a customer means getting your product added to a larger software ecosystem, made up of various types of infrastructure and deployment model preferences, and subject to various regulatory and compliance concerns. For multi-tenancy SaaS software vendors this can mean needing to tackle private cloud (VPC) or on-premise installations for the first time.
Getting your software successfully delivered into these environments is slow, and often requires product developers to shift focus from building product features to building custom installation wrapping for key customer acquisitions; typically not a viable or scalable business model.
Application containerization and Kubernetes has made it more feasible for software producers to embrace delivery models beyond multi-tenancy SaaS. As an open-source orchestration engine specializing in the deployment, scaling and automated life-cycle management of containerized applications, Kubernetes has significantly eased the packaging and management burden for deploying software products. With Kubernetes, you can meaningfully deliver products into large enterprise and hybrid IT-style environments, which typically include deployment targets across some mix of (multi-prem) environments such as on-premise, hybrid cloud, private cloud, public cloud and edge.
When you deploy Kubernetes for your infrastructure layer, you are creating a ‘cluster’, so called because you are creating a cluster of working machines (called nodes) that can run your containerized application.
Kubernetes is extremely versatile. Clusters can be created DIY on a local machine, via a cloud provider, or provisioned from a Kubernetes distribution provider. Once Kubernetes is deployed, it has to be managed and maintained, so a critical decision point for businesses embracing Kubernetes is to determine what aspects of cluster management they want to self-manage vs shift to a third-party provider.
There are a large number of third-party Kubernetes infrastructure providers. Some of the bigger players targeting large enterprise adoption include Red Hat OpenShift, Rancher, and VMware Tanzu. Each of these providers packages a supported, often highly opinionated collection of Kubernetes add-on components to get you started, including cluster management tools for cluster operations concerns such as upgrading, scaling and additional cluster provisioning.
While Replicated’s application distribution and management platform is not considered a traditional Kubernetes infrastructure provider, our product is capable of provisioning Kubernetes clusters for enterprise customers that want to consume a third-party Kubernetes-based application but don’t yet have their own Kubernetes infrastructure. We do this via a packaged experience around kURL, an open source project from Replicated that allows anyone to create a custom Kubernetes distro, adding your preferred Kubernetes add-ons, to create what we call an “embedded cluster” application deployment. In this capacity, kURL creates a modern, multi-node software appliance that can be installed onto a single Linux VM (or scaled out to many nodes), even in a fully airgapped network.
Creating Kubernetes clusters without deploying software isn’t inherently valuable. You want applications successfully running on those clusters. More importantly, as a software vendor you want the entire lifecycle experience of your product to delight your customers. While Kubernetes does a great job of automating away many concerns of keeping production grade applications deployed and running, it does not inherently provide the tools necessary for application building, distribution, troubleshooting and on-going maintenance and management. For these concerns you need to focus on tooling aimed at the application delivery and management layer.
Replicated is the industry’s most complete vendor platform for delivering and managing Kubernetes-based applications. We package commercial and open source tools to streamline the distribution and management of third-party applications into complex, multi-prem enterprise environments.
Streamlining your ability to deliver your existing application(s) into multi-prem environments allows you to meet potential customers where they are in their cloud and Kubernetes adoption journeys, significantly increasing your product’s total addressable market (TAM).
Out of the box, Replicated provides everything software vendors need to start shipping an installable version of their application securely and quickly into a customer’s existing Kubernetes cluster, or into a new cluster created via kURL. Vendors are provided a suite of tools that enable product distribution and support, and end customers are provided tooling for application administration and automation.
Products like Rancher, OpenShift and VMware Tanzu Kubernetes Grid are primarily focused on infrastructure delivery and management, not application delivery and management. Some of these Kubernetes infrastructure providers do offer platform additive products and/or entitlements to add application management capabilities. There are even some open source projects targeting this need, such as KubeApps. The vast majority of these offerings however, are aimed at the enterprise technology use case of controlled distribution, and not at the use cases of a third-party software creator.
While several of the larger Kubernetes distribution providers have partner ISV programs, most are focused on integrating the software vendor into that given distribution platform. Software vendors are left largely on their own to address business concerns such as:
Addressing these types of software vendor concerns are at the heart of Replicated’s application delivery and management platform.
Replicated enables software vendors and teams of all sizes to successfully deliver applications to their customers across a variety of deployment models without the vendor team, or the end customer, needing to become experts in infrastructure. Replicated uses the powerful reliability patterns and primitives of Kubernetes to enable consistent delivery and day to day operation of even highly complex, distributed applications. From the Day 0 ‘out of the box’ UX that enables rapid PoCs for Pre-Sales teams, to streamlining Day 2 Ops & Support – Replicated enables and streamlines the management of the entire customer lifecycle, letting software vendors spend more time focusing on their core product competencies.