Choose A Deployment Strategy
This guide helps you pick what deployment strategy is best for your project. We'll walk you through the different options and help you decide which one is best for you.
Types of Deployment Strategies
There are a few different deployment strategies you can use with Spin. They are:
spin deploy
- This is the most straightforward deployment strategy. You runspin deploy
from your local machine, and Spin will deploy your application to your servers. This is the best option for small projects or if you're just getting started with Spin.- GitHub Actions - GitHub Actions is a great way to automate your deployments. You can set up GitHub Actions to deploy your application to your servers when you push to your repository. This is the best option for larger projects or if you want to automate your deployments.
spin deploy | GitHub Actions | |
---|---|---|
Difficulty | Very Easy | Basic Understanding of SSH & GitHub Actions required |
Team Size | Small teams | Small to very large teams |
Zero-downtime Deployments | ✅ | ✅ |
Automated Deployments | ❌ | ✅ |
spin deploy
(simple)
If you're a small team or bootstrapping a project to get it out the door as fast as possible, spin deploy
might be your best friend.
Without the headache of CI/CD, spin deploy
will perform a zero-downtime deployment from your local machine to your server directly over SSH. There are no requirements for having a CI/CD pipeline or private Docker registries.
Read more about spin deploy
in the command reference on the open source docs.
GitHub Actions (advanced)
If you have multiple environments (staging, production, etc.) a GitHub Team plan is required ($4/user/mo) to access the GitHub Environments feature. This will allow you to set environment variables on a per environment basis.
GitHub Actions is very powerful and can be used to automate your deployments. You can set up GitHub Actions to deploy your application to your servers when you push to your repository. This is the best option for larger projects or if you want complete automation.