Maintenance windows
Releases are scheduled for nights or weekends because every deployment interrupts users.
Cloud & DevOps · Application Deployment
We design how new versions replace old ones gradually, verifiably and reversibly, so releasing during business hours carries far less risk.
Zero downtime deployment is a way of releasing new application versions that aims to let users keep working throughout the update. It relies on running the new version alongside the old one, checking its health, shifting traffic over and keeping the previous version ready for rollback. Common strategies are rolling updates, blue-green deployments and canary releases, combined with database migrations designed to work with both versions at once.
Many teams still deploy by stopping the application, copying new code, running migrations and starting it again, often late at night to limit the damage. When something fails, rolling back means restoring files and databases by hand while users wait. The fix is not just a faster script; it needs a release strategy, health checks and migrations designed for running two versions side by side.
Releases are scheduled for nights or weekends because every deployment interrupts users.
Reverting a bad release means manual file restores and database fixes rather than a single, rehearsed action.
Renamed or dropped columns make it impossible to run old and new code together, ruling out gradual rollouts.
Without health checks and release monitoring, problems are noticed only when error reports arrive from users.
A choice of rolling, blue-green or canary deployment for each application, based on its architecture, traffic and hosting platform.
Endpoints and probes that tell the load balancer or orchestrator when a new instance is ready to serve and when it is failing.
The expand-and-contract pattern for schema changes, so a release can be rolled back without undoing database changes.
Load balancer, reverse proxy or service mesh configuration to shift traffic between versions gradually or all at once.
A single, tested action to return to the previous version, triggered manually or automatically when error rates or health checks degrade.
Dashboards and alerts comparing error rates and response times before and after each release.
When deployments don't interrupt users, they can happen when the team is fully available.
Canary releases expose a problem to a small share of users before it reaches everyone.
Rolling back becomes a known, quick action instead of an emergency procedure.
Lower risk per deployment makes small, regular releases practical.
Online shops that cannot afford to show an error page during checkout while an update runs.
Multi-tenant applications where customers in different time zones mean there is no quiet window to deploy.
ERP or operations software used throughout the working day, where downtime stops staff from doing their jobs.
Backends that must keep older app versions working while new endpoints and fields are rolled out.
Rollback is rehearsed on staging before the strategy is used in production.
Trace a real deployment step by step and note where downtime and risk occur.
Match rolling, blue-green or canary to each application and its hosting platform.
Add health checks and graceful shutdown, and remove assumptions that only one version runs at a time.
Adopt backward-compatible schema changes and separate destructive steps into later releases.
Implement the strategy in the CI/CD pipeline and infrastructure, including the rollback path.
Run deployments and rollbacks on staging until both are routine.
Deploy to production with release monitoring, then refine thresholds from real results.
| Criterion | Rolling update | Blue-green | Canary |
|---|---|---|---|
| How it works | Instances replaced a few at a time | Full new environment; traffic switched at once | Small share of traffic to new version, then increased |
| Extra capacity needed | Small | Double during the switch | Small to moderate |
| Rollback speed | Moderate; roll back instance by instance | Very fast; switch traffic back | Fast; route traffic away from canary |
| Risk exposure | Mixed versions during rollout | All users switch together | Limited to canary users at first |
| Good fit | Default for most container platforms | Applications needing instant switch and rollback | High-traffic apps with good monitoring |
Each release is a versioned build that cannot be altered after testing.
Production deployments require approval and are logged with who triggered them.
A low-risk release path means urgent patches can go out without waiting for a maintenance window.
Rollouts are sized so that running two versions temporarily doesn't exhaust servers or database connections.
Zero downtime needs code changes as well as infrastructure; our team does both.
We implement release strategies on VPS servers with a reverse proxy as well as on Kubernetes and managed services.
Database changes are where most rollbacks fail, so we design them for coexistence from the start.
We test the way back as thoroughly as the way forward.
Fixed-price packages with the scope written down, paid stage by stage. Your project goes live once it's fully paid.
Official documentation and guidance if you want to read more about this topic.
Zero downtime deployment is a set of techniques for releasing a new version of an application without interrupting users. The new version starts alongside the old one, is checked for health, receives traffic, and only then is the old version stopped. How close a system gets to no interruption at all depends on its architecture, database changes and hosting, which we assess first.
Blue-green runs two complete environments and switches all traffic from the old to the new at once, with instant switch-back if needed. Canary sends a small percentage of traffic to the new version first and increases it gradually while monitoring errors. Canary limits exposure; blue-green gives the simplest rollback.
Schema changes are split into steps that both old and new code can tolerate, a pattern often called expand and contract. For example, a new column is added first, the application writes to both, and the old column is removed in a later release once nothing uses it.
No. Rolling and blue-green deployments can be implemented on ordinary virtual machines using a reverse proxy or load balancer. Kubernetes and managed container services make rolling updates easier, but they are not a requirement.
Odoo module updates usually require a short restart and can change the database, so true zero downtime is limited. We minimize interruption with tested update procedures, staging rehearsals and well-timed releases, and are clear about where a brief window remains necessary.
Next step
Tell us how you deploy today and where it hurts. We'll recommend a release strategy and what your application needs to support it.