Skip to content
Snippets Groups Projects
Commit ebc42fe7 authored by Lorenz Boguhn's avatar Lorenz Boguhn
Browse files

Merge upstream master

parents 2be456a4 0ff4ca96
No related branches found
No related tags found
1 merge request!187Migrate Beam benchmark implementation
This commit is part of merge request !187. Comments created here will be created in the context of that merge request.
Showing
with 219 additions and 109 deletions
...@@ -3,29 +3,37 @@ kind: benchmark ...@@ -3,29 +3,37 @@ kind: benchmark
metadata: metadata:
name: uc2-flink name: uc2-flink
spec: spec:
appResource: sut:
- "uc2-flink/flink-configuration-configmap.yaml" resources:
- "uc2-flink/taskmanager-deployment.yaml" - configMap:
- "uc2-flink/taskmanager-service.yaml" name: "benchmark-resources-uc2-flink"
- "uc2-flink/service-monitor.yaml" files:
- "uc2-flink/jobmanager-service.yaml" - "flink-configuration-configmap.yaml"
- "uc2-flink/jobmanager-deployment.yaml" - "taskmanager-deployment.yaml"
#- "uc2-flink/jobmanager-rest-service.yaml" - "taskmanager-service.yaml"
loadGenResource: - "service-monitor.yaml"
- "uc2-kstreams/uc2-load-generator-deployment.yaml" - "jobmanager-service.yaml"
- "uc2-kstreams/uc2-load-generator-service.yaml" - "jobmanager-deployment.yaml"
#- "jobmanager-rest-service.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc2-load-generator"
files:
- "uc2-load-generator-deployment.yaml"
- "uc2-load-generator-service.yaml"
resourceTypes: resourceTypes:
- typeName: "Instances" - typeName: "Instances"
patchers: patchers:
- type: "ReplicaPatcher" - type: "ReplicaPatcher"
resource: "uc2-flink/taskmanager-deployment.yaml" resource: "taskmanager-deployment.yaml"
- type: "EnvVarPatcher" - type: "EnvVarPatcher"
resource: "uc2-flink/jobmanager-deployment.yaml" resource: "jobmanager-deployment.yaml"
properties: properties:
container: "jobmanager" container: "jobmanager"
variableName: "PARALLELISM" variableName: "PARALLELISM"
- type: "EnvVarPatcher" # required? - type: "EnvVarPatcher" # required?
resource: "uc2-flink/taskmanager-deployment.yaml" resource: "taskmanager-deployment.yaml"
properties: properties:
container: "taskmanager" container: "taskmanager"
variableName: "PARALLELISM" variableName: "PARALLELISM"
...@@ -33,12 +41,12 @@ spec: ...@@ -33,12 +41,12 @@ spec:
- typeName: "NumSensors" - typeName: "NumSensors"
patchers: patchers:
- type: "EnvVarPatcher" - type: "EnvVarPatcher"
resource: "uc2-kstreams/uc2-load-generator-deployment.yaml" resource: "uc2-load-generator-deployment.yaml"
properties: properties:
container: "workload-generator" container: "workload-generator"
variableName: "NUM_SENSORS" variableName: "NUM_SENSORS"
- type: NumSensorsLoadGeneratorReplicaPatcher - type: NumSensorsLoadGeneratorReplicaPatcher
resource: "uc2-kstreams/uc2-load-generator-deployment.yaml" resource: "uc2-load-generator-deployment.yaml"
properties: properties:
loadGenMaxRecords: "150000" loadGenMaxRecords: "150000"
kafkaConfig: kafkaConfig:
......
...@@ -3,29 +3,37 @@ kind: benchmark ...@@ -3,29 +3,37 @@ kind: benchmark
metadata: metadata:
name: uc2-kstreams name: uc2-kstreams
spec: spec:
appResource: sut:
- "uc2-kstreams/uc2-kstreams-deployment.yaml" resources:
- "uc2-kstreams/uc2-kstreams-service.yaml" - configMap:
- "uc2-kstreams/uc2-jmx-configmap.yaml" name: "benchmark-resources-uc2-kstreams"
- "uc2-kstreams/uc2-service-monitor.yaml" files:
loadGenResource: - "uc2-kstreams-deployment.yaml"
- "uc2-kstreams/uc2-load-generator-deployment.yaml" - "uc2-kstreams-service.yaml"
- "uc2-kstreams/uc2-load-generator-service.yaml" - "uc2-jmx-configmap.yaml"
- "uc2-service-monitor.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc2-load-generator"
files:
- "uc2-load-generator-deployment.yaml"
- "uc2-load-generator-service.yaml"
resourceTypes: resourceTypes:
- typeName: "Instances" - typeName: "Instances"
patchers: patchers:
- type: "ReplicaPatcher" - type: "ReplicaPatcher"
resource: "uc2-kstreams/uc2-kstreams-deployment.yaml" resource: "uc2-kstreams-deployment.yaml"
loadTypes: loadTypes:
- typeName: "NumSensors" - typeName: "NumSensors"
patchers: patchers:
- type: "EnvVarPatcher" - type: "EnvVarPatcher"
resource: "uc2-kstreams/uc2-load-generator-deployment.yaml" resource: "uc2-load-generator-deployment.yaml"
properties: properties:
container: "workload-generator" container: "workload-generator"
variableName: "NUM_SENSORS" variableName: "NUM_SENSORS"
- type: NumSensorsLoadGeneratorReplicaPatcher - type: NumSensorsLoadGeneratorReplicaPatcher
resource: "uc2-kstreams/uc2-load-generator-deployment.yaml" resource: "uc2-load-generator-deployment.yaml"
properties: properties:
loadGenMaxRecords: "150000" loadGenMaxRecords: "150000"
kafkaConfig: kafkaConfig:
......
name: "uc2-kstreams" name: "uc2-kstreams"
appResource: sut:
- "uc2-kstreams-deployment.yaml" resources:
- "uc2-kstreams-service.yaml" - configMap:
- "uc2-jmx-configmap.yaml" name: "benchmark-resources-uc2-kstreams"
- "uc2-service-monitor.yaml" files:
loadGenResource: - "uc2-kstreams-deployment.yaml"
- "uc2-load-generator-deployment.yaml" - "uc2-kstreams-service.yaml"
- "uc2-load-generator-service.yaml" - "uc2-jmx-configmap.yaml"
- "uc2-service-monitor.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc2-load-generator"
files:
- "uc2-load-generator-deployment.yaml"
- "uc2-load-generator-service.yaml"
resourceTypes: resourceTypes:
- typeName: "Instances" - typeName: "Instances"
patchers: patchers:
......
...@@ -3,29 +3,37 @@ kind: benchmark ...@@ -3,29 +3,37 @@ kind: benchmark
metadata: metadata:
name: uc3-flink name: uc3-flink
spec: spec:
appResource: sut:
- "uc3-flink/flink-configuration-configmap.yaml" resources:
- "uc3-flink/taskmanager-deployment.yaml" - configMap:
- "uc3-flink/taskmanager-service.yaml" name: "benchmark-resources-uc3-flink"
- "uc3-flink/service-monitor.yaml" files:
- "uc3-flink/jobmanager-service.yaml" - "flink-configuration-configmap.yaml"
- "uc3-flink/jobmanager-deployment.yaml" - "taskmanager-deployment.yaml"
#- "uc3-flink/jobmanager-rest-service.yaml" - "taskmanager-service.yaml"
loadGenResource: - "service-monitor.yaml"
- "uc3-kstreams/uc3-load-generator-deployment.yaml" - "jobmanager-service.yaml"
- "uc3-kstreams/uc3-load-generator-service.yaml" - "jobmanager-deployment.yaml"
#- "jobmanager-rest-service.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc3-load-generator"
files:
- "uc3-load-generator-deployment.yaml"
- "uc3-load-generator-service.yaml"
resourceTypes: resourceTypes:
- typeName: "Instances" - typeName: "Instances"
patchers: patchers:
- type: "ReplicaPatcher" - type: "ReplicaPatcher"
resource: "uc3-flink/taskmanager-deployment.yaml" resource: "taskmanager-deployment.yaml"
- type: "EnvVarPatcher" - type: "EnvVarPatcher"
resource: "uc3-flink/jobmanager-deployment.yaml" resource: "jobmanager-deployment.yaml"
properties: properties:
container: "jobmanager" container: "jobmanager"
variableName: "PARALLELISM" variableName: "PARALLELISM"
- type: "EnvVarPatcher" # required? - type: "EnvVarPatcher" # required?
resource: "uc3-flink/taskmanager-deployment.yaml" resource: "taskmanager-deployment.yaml"
properties: properties:
container: "taskmanager" container: "taskmanager"
variableName: "PARALLELISM" variableName: "PARALLELISM"
...@@ -33,12 +41,12 @@ spec: ...@@ -33,12 +41,12 @@ spec:
- typeName: "NumSensors" - typeName: "NumSensors"
patchers: patchers:
- type: "EnvVarPatcher" - type: "EnvVarPatcher"
resource: "uc3-kstreams/uc3-load-generator-deployment.yaml" resource: "uc3-load-generator-deployment.yaml"
properties: properties:
container: "workload-generator" container: "workload-generator"
variableName: "NUM_SENSORS" variableName: "NUM_SENSORS"
- type: NumSensorsLoadGeneratorReplicaPatcher - type: NumSensorsLoadGeneratorReplicaPatcher
resource: "uc3-kstreams/uc3-load-generator-deployment.yaml" resource: "uc3-load-generator-deployment.yaml"
properties: properties:
loadGenMaxRecords: "150000" loadGenMaxRecords: "150000"
kafkaConfig: kafkaConfig:
......
...@@ -3,29 +3,37 @@ kind: benchmark ...@@ -3,29 +3,37 @@ kind: benchmark
metadata: metadata:
name: uc3-kstreams name: uc3-kstreams
spec: spec:
appResource: sut:
- "uc3-kstreams/uc3-kstreams-deployment.yaml" resources:
- "uc3-kstreams/uc3-kstreams-service.yaml" - configMap:
- "uc3-kstreams/uc3-jmx-configmap.yaml" name: "benchmark-resources-uc3-kstreams"
- "uc3-kstreams/uc3-service-monitor.yaml" files:
loadGenResource: - "uc3-kstreams-deployment.yaml"
- "uc3-kstreams/uc3-load-generator-deployment.yaml" - "uc3-kstreams-service.yaml"
- "uc3-kstreams/uc3-load-generator-service.yaml" - "uc3-jmx-configmap.yaml"
- "uc3-service-monitor.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc3-load-generator"
files:
- "uc3-load-generator-deployment.yaml"
- "uc3-load-generator-service.yaml"
resourceTypes: resourceTypes:
- typeName: "Instances" - typeName: "Instances"
patchers: patchers:
- type: "ReplicaPatcher" - type: "ReplicaPatcher"
resource: "uc3-kstreams/uc3-kstreams-deployment.yaml" resource: "uc3-kstreams-deployment.yaml"
loadTypes: loadTypes:
- typeName: "NumSensors" - typeName: "NumSensors"
patchers: patchers:
- type: "EnvVarPatcher" - type: "EnvVarPatcher"
resource: "uc3-kstreams/uc3-load-generator-deployment.yaml" resource: "uc3-load-generator-deployment.yaml"
properties: properties:
container: "workload-generator" container: "workload-generator"
variableName: "NUM_SENSORS" variableName: "NUM_SENSORS"
- type: NumSensorsLoadGeneratorReplicaPatcher - type: NumSensorsLoadGeneratorReplicaPatcher
resource: "uc3-kstreams/uc3-load-generator-deployment.yaml" resource: "uc3-load-generator-deployment.yaml"
properties: properties:
loadGenMaxRecords: "150000" loadGenMaxRecords: "150000"
kafkaConfig: kafkaConfig:
......
name: "uc3-kstreams" name: "uc3-kstreams"
appResource: sut:
- "uc3-kstreams-deployment.yaml" resources:
- "uc3-kstreams-service.yaml" - configMap:
- "uc3-jmx-configmap.yaml" name: "benchmark-resources-uc3-kstreams"
- "uc3-service-monitor.yaml" files:
loadGenResource: - "uc3-kstreams-deployment.yaml"
- "uc3-load-generator-deployment.yaml" - "uc3-kstreams-service.yaml"
- "uc3-load-generator-service.yaml" - "uc3-jmx-configmap.yaml"
- "uc3-service-monitor.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc3-load-generator"
files:
- "uc3-load-generator-deployment.yaml"
- "uc3-load-generator-service.yaml"
resourceTypes: resourceTypes:
- typeName: "Instances" - typeName: "Instances"
patchers: patchers:
......
...@@ -3,29 +3,37 @@ kind: benchmark ...@@ -3,29 +3,37 @@ kind: benchmark
metadata: metadata:
name: uc4-flink name: uc4-flink
spec: spec:
appResource: sut:
- "uc4-flink/flink-configuration-configmap.yaml" resources:
- "uc4-flink/taskmanager-deployment.yaml" - configMap:
- "uc4-flink/taskmanager-service.yaml" name: "benchmark-resources-uc4-flink"
- "uc4-flink/service-monitor.yaml" files:
- "uc4-flink/jobmanager-service.yaml" - "flink-configuration-configmap.yaml"
- "uc4-flink/jobmanager-deployment.yaml" - "taskmanager-deployment.yaml"
#- "uc4-flink/jobmanager-rest-service.yaml" - "taskmanager-service.yaml"
loadGenResource: - "service-monitor.yaml"
- "uc4-kstreams/uc4-load-generator-deployment.yaml" - "jobmanager-service.yaml"
- "uc4-kstreams/uc4-load-generator-service.yaml" - "jobmanager-deployment.yaml"
#- "jobmanager-rest-service.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc4-load-generator"
files:
- "uc4-load-generator-deployment.yaml"
- "uc4-load-generator-service.yaml"
resourceTypes: resourceTypes:
- typeName: "Instances" - typeName: "Instances"
patchers: patchers:
- type: "ReplicaPatcher" - type: "ReplicaPatcher"
resource: "uc4-flink/taskmanager-deployment.yaml" resource: "taskmanager-deployment.yaml"
- type: "EnvVarPatcher" - type: "EnvVarPatcher"
resource: "uc4-flink/jobmanager-deployment.yaml" resource: "jobmanager-deployment.yaml"
properties: properties:
container: "jobmanager" container: "jobmanager"
variableName: "PARALLELISM" variableName: "PARALLELISM"
- type: "EnvVarPatcher" # required? - type: "EnvVarPatcher" # required?
resource: "uc4-flink/taskmanager-deployment.yaml" resource: "taskmanager-deployment.yaml"
properties: properties:
container: "taskmanager" container: "taskmanager"
variableName: "PARALLELISM" variableName: "PARALLELISM"
...@@ -33,12 +41,12 @@ spec: ...@@ -33,12 +41,12 @@ spec:
- typeName: "NumNestedGroups" - typeName: "NumNestedGroups"
patchers: patchers:
- type: "EnvVarPatcher" - type: "EnvVarPatcher"
resource: "uc4-kstreams/uc4-load-generator-deployment.yaml" resource: "uc4-load-generator-deployment.yaml"
properties: properties:
container: "workload-generator" container: "workload-generator"
variableName: "NUM_NESTED_GROUPS" variableName: "NUM_NESTED_GROUPS"
- type: NumNestedGroupsLoadGeneratorReplicaPatcher - type: NumNestedGroupsLoadGeneratorReplicaPatcher
resource: "uc4-kstreams/uc4-load-generator-deployment.yaml" resource: "uc4-load-generator-deployment.yaml"
properties: properties:
loadGenMaxRecords: "150000" loadGenMaxRecords: "150000"
numSensors: "4.0" numSensors: "4.0"
......
...@@ -3,29 +3,37 @@ kind: benchmark ...@@ -3,29 +3,37 @@ kind: benchmark
metadata: metadata:
name: uc4-kstreams name: uc4-kstreams
spec: spec:
appResource: sut:
- "uc4-kstreams/uc4-kstreams-deployment.yaml" resources:
- "uc4-kstreams/uc4-kstreams-service.yaml" - configMap:
- "uc4-kstreams/uc4-jmx-configmap.yaml" name: "benchmark-resources-uc4-kstreams"
- "uc4-kstreams/uc4-service-monitor.yaml" files:
loadGenResource: - "uc4-kstreams-deployment.yaml"
- "uc4-kstreams/uc4-load-generator-deployment.yaml" - "uc4-kstreams-service.yaml"
- "uc4-kstreams/uc4-load-generator-service.yaml" - "uc4-jmx-configmap.yaml"
- "uc4-service-monitor.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc4-load-generator"
files:
- "uc4-load-generator-deployment.yaml"
- "uc4-load-generator-service.yaml"
resourceTypes: resourceTypes:
- typeName: "Instances" - typeName: "Instances"
patchers: patchers:
- type: "ReplicaPatcher" - type: "ReplicaPatcher"
resource: "uc4-kstreams/uc4-kstreams-deployment.yaml" resource: "uc4-kstreams-deployment.yaml"
loadTypes: loadTypes:
- typeName: "NumNestedGroups" - typeName: "NumNestedGroups"
patchers: patchers:
- type: "EnvVarPatcher" - type: "EnvVarPatcher"
resource: "uc4-kstreams/uc4-load-generator-deployment.yaml" resource: "uc4-load-generator-deployment.yaml"
properties: properties:
container: "workload-generator" container: "workload-generator"
variableName: "NUM_SENSORS" variableName: "NUM_SENSORS"
- type: NumNestedGroupsLoadGeneratorReplicaPatcher - type: NumNestedGroupsLoadGeneratorReplicaPatcher
resource: "uc4-kstreams/uc4-load-generator-deployment.yaml" resource: "uc4-load-generator-deployment.yaml"
properties: properties:
loadGenMaxRecords: "150000" loadGenMaxRecords: "150000"
numSensors: "4.0" numSensors: "4.0"
......
name: "uc4-kstreams" name: "uc4-kstreams"
appResource: sut:
- "uc4-kstreams-deployment.yaml" resources:
- "uc4-kstreams-service.yaml" - configMap:
- "uc4-jmx-configmap.yaml" name: "benchmark-resources-uc4-kstreams"
- "uc4-service-monitor.yaml" files:
loadGenResource: - "uc4-kstreams-deployment.yaml"
- "uc4-load-generator-deployment.yaml" - "uc4-kstreams-service.yaml"
- "uc4-load-generator-service.yaml" - "uc4-jmx-configmap.yaml"
- "uc4-service-monitor.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc4-load-generator"
files:
- "uc4-load-generator-deployment.yaml"
- "uc4-load-generator-service.yaml"
resourceTypes: resourceTypes:
- typeName: "Instances" - typeName: "Instances"
patchers: patchers:
......
# Docker Compose Files for Testing
This directory contains Docker Compose files, which help testing Benchmark implementations.
For each stream processing engine (Kafka Streams and Flink) and Benchmark (UC1-4), a Docker Compose file is provided
in the corresponding subdirectory.
## Full Dockerized Testing
Running the load generator, the benchmark and all required infrastructure (Kafka etc.) is easy. Simply, `cd` into the
directory of the benchmark implementation Compose file and *up* it.
For example:
```sh
cd uc1-kstreams-docker-compose/
docker-compose up -d
```
On less powerful hardware, starting all containers together might fail. In such cases, it usually helps to first *up*
Kafka and ZooKeeper (`docker-compose up -d kafka zookeeper`), then after some delay the Schema Registry
(`docker-compose up -d schema-registry`) and finally, after some more further delay, the rest (`docker-compose up -d`).
To tear down the entire Docker Compose configuration:
```sh
docker-compose down
```
## Benchmark (+ Load Generator) on Host, Infrastructure in Docker
For development and debugging purposes, it is often required to run the benchmark and/or the load generator directly on
the host, for example, from the IDE or Gradle. In such cases, the following adjustments have to be made to the
`docker-compose.yaml` file:
1. Comment out the services that you intend to run locally.
2. Uncomment the `ports` block in the Kafka and the Schema Registry services.
You can now connect to Kafka from your host system with bootstrap server `localhost:19092` and contact the Schema
Registry via `localhost:8081`. **Pay attention to the Kafka port, which is *19092* instead of the default one *9092*.**
...@@ -3,7 +3,7 @@ services: ...@@ -3,7 +3,7 @@ services:
zookeeper: zookeeper:
image: confluentinc/cp-zookeeper image: confluentinc/cp-zookeeper
expose: expose:
- "9092" - "2181"
environment: environment:
ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_CLIENT_PORT: 2181
kafka: kafka:
...@@ -37,7 +37,7 @@ services: ...@@ -37,7 +37,7 @@ services:
- schema-registry - schema-registry
- kafka - kafka
environment: environment:
BOOTSTRAP_SERVER: uc-wg:5701 BOOTSTRAP_SERVER: load-generator:5701
PORT: 5701 PORT: 5701
KAFKA_BOOTSTRAP_SERVERS: kafka:9092 KAFKA_BOOTSTRAP_SERVERS: kafka:9092
SCHEMA_REGISTRY_URL: http://schema-registry:8081 SCHEMA_REGISTRY_URL: http://schema-registry:8081
......
...@@ -3,7 +3,7 @@ services: ...@@ -3,7 +3,7 @@ services:
zookeeper: zookeeper:
image: confluentinc/cp-zookeeper image: confluentinc/cp-zookeeper
expose: expose:
- "9092" - "2181"
environment: environment:
ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_CLIENT_PORT: 2181
kafka: kafka:
...@@ -45,7 +45,7 @@ services: ...@@ -45,7 +45,7 @@ services:
- schema-registry - schema-registry
- kafka - kafka
environment: environment:
BOOTSTRAP_SERVER: uc-wg:5701 BOOTSTRAP_SERVER: load-generator:5701
PORT: 5701 PORT: 5701
KAFKA_BOOTSTRAP_SERVERS: kafka:9092 KAFKA_BOOTSTRAP_SERVERS: kafka:9092
SCHEMA_REGISTRY_URL: http://schema-registry:8081 SCHEMA_REGISTRY_URL: http://schema-registry:8081
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment