Appplication Manager Quick Start

You can get started with Ververica Platform by following a quick start.

This quick start provide a simple development environment, but are not meant for production. For production deployment information, see the production deployment recommendations.

Prerequisites

This quickstart assumes access to Kubernetes with Helm and Minio.

Download and Install Ververica Platform

First download the Ververica Platform Helm Chart from Ververica. and install the platform using the provided chart.

$ helm install \
  --name ververica-platform \
  --set enabled.loggingDemo=true,enabled.metricsDemo=true \
  daplatform-dist-trial-1.4.1.tgz

You can then access the Application Manager UI by port forwarding to localhost:8080

$ kubectl port-forward service/ververica-platform-appmanager 8080:80
Initial Home Screen

Create Your First Deployment

Click the Create Deployment button on the top right corner of the page to create a new deployment and provide it a name such as Top Speed Windowing. Then under the Behavior section we can specify how the application should be managed.

Deployment Target:
 The deployment target is where the Flink application should be run. We will set it to Kubernetes which is the same Kubernetes namespace where Application Manager is deployed.
Upgrade Strategy:
 The upgrade strategy should be Stateful so our application state is carried across Flink jobs.
Initial State:The initial state should be Running so that Application Manager will automatically deploy our job when we finish creating the deployment.
Restore Strategy:
 The restore strategy specifies what state should be used when starting a new job. We will set this to LATEST_SAVEPOINT.
Behavior

Under the resources section, we will specify the parallelism for our job and set it to 1. Application Manager will set sensible defaults for everything else so we will leave those blank.

Resources

Finally we can set up the configuration for our specific job by providing a uri to the Jar, along with setting checkpoint and savepoint directories.

Note

For this example you can use the Top Speed Windowing job that the Apache Flink® community publishes to Maven Central.

http://repo1.maven.org/maven2/org/apache/flink/flink-examples-streaming_2.11/1.8.0/flink-examples-streaming_2.11-1.8.0-TopSpeedWindowing.jar

Configuration

Finally, we will press the Create Deployment button to start our job.

Modify Your Deployment

After creating our job, we want to make a change in a stateful and consistent manner. This could be changing the jar to release a new version of the application, or in our case, change a configuration such as the parallelism.

To make a change, we press Modify Deployment which will either take us back to the creation screen we used earlier, or let us edit the deployment as yaml.

Modify Deployment

You can use either, but in this case let’s use Edit as YAML and change the parallelism of our application from 1 to 2 and press Apply Changes.

Deployment Yaml

Once the changes have been applied, Application Manager will take care of the rest, transitioning our application to use the updated configuration.

Transitioning

Suspend Your Deployment

When finished, press the Suspend button to gracefully stop all resources and stop the application.

Suspend Deployment

Appendix: Setting Up Minikube and Minio

If you do not have a Kubernetes installation readily availible you can use Minikube and Minio to run this quickstart locally.

Install Minikube by following the official instructions in the Kubernetes documentation. Once minikube has been installed you can start your local Kubernetes cluster.

$ minikube start --memory 8192 --cpus 4

Next, you will want to install Helm, a Kubernetes package manager. A full walk through of Helm can be found in our installation instructions.

$ kubectl --namespace kube-system create serviceaccount tiller
$ kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
$ helm init --service-account tiller

With the Helm install command below you can quickly install Minio, an S3 compatible object store that this guide uses for storing Apache Flink® checkpoints and savepoints. Note, you might need to change the clusterIP adress depending on your installation.

# Install Minio with username: admin and password: password

$ helm install \
  --set accessKey=admin,secretKey=password,service.clusterIP=10.96.1.1 \
  --name  my-minio stable/minio

Finally, port forward the Minio UI to port 9000 and create a bucket call flink.