Skip to content
Snippets Groups Projects
Commit 16de8bb5 authored by MaxEmerold's avatar MaxEmerold
Browse files

Add JUnit Tests:

- Add Pipeline Test for UC1 Hazelcast Jet Pipeline
- Add Pipeline Test for UC2 Hazelcast Jet Pipeline
- Add Pipeline Test for UC3 Hazelcast Jet Pipeline
- ERROR Could not get to work UC4 Hazelcast Jet Pipeline!

Hazelcast Jet Benchmark Operator:

- Add Benchmark Operator Draft for UC1, UC2, UC3, UC4
- Change folder structure of kubernetes definitions for UC1, UC2, UC3, UC4

Hazelcast Jet Benchmark Implementation:

- Rework PipelineBuilder UC1
- Rework PipelineBuilder UC2
- Rework PipelineBuilder UC3
- Rework PipelineBuilder UC4

Ran first tests of new implementations and fixed Checkstyle and PMD errors.

Open/Known Problems:
- UC4 Pipeline test throws error hard to identify
- Kubernetes/Benchmark implementation needs testing
parent 831435fe
No related branches found
No related tags found
1 merge request!150WIP: Hazelcast Jet Benchmark/Docker-Compose/Kubernetes implementation
Showing
with 158 additions and 214 deletions
...@@ -11,7 +11,7 @@ spec: ...@@ -11,7 +11,7 @@ spec:
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
hostPath: hostPath:
path: </your/path/to/results/folder> path: "E:\\E99_Sonstiges\\VolumeKubernetes"
--- ---
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
......
apiVersion: theodolite.com/v1
kind: benchmark
metadata:
name: uc1-hazelcastjet
spec:
appResource:
- "uc1-hazelcastjet/uc1-hazelcastjet-deployment.yaml"
- "uc1-hazelcastjet/uc1-hazelcastjet-service.yaml"
#- "uc1-hazelcastjet/uc1-jmx-configmap.yaml"
#- "uc1-hazelcastjet/uc1-service-monitor.yaml"
loadGenResource:
- "uc1-kstreams/uc1-load-generator-deployment.yaml"
- "uc1-kstreams/uc1-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
- type: "ReplicaPatcher"
resource: "uc1-hazelcsatjet/uc1-hazelcastjet-deployment.yaml"
loadTypes:
- typeName: "NumSensors"
patchers:
- type: "EnvVarPatcher"
resource: "uc1-kstreams/uc1-load-generator-deployment.yaml"
properties:
container: "workload-generator"
variableName: "NUM_SENSORS"
- type: NumSensorsLoadGeneratorReplicaPatcher
resource: "uc1-kstreams/uc1-load-generator-deployment.yaml"
properties:
loadGenMaxRecords: "150000"
kafkaConfig:
bootstrapServer: "theodolite-cp-kafka:9092"
topics:
- name: "input"
numPartitions: 40
replicationFactor: 1
apiVersion: apps/v1
kind: Deployment
metadata:
name: titan-ccp-load-generator
spec:
selector:
matchLabels:
app: titan-ccp-load-generator
replicas: 1
template:
metadata:
labels:
app: titan-ccp-load-generator
spec:
terminationGracePeriodSeconds: 0
containers:
- name: workload-generator
image: ghcr.io/cau-se/theodolite-uc1-workload-generator:latest
ports:
- containerPort: 5701
name: coordination
env:
- name: KUBERNETES_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: KUBERNETES_DNS_NAME
value: "titan-ccp-load-generator.$(KUBERNETES_NAMESPACE).svc.cluster.local"
- name: KAFKA_BOOTSTRAP_SERVERS
value: "my-confluent-cp-kafka:9092"
- name: SCHEMA_REGISTRY_URL
value: "http://my-confluent-cp-schema-registry:8081"
\ No newline at end of file
apiVersion: v1
kind: Service
metadata:
name: titan-ccp-load-generator
labels:
app: titan-ccp-load-generator
spec:
type: ClusterIP
clusterIP: None
selector:
app: titan-ccp-load-generator
ports:
- name: coordination
port: 5701
targetPort: 5701
protocol: TCP
\ No newline at end of file
apiVersion: theodolite.com/v1alpha1 apiVersion: theodolite.com/v1
kind: benchmark kind: benchmark
metadata: metadata:
name: uc2-hazelcastjet name: uc2-hazelcastjet
spec:
appResource: appResource:
- "uc2-hazelcastjet-deployment.yaml" - "uc2-hazelcastjet/uc2-hazelcastjet-deployment.yaml"
- "uc2-hazelcastjet-service.yaml" - "uc2-khazelcastjet/uc2-hazelcastjet-service.yaml"
#- "uc2-jmx-configmap.yaml" #- "uc2-hazelcastjet/uc2-jmx-configmap.yaml"
#- "uc2-service-monitor.yaml" #- "uc2-hazelcastjet/uc2-service-monitor.yaml"
loadGenResource: loadGenResource:
- "uc2-load-generator-deployment.yaml" - "uc2-kstreams/uc2-load-generator-deployment.yaml"
- "uc2-load-generator-service.yaml" - "uc2-kstreams/uc2-load-generator-service.yaml"
resourceTypes: resourceTypes:
- typeName: "Instances" - typeName: "Instances"
patchers: patchers:
- type: "ReplicaPatcher" - type: "ReplicaPatcher"
resource: "uc2-hazelcastjet-deployment.yaml" resource: "uc2-hazelcastjet/uc2-hazelcastjet-deployment.yaml"
loadTypes: loadTypes:
- typeName: "NumSensors" - typeName: "NumSensors"
patchers: patchers:
- type: "EnvVarPatcher" - type: "EnvVarPatcher"
resource: "uc2-load-generator-deployment.yaml" resource: "uc2-kstreams/uc2-load-generator-deployment.yaml"
properties:
container: "workload-generator" container: "workload-generator"
variableName: "NUM_SENSORS" variableName: "NUM_SENSORS"
- type: NumSensorsLoadGeneratorReplicaPatcher - type: NumSensorsLoadGeneratorReplicaPatcher
resource: "uc2-load-generator-deployment.yaml" resource: "uc2-kstreams/uc2-load-generator-deployment.yaml"
properties:
loadGenMaxRecords: "150000"
kafkaConfig: kafkaConfig:
bootstrapServer: "theodolite-cp-kafka:9092" bootstrapServer: "theodolite-cp-kafka:9092"
topics: topics:
...@@ -33,5 +37,3 @@ kafkaConfig: ...@@ -33,5 +37,3 @@ kafkaConfig:
- name: "output" - name: "output"
numPartitions: 40 numPartitions: 40
replicationFactor: 1 replicationFactor: 1
- name: "theodolite-.*"
removeOnly: True
name: "uc2-hazelcastjet"
appResource:
- "uc2-hazelcastjet-deployment.yaml"
- "uc2-hazelcastjet-service.yaml"
#- "uc2-jmx-configmap.yaml"
#- "uc2-service-monitor.yaml"
loadGenResource:
- "uc2-load-generator-deployment.yaml"
- "uc2-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
- type: "ReplicaPatcher"
resource: "uc2-hazelcastjet-deployment.yaml"
loadTypes:
- typeName: "NumSensors"
patchers:
- type: "EnvVarPatcher"
resource: "uc2-load-generator-deployment.yaml"
container: "workload-generator"
variableName: "NUM_SENSORS"
- type: NumSensorsLoadGeneratorReplicaPatcher
resource: "uc2-load-generator-deployment.yaml"
kafkaConfig:
bootstrapServer: "theodolite-cp-kafka:9092"
topics:
- name: "input"
numPartitions: 40
replicationFactor: 1
- name: "output"
numPartitions: 40
replicationFactor: 1
- name: "theodolite-.*"
removeOnly: True
apiVersion: apps/v1
kind: Deployment
metadata:
name: titan-ccp-load-generator
spec:
selector:
matchLabels:
app: titan-ccp-load-generator
replicas: 1
template:
metadata:
labels:
app: titan-ccp-load-generator
spec:
terminationGracePeriodSeconds: 0
containers:
- name: workload-generator
image: ghcr.io/cau-se/theodolite-uc2-workload-generator:latest
ports:
- containerPort: 5701
name: coordination
env:
- name: KUBERNETES_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: KUBERNETES_DNS_NAME
value: "titan-ccp-load-generator.$(KUBERNETES_NAMESPACE).svc.cluster.local"
- name: KAFKA_BOOTSTRAP_SERVERS
value: "my-confluent-cp-kafka:9092"
- name: SCHEMA_REGISTRY_URL
value: "http://my-confluent-cp-schema-registry:8081"
apiVersion: v1
kind: Service
metadata:
name: titan-ccp-load-generator
labels:
app: titan-ccp-load-generator
spec:
type: ClusterIP
clusterIP: None
selector:
app: titan-ccp-load-generator
ports:
- name: coordination
port: 5701
targetPort: 5701
protocol: TCP
apiVersion: theodolite.com/v1
kind: benchmark
metadata:
name: uc3-hazelcastjet
spec:
appResource:
- "uc3-hazelcastjet/uc3-hazelcastjet-deployment.yaml"
- "uc3-hazelcastjet/uc3-hazelcastjet-service.yaml"
#- "uc3-hazelcastjet/uc3-jmx-configmap.yaml"
#- "uc3-hazelcastjet/uc3-service-monitor.yaml"
loadGenResource:
- "uc3-kstreams/uc3-load-generator-deployment.yaml"
- "uc3-kstreams/uc3-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
- type: "ReplicaPatcher"
resource: "uc3-hazelcastjet/uc3-hazelcastjet-deployment.yaml"
loadTypes:
- typeName: "NumSensors"
patchers:
- type: "EnvVarPatcher"
resource: "uc3-kstreams/uc3-load-generator-deployment.yaml"
properties:
container: "workload-generator"
variableName: "NUM_SENSORS"
- type: NumSensorsLoadGeneratorReplicaPatcher
resource: "uc3-kstreams/uc3-load-generator-deployment.yaml"
properties:
loadGenMaxRecords: "150000"
kafkaConfig:
bootstrapServer: "theodolite-cp-kafka:9092"
topics:
- name: "input"
numPartitions: 40
replicationFactor: 1
- name: "output"
numPartitions: 40
replicationFactor: 1
apiVersion: apps/v1
kind: Deployment
metadata:
name: titan-ccp-load-generator
spec:
selector:
matchLabels:
app: titan-ccp-load-generator
replicas: 1
template:
metadata:
labels:
app: titan-ccp-load-generator
spec:
terminationGracePeriodSeconds: 0
containers:
- name: workload-generator
image: ghcr.io/cau-se/theodolite-uc3-workload-generator:latest
ports:
- containerPort: 5701
name: coordination
env:
- name: KUBERNETES_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: KUBERNETES_DNS_NAME
value: "titan-ccp-load-generator.$(KUBERNETES_NAMESPACE).svc.cluster.local"
- name: KAFKA_BOOTSTRAP_SERVERS
value: "my-confluent-cp-kafka:9092"
- name: SCHEMA_REGISTRY_URL
value: "http://my-confluent-cp-schema-registry:8081"
apiVersion: v1
kind: Service
metadata:
name: titan-ccp-load-generator
labels:
app: titan-ccp-load-generator
spec:
type: ClusterIP
clusterIP: None
selector:
app: titan-ccp-load-generator
ports:
- name: coordination
port: 5701
targetPort: 5701
protocol: TCP
apiVersion: theodolite.com/v1
kind: benchmark
metadata:
name: uc4-hazelcastjet
spec:
appResource:
- "uc4-hazelcastjet/uc4-hazelcastjet-deployment.yaml"
- "uc4-hazelcastjet/uc4-hazelcastjet-service.yaml"
#- "uc4-hazelcastjet/uc4-jmx-configmap.yaml"
#- "uc4-hazelcastjet/uc4-service-monitor.yaml"
loadGenResource:
- "uc4-kstreams/uc4-load-generator-deployment.yaml"
- "uc4-kstreams/uc4-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
- type: "ReplicaPatcher"
resource: "uc4-hazelcastjet/uc4-hazelcastjet-deployment.yaml"
loadTypes:
- typeName: "NumNestedGroups"
patchers:
- type: "EnvVarPatcher"
resource: "uc4-kstreams/uc4-load-generator-deployment.yaml"
properties:
container: "workload-generator"
variableName: "NUM_SENSORS"
- type: NumNestedGroupsLoadGeneratorReplicaPatcher
resource: "uc4-kstreams/uc4-load-generator-deployment.yaml"
properties:
loadGenMaxRecords: "150000"
numSensors: "4.0"
kafkaConfig:
bootstrapServer: "theodolite-cp-kafka:9092"
topics:
- name: "input"
numPartitions: 40
replicationFactor: 1
- name: "output"
numPartitions: 40
replicationFactor: 1
- name: "configuration"
numPartitions: 40
replicationFactor: 1
- name: "aggregation-feedback"
numPartitions: 40
replicationFactor: 1
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment