Gravity Application Upgrade Process?


#1

I have a question regarding application upgrade, it says clusters are immutable so if we deploy a new build which either has application change or gravity core package change, does it spin up a new cluster and switch it or it is still doing a rolling update?

The question is also in regards to how long the upgrade will take?

& whole data need to be transferred from old to the new cluster?

& also will it increase application downtime?


#2

Gravity performs rolling in-place cluster upgrade that does not require application downtime.

You can read more about updates here:

https://gravitational.com/gravity/docs/cluster/#updating-a-cluster

Updates of the application or gravity runtime do not require removing a cluster. Whenever gravity updates your application, it triggers update hooks:

https://gravitational.com/gravity/docs/pack/#application-hooks

When gravity performs an upgrade of the Kubernetes or it’s components it performs upgrade of server by server following operation plan:

https://gravitational.com/gravity/docs/cluster/#displaying-operation-plan


#3

@sasha thanks, wanted to check how clusters will be immutable and always same as mentioned ? or may be my assumption of immutable is different.


#4

Upgrade has a transactional nature - it either succeeds and you end up with a desired state, or fails and you can rollback to the previous cluster state of the application and/or cluster. This enforces the cluster version/runtime/application invariant on a distributed system like kubernetes.

You can also simply create another cluster alongside and delete the other, but that’s not always possible on-premise with limited hardware.