I am working on a cloud based application which installed under Ubuntu as you would otherwise expected. For example, the server is installed as follow:
apt-get install snapserver
We have nearly 20 packages as part of the project now.
We do not yet have a running cluster, but are thinking that at some point we'd have many computers running with the software, some computers as frontends, and some computers as backends.
My question is: how do you usually update a live cluster? My concern is that new code may generate new entries in the database that are not compatible with the old code. If that happens and a client access a server that still runs the old version, it could end up crashing.
What is the best practice in this case?