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 ensure requests are served only to healthy containers
- Run migrations and other jobs automatically
- Re-run previous releases easily
Release strategies
The right release strategy for your project depends on its complexity. Choose the approach that fits your needs:
1. Manual deployment
Best for: Single-service applications
Manually select a specific build or image to deploy. Best for projects with one or two resources.
Build from a Git repository
Start building from your linked Git repositories in minutes.
Run an image continuously
Deploy a built image as a continuously-running service.
2. CI/CD
Best for: Smaller projects
Automatically build and deploy your latest commit using continuous integration and deployment. Set up path rules and commit message filters to control when builds trigger.
3. Environments
Best for: All projects, especially complex releases
Create environments for each deployment stage and define workflows within each environment to automate your entire release process including backups, migrations, and multi-service deployments. Run manually, on Git push, or on a schedule.
Set up environments
Create environments to organize your release process by deployment stage.
Configure a release flow
Learn how to use the visual editor or code to configure a release flow.
Set up a preview environment
Create templates in your pipelines to automatically generate temporary preview environments to view pull requests and branches.
Manage your production environment
You can ensure your production environment has the correct environment variables and build arguments available using secret groups and tags.
Secret groups can contain connection details for addons, passwords, tokens, keys, and other sensitive data. You can also create configuration groups to manage non-sensitive data, and assign roles to your team members accordingly.
You can create groups that contain the relevant secrets for your different environments, and restrict them based on tag, or by specific resources.
Tags are a useful way to identify and manage resources in different environments. You can quickly add or remove multiple groups of secrets and configuration details from resources by adding and removing tags.
Run migrations during release
When you make changes to your database schema you may need to update your application and change your production database simultaneously. Workflows are the recommended approach, as they allow you to back up your database, run a migration, and deploy your new release only when the migration is successful.
Deploy with zero downtime
You can deploy your release with zero downtime by configuring health checks to ensure that your code is ready before traffic is served to it. Northflank handles deployments differently depending on how many instances your service has.
For single instance deployments, a new container will be started and the old one terminated when the new container is ready. For multiple instances, containers are replaced in a rolling redeployment.
In both cases, configure a readiness probe to ensure your application is initialised and ready to serve requests before traffic is routed to it.
Upgrade databases with zero downtime
You can configure your addons for high availability, which allows you to update or scale them without losing access to your data.