Concepts¶
This page covers the main concepts of Application Manager. We will introduce all concepts that you will need to operate Application Manager in practice. We recommend that you start here in order to get familiar with Application Manager.
Declarative API¶
A core feature of Application Manager is its declarative API. With a declarative API, the user provides a definition of a stateful streaming application, and Application Manager manages the complexity of coordinating all moving parts to successfully deploy the application and manage its lifecycle. Changing the definition of a streaming application will eventually lead to a change in the application, reflecting the updated definition.
Resources¶
Another core concept in Application Manager is a resource. A resource is an object with an identity, specification, and possibly status. Stateful streaming applications in Application Manager are managed as a Deployment resource.
A typical resource has the following structure:
- Metadata: Auxiliary information used to identify the resource such as a system generated ID, name, labels, and optionally a modification date.
- Spec: A specification of the resource. Everything that is used to define the resource.
- Status: Most resources have a lifecycle that is managed by the system, which is updated by the system in the status part of the resource.
A typical workflow with Application Manager includes initially creating a resource and later modifying it by updating the spec. The system reports progress by modifying the status part of the resource.
The following is a list of the main resources that are managed by Application Manager.
Resource | Description |
---|---|
ApiToken | A resource for generating static tokens for non-interactive authentication. |
ClusterRole | A definition of a set of rules that represent permissions to the API and resources. |
ClusterRoleBinding | A role binding associates a defined role to one or more users/groups/api-tokens. |
Deployment | A definition of a stateful/stateless Flink application. |
Deployment | A definition of a stateful/stateless Flink application. |
DeploymentTarget | A resource that corresponds to a logical or physical Deployment Target. |
Event | An event reported by Application Manager during transitions. |
Job | A specific instance of a Deployment. |
Namespace | A resource used to partition other resources. |
Role | A definition of a set of rules that represent permissions to the API and resources. |
RoleBinding | A role binding associates a defined role to one or more users/groups/api-tokens. |
Savepoint | A representation of a Flink savepoint in Application Manager. |
SecretValue | A value containing sensitive information with restricted visibility to users. |