Production Workloads /
Release for production
After you have created your development environment on Northflank to build, deploy, and preview your applications and microservices, you can use the features explained in this guide to release production deployments smoothly and with zero downtime.
Northflank's features allow you to:
- Release quickly
- Deploy with zero downtime
- Add health checks to make sure requests can be served
- Run migrations and other jobs automatically
- Roll back and restore easily
This guide will help you understand how Northflank handles deployments and the different ways of releasing for production on Northflank, so you can choose the most suitable method for your project. Each topic provides links to in-depth documentation on the relevant features.
The right release strategy for your project will depend on its complexity. You can release by:
- Manually selecting an image to deploy (suitable for single-service applications)
- Using CI/CD to automatically build and deploy your latest commit (suitable for smaller projects)
- Manually triggering a release flow, or run on Git push (good option for all projects, best for complex projects that require backups, migrations, multiple deployments)
You can deploy your release with zero downtime by correctly configuring health checks to ensure that your code is ready before traffic is served to it. How Northflank handles your deployments depends on how many instances your service is scaled to.
Deploy a release manually
Northflank allows you to manually deploy a release from a commit built on Northflank, or a specific image from a container registry.
In a combined service you can select a build from the combined service to deploy. In a deployment service you can select a specific build from a build service in the same project, or choose an image from an external container registry to deploy
You can manually deploy your release by selecting the specific build or external image to deploy via the deploy build button in the service header. You can select the specific build to deploy in the list of all builds, or search by branch or pull request. This will disable CD for the service, so new builds will not be automatically deployed.
You can also use the edit deployment modal to select a new image from an external container registry to deploy, using the image tag for the specific version to release.
If you have any migrations, you can also deploy and run these manually via a job.
This method is best for projects with only one or two resources to deploy your release to.
To revert a release you can simply select your previous stable release build. If you have run a migration, you will also need to revert it.
When deploying manually you should consider running multiple instances, and/or configuring health checks to ensure no downtime for your service.