Apache Flink

Streamtime runs Flink on a Kubernetes fleet and keeps it monitored and up to date. A Flink deployment runs in one of two modes:

  • Application (a single-job cluster): the cluster runs one job, from an application JAR or a registered Flink project version, and is sized in Flink Units.
  • Session: a shared cluster, sized up to Max Flink Units, that you submit jobs to. Each job claims Flink Units from it.

Key Features

  • Open-source Apache Flink or Confluent Flink, chosen as the Provider.
  • Sized in Flink Units, with an Optimization Goal (Cost, Balanced or Performance) and a State Backend Tier (Stateless, Light, Heavy or Heavy-RocksDB).
  • Savepoints and upgrade modes (stateless, savepoint or last-state) for safe job upgrades.
  • Flink Web UI, optionally, and metrics, logs and alerts for every deployment.
  • Flink projects: CI registers each build from your own artifact store as a version, and deployments run it by version. See Flink projects.

Settings

Basic Configuration: Identifier, Description, Provider, the mode, and Flink Units (application) or Max Flink Units (session).

Fleet Selection: the fleet to run on, or let Streamtime choose one.

Advanced Configuration

  • For application mode: the application JAR location (or a project version), entry class or Python entry file, and arguments.
  • Parallelism and upgrade mode; savepoint strategy.
  • Optimization Goal and State Backend Tier.
  • Web UI Enabled, Flink configuration (flink_conf), and JobManager and TaskManager resources.
  • The chart Version, to upgrade.

Before you start

  • A fleet in Healthy state with room for the Flink workload (see Fleet management).
  • For the API: an access token in STREAMTIME_TOKEN and your organization identifier in place of <org>. Replace api.example.com with your Streamtime API address.

The API examples below share this setup:

Saving a Flink resource and provisioning it are separate steps in the API: create or change it, then reconcile its new generation. The reconcile returns 202 with the operation it started; the same Idempotency-Key returns that operation again, and a 409 means the generation is out of date.



Check status

status is one of Pending, Provisioning, Updating, Healthy, Error or Deleting.


Submit and manage jobs (session mode)

A session cluster runs the jobs you submit to it. Each job claims Flink Units from the cluster’s Max Flink Units. Submitting a job starts it straight away.


Change the configuration or upgrade

Change the Flink Units, the advanced settings (parallelism, upgrade mode, resources, Flink configuration), or upgrade to a new Version (advanced_configuration.chart_config.main.version). With the savepoint upgrade mode, Streamtime takes a savepoint first and resumes the job from it.


View metrics, logs and alerts


Delete

Deleting removes what Streamtime installed for it on the fleet.