Deployment models
Deployment models help you to understand your application deployment process across clusters.
Push-based deployment
The push-based deployment model deploys your application on a single cluster. The deployment pipeline connects to the cluster and applies the deployment files. This model does not require any operator or agent installation on your cluster.
You can use any deployment tool that can run from the deployment pipeline against the target cluster, for example:
- kubectl (or
ocfor Red Hat OpenShift on IBM Cloud) to apply Kubernetes manifests. - Helm to install or upgrade a chart release. The chart can be stored in the inventory repository, like any other deployment asset.
The deployment scripts are part of the deployment repository, and you can customize them to fit your application and cluster requirements. DevSecOps provides helper scripts refered to as commons library that cover deployment actions.
Pull-based deployment
The pull-based deployment model is suitable for multi-cluster application deployments. This model uses IBM Cloud Satellite Config as the deployment tool for deploying across multiple clusters. For more information, see Understanding Satellite Config.
The deployment pipeline does not connect to each cluster. Instead, it publishes the deployment files to Satellite Config, and an agent that runs on each cluster retrieves them. The clusters that receive the same deployment are grouped in a Satellite cluster group.
Satellite Config deploys Kubernetes resource definitions. If your application is packaged as a Helm chart or as Kustomize overlays, render it into Kubernetes manifests first, for example with helm template or kustomize build,
and then upload the rendered manifests as the configuration version.
For a pull-based deployment, complete these steps:
- Create or update the required Satellite configurations and their versions for the deployment files.
- Create or update the Satellite Config subscriptions with the Satellite configurations and the versions that need to be deployed.
- After the subscriptions are updated, the Razee agent that is installed on the clusters pulls the most recent deployments from Satellite Config and deploys them across the clusters.
Choosing a deployment model
| Consideration | Push-based deployment | Pull-based deployment |
|---|---|---|
| Target | A single cluster | A group of clusters |
| Deployment tool | kubectl, oc, Helm, Kustomize, or any tool that runs in the pipeline |
Satellite Config |
| Component on the cluster | None | Satellite Config agent |
| Cluster access | The pipeline needs credentials to the cluster | The agent on the cluster retrieves the deployment, and the pipeline needs access only to Satellite Config |
| Helm charts | Installed or upgraded directly with Helm | Rendered to manifests before upload |
For more information about selecting the deployment target, see Deploying your application on a target.