Stash by AppsCode is a cloud native data backup and recovery solution for Kubernetes workloads, volumes and databases
Backup your data in Kubernetes native way. Stash uses Custom Resource Definition (CRD) to specify targets and behaviors of backup and restore process. Schedule a backup for your workloads in the same way you deployed them into Kubernetes.
Built-in on top of open source backup program Restic (restic.net) . It provides fast, secure, efficient and verifiable backup facility.
Backup your Kubernetes volumes mounted in a workload. Stash supports Deployment, DaemonSet, StatefulSet, ReplicaSet, ReplicationController, OpenShift DeploymentConfig etc. You can also backup stand-alone PVC with "ReadWriteMany" access mode.
Backup your databases deployed in Kubernetes. Stash supports backup of PostgreSQL, MySQL, MongoDB, Elasticsearch and Percona XtraDB databases. It seemingly integrates with KubeDB. It is now recommended method to backup KubeDB supported databases.
Take scheduled snapshot of the volumes of your workload using Kubernetes VolumeSnapshot API. Stash removes the burden of creating VolumeSnapshot manually for each volume used in your workload. Instead, just create a single BackupConfiguration for the workload and Stash will do the rest for you.
Backup your cluster resources definition periodically so that you can recover your cluster in case of any disaster.
Often an application consists of more than one component. For example, an application may have a front-end and a back-end. Stash supports taking backup of multiple co-related components using a single configuration.
Define a common template to backup all similar types of workloads. Then, just add some annotations to your targeted workload to enable backup for it. You can use a single template to backup all the Deployments, StatefulSets, DaemonSets, ReplicationControllers and ReplicaSets of your entire cluster.
Cleanup old snapshots automatically according to different retention policies.
Perform some actions before and after backup or restore process using Stash Hooks.
You can store your backed up data into various storage services. Stash supports AWS S3, Minio, Rook, Google Cloud Storage, Azure Blob Storage, OpenStack Swift, DigitalOcean Spaces, Blackbaze B2 and REST server as backend. You can also use Kubernetes persistent volumes as backend.
Stash supports multiple architectures. Stash docker images are platform aware. We use Docker manifest to build docker image for linux/amd64 linux/arm linux/arm64 architectures. Hence, whatever platforms you are using, you don't have to worry about the image version. Docker will automatically download the right image for you.
Stash will upload only the diff since last backup. It splits the targeted files into smaller blob using Content Defined Chunking (CDC) and upload only the modified blobs.
Stash keeps all your data encrypted using AES-256. So, your data is protected event if it leaks from the backend.
You can extend Stash using Function and Task. Now, you can customize the backup and restore process. You can even backup your custom workloads that are not officially supported by Stash.
Stah provides a kubectl plugin that provides some nifty features such as triggering instant backup, copy Repository into different namespace, clone workloads into a different namespace or cluster etc.
Stash comes with minimal RBAC permissions to ensure your cluster security. We make sure that no user can use Stash to access the resources of an unauthenticated namespace.
Stash provides rich Prometheus metrics for backup and restore process. You can use official Prometheus server or CoreOS Prometheus operator to monitor these metrics.
InterSystems was delighted to engage with AppsCode in the delicate, yet fundamental task of supporting durable, non-ephemeral workloads with Kubernetes. We needed the best-prepared, most-proficient database operator consulting in the industry. Given AppsCode's pedigree of database building operators, the decision was easy. No time was wasted and all objectives reached in an amazingly short period of time. I would recommend AppsCode consulting for any Kubernetes related work.
Product Manager at InterSystems
Voyager made it simple and efficient for us to protect and initiate our bare metal Kubernetes workload. Its underlying technology and extensive L4 support along with seamless SSL integration is what made us choose Voyager over others. Voyager team is also very responsive when it comes to support. Great product!
Solutions Architect at Elpheria
Voyager is the easiest way to use the fast and reliable HAProxy as our ingress controller. At PriceHubble, it is the corner-stone of our blue/green deployments.
DevOps Engineer at PriceHubble AG
I work with a few Kubernetes clusters and we use Voyager as our preferred ingress controller. We really like the ease of configuration. Documentation is pretty good. Also the use of HaProxy is important for us because it works really well with both L4 and L7 load balancing. One of our TCP services, Wayk Now, is able to withstand thousands of persistent connections very smoothly at the same time.
DevOPS Specialist at Devolutions.net
We really like using Voyager. Its straightforward and well-documented config and SSL (especially Let's Encrypt) has made our migration of services to Kubernetes a breeze. Each major version has been a very welcome update!
Senior Developer at BIRDI Pty Ltd
Install Stash in your Kubernetes cluster