# Backing Up, Restoring, and Migrating Resources with Velero

Data protection is a chief concern for application owners who want to make sure that they can restore a cluster to a known good state, recover from a crashed cluster, or migrate to a new environment. With Velero, you have a production-grade backup solution for your Kubernetes cluster resources and applications.

Velero is an open source tool to safely back up and restore resources in a Kubernetes cluster, perform disaster recovery, and migrate resources and persistent volumes to another Kubernetes cluster.

Velero offers key data protection features, such as scheduled backups, retention schedules, and pre- or post-backup hooks for custom actions.

### Use Cases

Here are some of the things you can do with Velero:

* Back up your cluster and restore it in case of loss.
* Recover from disaster.
* Copy cluster resources to other clusters.
* Replicate your production environment for development and testing environments.
* Take a snapshot of your application's state before upgrading a cluster

### Video Demonstrations

Here are two videos that you can watch in sequence to see Velero in action. The following video demonstrates how Velero can [back up and restore](https://www.youtube.com/watch?v=csrSPt3HFtg) applications in Kubernetes clusters:

{% embed url="https://www.youtube.com/watch?v=csrSPt3HFtg" %}



The following video demonstrates how Velero can [migrate](https://www.youtube.com/watch?v=q2FCxheA8VI\&list=PL7bmigfV0EqQRysvqvqOtRNk4L5S7uqwM\&index=5\&t=0s) an application from one cluster to another:

{% embed url="https://www.youtube.com/watch?v=q2FCxheA8VI&list=PL7bmigfV0EqQRysvqvqOtRNk4L5S7uqwM&index=5&t=0s" %}

### Components and Architecture

Velero consists of two main components:

* A server that runs on your cluster
* A command-line utility that runs locally

Velero supports plug-ins. You can run Velero in clusters on a cloud provider or on premises.

### How It Works

Each Velero operation --- on-demand backup, scheduled backup, restoration --- is a custom resource that is defined with a Kubernetes custom resource definition, or CRD, and stored in etcd. Velero includes controllers that process the custom resources to back up and restore resources.

You can back up or restore all objects in your cluster, or you can filter objects by type, namespace, or label.

### Find Out More

* [Velero Web Site](https://velero.io/)
* [Velero on GitHub](https://github.com/heptio/velero)
* [Velero Documentation](https://heptio.github.io/velero/master/index.html)
* [Download Velero](https://github.com/heptio/velero/releases/tag/v1.0.0)

### Related Kubernetes Open-Source Software

* [Sonobuoy](https://sonobuoy.io/)
* [Contour](https://projectcontour.io/)
* [Harbor](https://goharbor.io/)
* [Octant](https://blogs.vmware.com/cloudnative/2019/08/12/octant-reveals-objects-running-in-kubernetes-clusters/)
