Skip to main content
Version: Current

Deployment targets

A deployment target specifies where a scenario is deployed and how its engine is run.

Deployment target is one of the three dimensions described in How Nussknacker runs, alongside the processing mode and the engine. Processing mode describes how a scenario processes data, the engine determines what runtime technology executes it, and the deployment target determines where and how that engine runs.

Each deployment target runs exactly one engine. A scenario can only be deployed to targets compatible with its engine.

A single Designer can be configured with multiple deployment targets:

                            Designer

┌─────────────────┼─────────────────┐
│ │ │
▼ ▼ ▼
Deployment target Deployment target Deployment target

Different targets connected to the same Designer can use different engines, run in different locations, and be operated by different parties.

Where deployment targets can run

Deployment targets can use infrastructure operated in three different ways:

  • Nussknacker-managed — the target runs in Nussknacker Cloud and is operated by Nussknacker.
  • Customer-managed — the target runs on infrastructure operated by the customer, either on-premises or in the customer's cloud account.
  • Third-party managed — the target runs on infrastructure operated by another provider, such as a managed Flink service or a managed Kubernetes service.

How Designer is operated does not determine how its deployment targets must be operated.

For example, a Designer running in Nussknacker Cloud can deploy scenarios to a customer-managed Flink or Kubernetes target. In this setup, scenario processing stays on infrastructure controlled by the customer. Conversely, a customer-managed Designer can deploy scenarios to a third-party managed Flink or Kubernetes service, or to a deployment target in Nussknacker Cloud.

One Designer can use several such combinations at the same time.

Deployment targets by engine

The type of deployment target depends on the engine used by the scenario.

Lite engine

The Lite engine can run:

  • embedded in Designer,
  • on a customer-operated Kubernetes cluster,
  • on a third-party managed Kubernetes cluster,
  • on a Kubernetes-based deployment target in Nussknacker Cloud.

The Flink engine can run:

  • embedded in Designer,
  • on a customer-operated Flink cluster,
  • on a third-party managed Flink service, including Ververica,
  • on a Flink deployment target in Nussknacker Cloud.

These are examples rather than an exhaustive list.

Example deployment combinations

The table below shows example combinations of processing mode, engine, and deployment target.

Processing modeEngineExample deployment target
Request-responseLiteDesigner with the Lite engine embedded
Request-responseLiteCustomer-operated Kubernetes cluster
Request-responseLiteThird-party managed Kubernetes cluster
Request-responseLiteNussknacker Cloud deployment target
StreamingFlinkDesigner with the Flink engine embedded
StreamingFlinkCustomer-operated Flink cluster
StreamingFlinkVerverica managed Flink
StreamingFlinkNussknacker Cloud deployment target
StreamingLiteDesigner with the Lite engine embedded
StreamingLiteCustomer-operated Kubernetes cluster
StreamingLiteThird-party managed Kubernetes cluster
StreamingLiteNussknacker Cloud deployment target

A scenario's processing mode and engine are fixed for that scenario. The deployment target is selected when the scenario is deployed from the targets available for that engine.

Designer as a deployment target

A separate Kubernetes or Flink cluster is not always necessary.

Both the Lite and Flink engines can be embedded directly in Designer, making Designer itself a deployment target. This is useful for quick setups, development, experimentation, and verifying ideas without provisioning separate execution infrastructure.

Deployment to an engine embedded in Designer is also typically faster than deployment to an external target, especially when the external target requires resources to be provisioned first.

Embedded deployment targets are intended for development and evaluation rather than production use.

As requirements grow, additional deployment targets can be connected to the same Designer without changing the basic model: scenarios remain authored in Designer and are deployed to an appropriate target when they are run.