I think it really depends on how you've designed your cluster.  If you make 
use of cluster roles, you could just redeploy specific parts of your 
cluster (e.g., we have an "analytics" role in our cluster and I could just 
redeploy those nodes *if* their inter-node classes haven't changed).  Doing 
this does require some advanced planning on your part: you have to be 
careful to define which messages are sent between nodes and which should be 
purely within a node.  Once again, that comes down to your specific use 
case.  

In our cluster, each role is a different service and we have a very small 
set of messages sent between services and their supervisor so we could 
redeploy a single node, though in practice we don't bother since our 
cluster isn't user facing—they won't know if it's down for five minutes 
during a redeploy.

tldr: if you're very careful about the messages sent between nodes doing a 
hot redeploy of a subset of your cluster should be doable.

Another option of course would be to load-balance across > 1 cluster and 
redeploy entire clusters at a time.

On Thursday, November 27, 2014 10:20:39 AM UTC-7, Andrew Easter wrote:
>
> I'm interested to understand what patterns people would use when upgrading 
> a clustered Akka application. 
>
> My main area of ignorance is over the situation where, during a new 
> deployment, a cluster might be running different versions of the same 
> application on different nodes. I can foresee potential situations where 
> users would experience unexpected behaviour, for example, where nodes in 
> the cluster may be handling web requests. 
>
> Are there any patterns around doing this. For example, running a backup 
> cluster alongside the active cluster? i.e. deploy new version to the backup 
> cluster and have some mechanism (e.g. using load balancer) to switch 
> traffic between the active and the backup. 
>
> I'm conscious that I've presented a simple use case and the active/backup 
> approach might be somewhat harder to achieve in complicated architectures. 
>
> Is there something obvious I'm missing, or is this a common area that 
> requires creative, context specific solutions? 
>
>

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to