In the digital transformation strategies of companies, Serverless technologies, Event-Driven Architectures (EDA) and data capture patterns (Change Data Capture) are gaining more strength every day.
Within this scenario, Red Hat OpenShift Serverless, Red Hat AMQ Streams, Red Hat Integration, Red Hat Data Grid, and Red Hat build of Quarkus, offer companies significant cost savings and multiple operational benefits by shifting infrastructure and provisioning responsibilities to the different frameworks. This enables you to solve problems quickly, at scale, and with high availability.
This repository includes a practical business example so that we can adopt modern and agile application designs and implementations (containers, Serverless, streaming, etc.).
The logical architecture diagram of this use case is:
At the end of the instructions you will have deployed a full Event-Driven Architecture with the following deployment topology:
This file include the list of steps to deploy easily this use case for your learning and testing efforts about these amazing technologies and products.
HINT: If you want to deploy easily, we created a set of shell scripts with all the main commands to deploy the infrastructure, applications and serverless services. Check the shell scripts in the root of this repository.
This architecture has been tested in Red Hat OpenShift Container Platform 4.12 version and the following operators:
- Red Hat Integration - AMQ Streams 2.3.0 (Apache Kafka 3.3)
- Red Hat Integration - Service Registry 2.1.4
- Red Hat Data Grid 8.3.9
- Red Hat OpenShift Serverless 1.28.0
- Prometheus 4.10.0
- Grafana 4.10.0
As a normal user in your OpenShift cluster, create a eda-workshop
namespace:
❯ oc login -u user
❯ oc new-project eda-workshop
This workshop requires deploy many different components and it is needed to have enough resources. This workshop was tested in "OpenShift 4.12 Workshop" Service provided in the Red Hat Product Demo Platform.
Follow the instructions
Follow the instructions
Follow the instructions
Follow the instructions
Follow the instructions
Follow the instructions
Follow the instructions
Follow the instructions
Follow the instructions
Follow the instructions
Follow the instructions
Follow the instructions
Follow the instructions
Follow the instructions
There is a set of different shell scripts that allow to deploy easily all the components of this repository avoiding a step-by-step process. The following scripts can help you to deploy this solution in your cluster in few minutes:
-
01-deploy-infra.sh
- Deploy the infrastructure of the solution: Operators, Databases, Kafka and KafkaConnect clusters, Service Registry and Data Grid cluster. -
02-load-enterprise-data.sh
- Load and initial sequence of data intoenterprise
database. -
05-deploy-apps.sh
- Deploy the different applications of the solution: business, streaming, backend, and dashboard. -
10-deploy-serverless-services.sh
- Deploy the the serverless components of the solution. This script will scale down the previous applications. -
12-deploy-serverless-native-services.sh
- Deploy the Quarkus Native version of each component updating the previous serverless services created. -
98-query-enterprise-data.sh
- Summarize some data from theenterprise
database. -
99-update-regions.sh
- Sample script to update theRegions
table in theenterprise
data base to start the consumption of the data and calculate the values for each region by thedata-streaming
application.
The order to deploy successfully the solution is:
./01-deploy-infra.sh
./02-load-enterprise-data.sh
./05-deploy-apps.sh
To deploy the serverless version of the solution then you only need to execute:
./10-deploy-serverless-services.sh
./12-deploy-serverless-native-services.sh