This is a work in progress.
This app uses a single database with two users (bankauser and bankbuser) and two queues (bankaqueue and bankbqueue) There is one bank-springboot microservices that is reused for both banka and bankb deployments (just uses different env values accordingly)
- create DB with kubernetes secrets as done in normal setup for simplify microservices workshop (ie run lab 1)
- run
microservices-datadriven/cloudbank/sql/AdminCreateUsers.sql
as admin - run
microservices-datadriven/cloudbank/sql/AQUserCreateQueues.sql
as aquser - run
microservices-datadriven/cloudbank/sql/BankAUser.sql
as bankauser - run
microservices-datadriven/cloudbank/sql/BankBUser.sql
as bankbuser - run
./build.sh
to build and push the bank-springboot image (note that this will also attempt to create public OCIR repos) - run
./deploy.sh
to create banka and bankb deployments and services - run
curlpod bank
shortcut command and issue curl such as... - curl -X POST -H "Content-type: application/json" -d "{"frombank" : "banka" , "fromaccount" : "100", "tobank" : "bankb", "toaccount" : "200", "amount" : "1"}" "http://banka.msdataworkshop:8080/transferfunds"
- create DB with kubernetes secrets as done in normal setup for simplify microservices workshop (ie run lab 1)
cd microservices-datadriven/oracle-db-appdev-monitoring/
- run
./install_observability_stack.sh
- run
microservices-datadriven/cloudbank/sql/AdminCreateUsers.sql
as admin - run
microservices-datadriven/cloudbank/sql/AQUserCreateQueues.sql
as aquser cd microservices-datadriven/cloudbank/observability
- run
./createMonitorsAndExporters.sh
- open Grafana as usual (ie find Grafana service created by install_observability_stack.sh and login as admin/prom-operator)
- import the microservices-datadriven/cloudbank/observability/dashboard/cloudbankdashboard.json dashboard and notice metrics
- create an alert panel and/or alert channel in Grafana as shown in the observability workshop/lab
- create an alert for deq/enq rate falling as in the image alertrule_deqenqrate.png (todo add src here)
cd microservices-datadriven/cloudbank/cloudbank-backend
- export
bankauser, bankapw, and bankaurl
- eg `export localbankqueueschema=aquser ; export localbankqueuename=BANKAQUEUE ; export banksubscribername=bankb_service ; export bankdbuser=bankauser ; export bankdbpw=Welcome12345 ; export bankdburl="jdbc:oracle:thin:@gd49301311_tp?TNS_ADMIN=/Users/pparkins/Downloads/Wallet_gd49301311"
- run
mvn package
- run
java -jar target/springboot-0.0.1-SNAPSHOT.jar
- run
./loadTest.sh dequeue 1000
- run
./loadTest.sh enqueue 1000
- notice Grafana console and enq/rate above .5
- kill dequeue load test
- notice Grafana console and enq/rate drop below .5 and alert notification in console and/or channel as configured in step 10
Copyright (c) 2022 Oracle and/or its affiliates.
Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.