Expand on rolling update recommendations, best practices - #27382
Conversation
| The configuration from existing nodes should pass the @ref:[Cluster Configuration Compatibility Checks](#cluster-configuration-compatibility-check). | ||
| Find out more about coexisting and @ref:[untyped to typed](../typed/coexisting.md#untyped-to-typed). | ||
|
|
||
| ### With Cluster Sharding and Persistence |
There was a problem hiding this comment.
This section related to and could be updated with #27342. And samples from @patriknw's work in akka/akka-samples#110 linked when merged.
|
Test PASSed. |
raboof
left a comment
There was a problem hiding this comment.
Really great to have these docs in more detail! Added some comments here and there.
|
Thanks @raboof, suggestions pushed. |
b95acb9 to
7db54ca
Compare
|
Test PASSed. |
1 similar comment
|
Test PASSed. |
jrudolph
left a comment
There was a problem hiding this comment.
Great to see this section expanded. Comments below.
| There are many more application specific aspects for serialization changes during rolling upgrades to consider. | ||
| For example, whether to allow dropped messages or tear down the TCP connection when the manifest is unknown. | ||
|
|
||
| * When some message loss during a rolling upgrade is acceptable versus a full shutdown and restart, assuming the application recovers afterwards |
There was a problem hiding this comment.
It's not quite clear to me what these bullets refer to. Is it in relation to "many more application specific aspects" above?
There was a problem hiding this comment.
Yes. That is pre-existing content.
There was a problem hiding this comment.
There was a problem hiding this comment.
The bullets just feel a bit thrown together without any obvious connection to previous paragraph. Is it an explanation or a recommendation or a choice for the user? I can somehow puzzle together what is meant but if you read it for the first time, you'll probably be confused.
There was a problem hiding this comment.
Agreed, this is now clarified and pushed.
| In Akka, rolling updates are typically used for a stateful Akka Cluster where you can't run two separate clusters in | ||
| parallel during the update, for example in blue green deployments. | ||
|
|
||
| For rolling updates related to Akka dependency version upgrades and the migration guides, please see |
There was a problem hiding this comment.
Might be worth an extra section below with some basic information similar to the other ones.
There was a problem hiding this comment.
I would but Patrik wanted to be sure we do not duplicate content here, and I fear adding basic info like that would possibly do that.
There was a problem hiding this comment.
It could be the same style as the other sections below with general information / explanations + links.
ac865eb to
d6d5de5
Compare
|
@jrudolph I think I've updated all of your suggestions, thanks! And answered all questions I hope. |
|
Test PASSed. |
|
Test PASSed. |
1 similar comment
|
Test PASSed. |
| split brain during network partitions. | ||
|
|
||
| Additionally, [Cluster Bootstrap](https://doc.akka.io/docs/akka-management/current/bootstrap/index.html#rolling-updates) | ||
| can be leveraged during rolling updates for joining and downing nodes in the cluster. |
There was a problem hiding this comment.
Does bootstrap help during downing as well? Or is it just for rejoining?
There was a problem hiding this comment.
@jrudolph yes there is quite a lot of information here related to rolls https://doc.akka.io/docs/akka-management/current/bootstrap/index.html#rolling-updates
There was a problem hiding this comment.
Clarified and pushed if you can take another look, LMK what you think.
| ## Cluster Configuration Compatibility Checks | ||
|
|
||
| During rolling updates the configuration from existing nodes should pass the Cluster configuration compatibility checks. | ||
| For example, when migrating from Classic to Typed Clusters, a two step approach is possible: |
There was a problem hiding this comment.
I don't understand this recommendation and how it applies to the migration to typed actors.
There was a problem hiding this comment.
Aha, accidentally found the answer while just closing another tab: it's about migrating sharded entities from untyped to typed. That should probably be clarified (see #26718 (comment)).
There was a problem hiding this comment.
That is where it is from, yes.
| In Akka, rolling updates are typically used for a stateful Akka Cluster where you can't run two separate clusters in | ||
| parallel during the update, for example in blue green deployments. | ||
|
|
||
| For rolling updates related to Akka dependency version upgrades and the migration guides, please see |
There was a problem hiding this comment.
It could be the same style as the other sections below with general information / explanations + links.
| There are many more application specific aspects for serialization changes during rolling upgrades to consider. | ||
| For example, whether to allow dropped messages or tear down the TCP connection when the manifest is unknown. | ||
|
|
||
| * When some message loss during a rolling upgrade is acceptable versus a full shutdown and restart, assuming the application recovers afterwards |
There was a problem hiding this comment.
The bullets just feel a bit thrown together without any obvious connection to previous paragraph. Is it an explanation or a recommendation or a choice for the user? I can somehow puzzle together what is meant but if you read it for the first time, you'll probably be confused.
|
Test PASSed. |
|
Test PASSed. |
1 similar comment
|
Test PASSed. |
jrudolph
left a comment
There was a problem hiding this comment.
LGTM, good to have more content and links here!
#27192
Relates to #27342 where there's the start of a section if we want to add it, I'll point it out in comments.