3 ms·
No server NEEDS to go down for maintenance. You can avoid doing so for anything, at any scale, DB change, server updates, etc. The problem is that a 0-downtime
by sametmax 10y ago
No server NEEDS to go down for maintenance. You can avoid doing so for anything, at any scale, DB change, server updates, etc.
The problem is that a 0-downtime system, at a certain scale, is very costly to create and maintain. You need redundancy everywhere, load balancing everywhere, data replication, synchronization. Those are hard problems.
Basically you need to arrive to the level of being able to release the Netflix Chaos Monkey in prod to be sure it works even if part of your system is busy with the update, or just out of sync. This is certainly doable. It's also very expensive, requires a lot of time and many experts to work on the problem.
Putting a site on maintenance mode can be a middle ground you choose, because you don't want to invest that much just to avoid taking down you site for a little time once in a while.
Economics.
Of course, if you do choose the road of 0down time, you site will gain more than just availability, it will gain reliability as well, since those best practices serve both purposes.
- amelius 10y agoOne of the biggest problems is migrating your data to match updated code, while the system keeps running. It's like changing the engine of a driving car.
- ebbv 10y agoThis comment makes a lot of assumptions; the primary one being you are able to completely build your infrastructure from scratch. Which just isn't the case for the majority of companies or web sites out there.
- mseebach 10y agoOf course they're able to. They just (rationally, typically) don't want to spend the money and effort getting there, and so they don't.
- lucastx 10y agoI see here two concepts of "being able to"
- sametmax 10y agoThe question is "why do they do it". And the answer is "cost". It's not: - because it's can't be done; - because we don't know the way to do it; - because it's better that way. It's because it's very expensive. In your case, either because you don't create your whole system, or have a legacy system to use, doing it would be prohibitive. It's still a matter of cost.