Locations that software may be deployed to and run can include:
- Containers running in clusters
- Cloud-managed services, platforms, or serverless functions
- Virtual machines or infrastructure as a service
- Self-managed or managed servers
- Point-of-sale devices in retail stores
- Medical devices in hospitals
All these places are different kinds of deployment targets.
A deployment target is a location that will host your software. We’ve used the term deployment target as this could refer to many different destinations, such as:
- Kubernetes clusters
- Cloud apps or services
- Cloud storage
- Windows or Linux servers
- On-premises machines
- Serverless functions
- SSH connections
Deployment targets define where your software is deployed, and they also serve as the basis for Day-2 tasks and additional operational tasks that can be managed by Octopus.
Deployments to Kubernetes clusters are performed by a lightweight agent that runs on the cluster. If you’re deploying to a Windows or Linux server or virtual machine, your deployment target will run a lightweight agent called a Tentacle. For cloud services, such as Amazon ECS or Azure Web Apps, the deployment is made through a worker instead.
You select the target type when you add it to Octopus. Based on the type, you’ll be prompted to set up the appropriate connection using a simple form.
Environment scoping
Deployment targets must be associated with at least one environment. While a deployment target is associated with a long-lived environment or parent environment, Octopus will prevent that environment from being deleted.
In the case where a deployment target is associated with an ephemeral environment, the association will be removed when the ephemeral environment deprovisions. If a target has no remaining environments, it will also be automatically deleted.