This guide will walk you through the process of taking an existing Kubernetes application and packaging it so it can be distributed and managed with Replicated Ship. For this guide, we will package and deliver a simple nginx application on Kubernetes. While this is a trivial example, Ship is designed to support large complex applications and has native support for Helm charts and Kustomize.
Looking for Ship Open Source?
This guide is for application vendors looking to enable your end customers to manage a proprietary application with Ship. If you are looking for an easier way to distribute or manage publicly available Kubernetes- or Helm-based applications, you may want to check out Ship for Open Source.
Replicated Ship is a set of tools (APIs, YAML spec, and distributable components) that make it easy to package and distribute a modern, cloud-native application for an enterprise customer to install, configure, and operate in their own private environment.
Your customer will use Ship to install and operate your application, and you can use Ship to test your release as your develop it. One of the main goals of Replicated Ship is to package and deliver applications when the operator is unfamiliar with the software being installed.
Before you can distibute an application on Ship, you must be able to deploy all of the application components using scripts or automation. Ship’s design allows it to be compatible with any automation tooling, including but not limited to
- Configuration Management tools like Chef and Ansible
- Infrastructure as Code tools like Terraform and Cloudformation
- Python, Ruby, or Bash scripts
The most common use of Replicated Ship is distributing a Kubernetes (or Helm) application to an enterprise customer. Ship provides tools for installation-time customization as well as primitives for operationalizing the application in an automation-driven enterprise workflow.
Customizable Installation/Update Process
When the end customer installs a Ship application, Ship will launch a branded and customizable web-based setup console. It’s here that customized config options can generate data such as keys, certs, random strings, etc. The console also shows an interactive form for the operator to input data that’s required to start the application.
The web-based console is a nice, user friendly way to set up the application, but automation is a big part of Ship. When an application is distributed on Ship, it’s easy for the operator to automate the configuration and update process so any updates can be applied to a change management process and then staged for deployment. This can even be used to create a continuous delivery process for your on-prem software.
Private Asset Delivery
Most enterprise software includes private assets including Docker images, license data and more. When using Ship, the license key (and installation script) provided to your customer grants them read-only, audited access to these resources for the duration of the license. The entitlement to download these resources can be revoked at any time.
The next section of this guide will walk you through packaging a sample nginx stack into a Ship Application and then install and operate it on a Kubernetes Cluster. Continue to the next page to get started.