Deployment with
symlink releases.
A symlink release is a way to deploy without downtime. The new version is prepared in its own folder, and the live site switches to it in one step. It’s like changing scenery between acts: the audience always sees a finished stage. If the new version doesn’t work, we restore the website code to the previous version within 5 minutes.
What a symlink release is
A symlink is a link that points to a folder, like a shortcut on your computer’s desktop: open it and you’re in the folder it points to. In general, it works like this:
- Each version of the website has its own folder.
- One link says which version is live.
- Uploaded files and settings stay aside, outside the individual versions.
Switching the live site to another version then means repointing just one link.
Why we deploy without downtime
- Website files aren’t uploaded in pieces: the new version is fully ready before the live site switches to it.
- We restore the website code to the previous version within 5 minutes, because we only switch the link back.
- Preparation and checks happen off the live site, while visitors keep seeing the original version.
Deployment phases
We deploy through GitLab CI/CD, an automated process that tests a code change and hands it over for deployment. Like a quality-control line, it runs every change through the same checks before it goes live. We prepare the new version off the live site, and the deployment itself has four steps.
- Backup before deployment. Before anything switches, we save a database backup.
- Version switch. The live site switches to the new version in one step.
- Smoke test. A quick check that the site is up and key URLs work, like a lighting check before opening night.
- Restoring the previous version. If the new version fails, we restore the website code to the previous version within 5 minutes.
The 5-minute limit covers the website code, not the database, because the two are restored separately.
General rules
- Every code change goes through version control (a logbook of who changed what, with the option to go back) and a new deployment.
- We back up the database every night and keep backups for 14 days. We test restoring from a backup at least once a quarter.
Want to know how deployment would work in your project?
In a free consultation, we’ll go through how deployment would work for you. We’ll be in touch within one business day.