When updating the streaming job, we need to minimize the disruption time that comes from the Flink cluster re-creation.
One option to address it might look like blue-green deployment:
- Flink operator receives an update request
- A new cluster is created
- When the new cluster is ready, the operator triggers savepoint (if
JobSpec.takeSavepointOnUpdate: true) and stops the old job
- When savepoint is taken, the new job starts in the new cluster.
An important requirement is that two identical jobs should not run simultaneously.
When updating the streaming job, we need to minimize the disruption time that comes from the Flink cluster re-creation.
One option to address it might look like blue-green deployment:
JobSpec.takeSavepointOnUpdate: true) and stops the old jobAn important requirement is that two identical jobs should not run simultaneously.