About Distributing Applications
This topic provides an overview of distributing applications with the Replicated Platform. It includes information about the Replicated Platform features used to distribute applications, as well as the options for packaging applications.
About Distributing with Replicated
Replicated is a commercial software distribution platform. Independent software vendors (ISVs) can use features of the Replicated Platform to distribute modern enterprise software into complex, customer-controlled environments, including on-prem and air gap.
Distributing software with the Replicated Platform refers to using Replicated features to enhance and support each phase of the commercial software distribution life cycle:
- Develop
- Test
- Release
- License
- Install
- Report
- Support
For more information about how Replicated defines the commercial software distribution life cycle, see Introduction to Replicated.
The following diagram demonstrates the process of distributing an application with the Replicated Platform and then installing the application in an enterprise customer environment:
View a larger version of this image
As shown in the diagram above:
- The Replicated SDK can be distributed alongside an application to get access to an in-cluster API to more easily integrate key features.
- Replicated Compatibility Matrix can be used to quickly generate Kubernetes clusters for running application tests as part of continuous integration and continuous delivery (CI/CD) workflows.
- After testing, application releases can be promoted to a channel in the Replicated Vendor Portal to be shared with customers or internal teams.
- Customers can be assigned to channels in order to control which application releases they are able to access and install.
- Customers' unique licenses grant proxy access to private application images through the Replicated proxy registry.
- Before installation, customers can run preflight checks to verify that their environment meets installation requirements.
- Customers can install using any method, including the Helm CLI, Replicated KOTS, or any proprietary installation method already used by the ISV.
- Instance data is automatically sent to the Vendor Portal by the Replicated SDK. If the application was installed using KOTS, then KOTS also sends instance data.
- If any issues occur during installation or at runtime, customers can generate and send a support bundle. Support bundles can be uploaded in the Vendor Portal for analysis.
For more information about the Replicated features depicted in this diagram, see:
- About the Replicated SDK
- About Compatibility Matrix
- About Channels and Releases
- About Customers
- About Installing an Application in the KOTS documentation
- Installing with Helm
- About Preflight Checks and Support Bundles
- About Instance and Event Data
About Packaging Applications
This section describes the options for packaging an application that is distributed with the Replicated platform.
Packaging with Helm (Recommended)
Helm is a popular open source package manager for Kubernetes applications. Many ISVs use Helm to configure and deploy Kubernetes applications because it provides a consistent, reusable, and sharable packaging format. For more information, see the Helm documentation.
Replicated strongly recommends that all applications are packaged using Helm because many enterprise users expect to be able to install an application with the Helm CLI.
Helm-based applications distributed with Replicated can be installed with the Helm CLI or with the Replicated KOTS installer.
Helm CLI Installations
Helm-based applications distributed with the Replicated platform can be installed with the Helm CLI. This allows you to continue to support Helm CLI installations for your customers, while also having access to Replicated features such as tools for licensing, releasing, and supporting applications.
For more information about installing applications distributed with Replicated using the Helm CLI, see Installing with Helm.
KOTS Installations
Replicated KOTS is a kubectl plugin and an in-cluster Admin Console that provides highly successful installations of Helm charts and Kubernetes applications into customer-controlled environments, including on-prem and air gap environments. KOTS also supports installations on VMs or bare metal servers through embedded clusters, which are clusters built from a customized Kubernetes distribution embedded with an application and provisioned in the customer environment at the time of installation.
Deploying Helm-based applications with KOTS provides additional functionality not directly available with the Helm CLI, such as the KOTS Admin Console and support for air gap installations. Additionally, when you package your application using Helm, you can support Helm CLI and KOTS installations from the same release without having to maintain separate sets of Helm charts and application manifests.
For more information about how to distribute and install Helm charts with KOTS, see About Distributing Helm Charts with KOTS.
The Replicated KOTS entitlement is required to install applications with KOTS. For more information, see Pricing on the Replicated website.
Packaging with Kubernetes
For ISVs that do not want to use Helm, applications distributed with Replicated can be packaged as standard Kubernetes manifest files. Applications packaged as Kubernetes manifests can be installed using Replicated KOTS or any proprietary installer already used by the ISV.
Replicated KOTS is a kubectl plugin and an in-cluster Admin Console that provides highly successful installations of Helm charts and Kubernetes applications into customer-controlled environments, including on-prem and air gap environments. KOTS also supports installations on VMs or bare metal servers through embedded clusters, which are clusters built from a customized Kubernetes distribution embedded with an application and provisioned in the customer environment at the time of installation.
For more information about how to distribute and install Kubernetes manifest-based applications with KOTS, see the KOTS documentation.
The Replicated KOTS entitlement is required to install applications with KOTS. For more information, see Pricing on the Replicated website.
About Distributing the Replicated SDK with an Application
The Replicated SDK is a Helm chart that can be installed as a small service alongside your application. The SDK can be installed alongside applications packaged as Helm charts or Kubernetes manifests. The SDK can be installed using the Helm CLI or KOTS.
For information about how to distribute and install the SDK with your application, see Installing the Replicated SDK.
Replicated recommends that the SDK is distributed with all applications because it provides access to key Replicated functionality, such as:
- Automatic access to insights and operational telemetry for instances running in customer environments, including granular details about the status of different application resources. For more information, see About Instance and Event Data.
- An in-cluster API that you can use to embed Replicated features into your application, including:
- Collect custom metrics on instances running in online or air gap environments. See Configuring Custom Metrics.
- Check customer license entitlements at runtime. See Querying Entitlements with the Replicated SDK API and Verifying License Field Signatures with the Replicated SDK API.
- Provide update checks to alert customers when new versions of your application are available for upgrade. See Support Update Checks in Your Application in Replicated SDK API.
- Provide update checks to alert customers when new versions of your application are available for upgrade. See Support Update Checks in Your Application in Replicated SDK API (Beta).
- Programatically name or tag instances from the instance itself. See Programatically Set Tags.
For information about the Replicated SDK API endpoints, see Replicated SDK API. For information about developing against the SDK API locally, see Developing Against the SDK API.