Documentation

Documentation versions (currently viewingVaadin 23)

You are viewing documentation for Vaadin 23. View latest documentation

Kubernetes Kit

Deploy your Vaadin application to Kubernetes, an open-source system for automating deployment, scaling, and management of containerized applications, and enable scalability, high availability, and rolling updates for your application.
Note
Commercial feature

A commercial Vaadin subscription is required to use Kubernetes Kit in your project.

Features

Kubernetes Kit is used to deploy Vaadin Flow applications on-premise or in the cloud using Kubernetes. It helps in creating applications that are scalable, highly available, and user-friendly. Specifically, it enables the following:

  • Horizontal scalability, saving on cloud costs by allowing applications to scale down without impacting active user sessions — and scale up when needed.

  • High availability, enabling users to keep their active sessions and continue using your application even if a server fails.

  • Non-disruptive rolling updates that don’t interrupt user sessions, reducing the cost and inconvenience of after-hours deployments.

  • Serialization helpers that make it faster and easier to leverage fully horizontal scaling and fail-over.

How It Works

The Kubernetes Kit uses a combination of sticky sessions and session replication to enable scaling up or down, and high availability. Under normal circumstances, sticky sessions are used to always route the same user to the same node or pod.

A node or pod will keep the sessions of the users currently connected to it in memory. It will also asynchronously replicate the session to the distributed cache (i.e., Hazelcast or Redis).

Under normal circumstances, the user experience shouldn’t therefore be negatively affected as the session is retrieved from the internal memory of each node or pod. However, when there is a scaling down event, or if there is an unexpected node/pod/network failure in the server to which the user is currently being connected, then the user will be connected to a new healthy node/pod that will retrieve the session from the distributed cache.

So for the end user, the experience will be seamless: they won’t notice that anything has happened, except perhaps for a very slight delay when scaling down, or when a node failure event occurs.

Topics

Getting Started
Step-by-step guide showing how to enable scalability, high availability, and non-disruptive rolling updates for your application using Kubernetes Kit.
Rolling Updates
Kubernetes Kit helps to roll out a new version of an application by sending a notification to users on the previous version so that they can choose when to switch. This allows them to save any changes to their work, rather than risk losing them.
Session Replication
Best practices to achieve session replication.
Session Replication Debug Tool
To help make HTTP sessions fully serializable and deserializable, Kubernetes Kit offers a tool for discovering serialization issues during development.
Configuration
Configuration options for Kubernetes Kit.

E885B747-E8E1-4446-8220-6EC4C6A94ECF