Skip to content

Commit 201ed35

Browse files
authored
Merge pull request #540 from kquinn1204/TELCODOCS-2143-rev2-med
TELCODOCS-2143 Updating Medical diags documentation rev2
2 parents 30647c0 + 9c67256 commit 201ed35

File tree

9 files changed

+342
-403
lines changed

9 files changed

+342
-403
lines changed

content/patterns/medical-diagnosis/_index.adoc

-9
Original file line numberDiff line numberDiff line change
@@ -94,19 +94,10 @@ The following diagram shows the components that are deployed with the the data f
9494
9595
image::medical-edge/physical-dataflow.png[link="/images/medical-edge/physical-dataflow.png"]
9696
97-
== Recorded demo
98-
99-
link:/videos/xray-deployment.svg[image:/videos/xray-deployment.svg[Demo\]]
100-
10197
== Presentation
10298
10399
View presentation for the Medical Diagnosis Validated Pattern link:https://speakerdeck.com/rhvalidatedpatterns/md-speakerdeck[here]
104100
105-
[id="demo-script"]
106-
== Demo Script
107-
108-
Use this demo script to successfully complete the Medical Diagnosis pattern demo link:demo-script/#demo-intro[here]
109-
110101
[id="next-steps_med-diag-index"]
111102
== Next steps
112103
Original file line numberDiff line numberDiff line change
@@ -1,106 +1,15 @@
11
---
22
title: Cluster Sizing
3-
weight: 20
4-
aliases: /medical-diagnosis/cluster-sizing/
3+
weight: 30
4+
aliases: /medical-diagnosis/medical-diagnosis-cluster-sizing/
55
---
66

7+
78
:toc:
89
:imagesdir: /images
910
:_content-type: ASSEMBLY
10-
include::modules/comm-attributes.adoc[]
11-
12-
:aws_node: xlarge
13-
14-
15-
//Module to be included
16-
//:_content-type: CONCEPT
17-
//:imagesdir: ../../images
18-
[id="about-openshift-cluster-sizing-med"]
19-
== About OpenShift cluster sizing for the {med-pattern}
20-
{aws_node}
21-
To understand cluster sizing requirements for the {med-pattern}, consider the following components that the {med-pattern} deploys on the datacenter or the hub OpenShift cluster:
22-
23-
|===
24-
| Name | Kind | Namespace | Description
25-
26-
| Medical Diagnosis Hub
27-
| Application
28-
| medical-diagnosis-hub
29-
| Hub GitOps management
30-
31-
| {rh-gitops}
32-
| Operator
33-
| openshift-operators
34-
| {rh-gitops-short}
35-
36-
| {rh-ocp-data-first}
37-
| Operator
38-
| openshift-storage
39-
| Cloud Native storage solution
40-
41-
| {rh-amq-streams}
42-
| Operator
43-
| openshift-operators
44-
| AMQ Streams provides Apache Kafka access
45-
46-
| {rh-serverless-first}
47-
| Operator
48-
| - knative-serving (knative-eventing)
49-
| Provides access to Knative Serving and Eventing functions
50-
|===
51-
52-
//AI: Removed the following since we have CI status linked on the patterns page
53-
//[id="tested-platforms-cluster-sizing"]
54-
//== Tested Platforms
5511

56-
//: Removed the following in favor of the link to OCP docs
57-
//[id="general-openshift-minimum-requirements-cluster-sizing"]
58-
//== General OpenShift Minimum Requirements
59-
The minimum requirements for an {ocp} cluster depend on your installation platform. For instance, for AWS, see link:https://docs.openshift.com/container-platform/4.16/installing/installing_aws/preparing-to-install-on-aws.html#requirements-for-installing-ocp-on-aws[Installing {ocp} on AWS], and for bare-metal, see link:https://docs.openshift.com/container-platform/4.16/installing/installing_bare_metal/installing-bare-metal.html#installation-minimum-resource-requirements_installing-bare-metal[Installing {ocp} on bare metal].
60-
61-
For information about requirements for additional platforms, see link:https://docs.openshift.com/container-platform/4.16/installing/installing-preparing.html[{ocp} documentation].
62-
63-
//Module to be included
64-
//:_content-type: CONCEPT
65-
//:imagesdir: ../../images
66-
67-
[id="med-openshift-cluster-size"]
68-
=== About {med-pattern} OpenShift cluster size
69-
70-
The {med-pattern} has been tested with a defined set of configurations that represent the most common combinations that {ocp} customers are using for the x86_64 architecture.
71-
72-
For {med-pattern}, the OpenShift cluster size must be a bit larger to support the compute and storage demands of OpenShift Data Foundations and other Operators.
73-
//AI:Removed a few lines from here since the content is updated to remove any ambiguity. We rather use direct links (OCP docs/ GCP/AWS/Azure)
74-
[NOTE]
75-
====
76-
You might want to add resources when more developers are working on building their applications.
77-
====
78-
79-
The OpenShift cluster is a standard deployment of 3 control plane nodes and 3 or more worker nodes.
80-
81-
[cols="^,^,^,^"]
82-
|===
83-
| Node type | Number of nodes | Cloud provider | Instance type
84-
85-
| Control plane and worker
86-
| 3 and 3
87-
| Google Cloud
88-
| n1-standard-8
89-
90-
| Control plane and worker
91-
| 3 and 3
92-
| Amazon Cloud Services
93-
| m5.2xlarge
94-
95-
| Control plane and worker
96-
| 3 and 3
97-
| Microsoft Azure
98-
| Standard_D8s_v3
99-
|===
12+
include::modules/comm-attributes.adoc[]
13+
include::modules/medical-diagnosis/metadata-medical-diagnosis.adoc[]
10014

101-
[role="_additional-resources"]
102-
.Additional resource
103-
* link:https://aws.amazon.com/ec2/instance-types/[AWS instance types]
104-
* link:https://learn.microsoft.com/en-us/azure/virtual-machines/sizes[Azure instance types: Sizes for virtual machines in Azure]
105-
* link:https://cloud.google.com/compute/docs/machine-resource[Google Cloud Platform instance types: Machine families resource and comparison guide]
106-
//Removed section for instance types as we did for MCG
15+
include::modules/cluster-sizing-template.adoc[]
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
2-
title: Demo Script
3-
weight: 60
2+
title: Verifying the demo
3+
weight: 20
44
aliases: /medical-diagnosis/demo/
55
---
66

@@ -19,148 +19,57 @@ image::../../images/medical-edge/aiml_pipeline.png[link="/images/medical-edge/ai
1919

2020
[NOTE]
2121
====
22-
We simulate the function of the remote medical facility with an application called `image-generator`
22+
We simulate the function of the remote medical facility with an application called the `image-generator`.
2323
====
24+
//Module to be included
25+
//:_content-type: PROCEDURE
26+
//:imagesdir: ../../../images
27+
[id="viewing-the-grafana-based-dashboard-getting-started"]
28+
== Enabling the Grafana based dashboard
2429

25-
[id="demo-objectives"]
30+
The Grafana dashboard offers a visual representation of the AI/ML workflow, including CPU and memory metrics for the pod running the risk assessment application. Additionally, it displays a graphical overview of the AI/ML workflow, illustrating the images being generated at the remote medical facility.
2631

27-
== Objectives
32+
This showcase application is deployed with self-signed certificates, which are considered untrusted by most browsers. If valid certificates have not been provisioned for your OpenShift cluster, you will need to manually accept the untrusted certificates by following these steps:
2833

29-
In this demo you will complete the following:
34+
. Accept the SSL certificates on the browser for the dashboard. In the {ocp} web console, go to the *Networking* > *Routes* for *All Projects*. Click the URL for the `s3-rgw`.
35+
+
36+
image::../../images/medical-edge/storage-route.png[s3-rgw route]
37+
+
38+
Ensure that you see XML and not the access denied error message.
39+
+
40+
image::../../images/medical-edge/storage-rgw-route.png[link="/images/medical-edge/storage-rgw-route.png"]
3041

31-
* Prepare your local workstation
32-
* Update the pattern repo with your cluster values
33-
* Deploy the pattern
34-
* Access the dashboard
42+
. While still looking at *Routes*, change the project to `xraylab-1`. Click the URL for the `image-server` and ensure that you do not see an access denied error message. You should see a `Hello world` message.
3543

36-
[id="getting-started"]
44+
This showcase application does not have access to a x-ray machine hanging around that we can use for this demo, so one is emulated by creating an s3 bucket and hosting the x-ray images within it. In the "real world" an x-ray would be taken at an edge medical facility and then uploaded to an OpenShift Data Foundations (ODF) S3 compatible bucket in the Core Hospital, triggering the AI/ML workflow.
3745

38-
== Getting Started
46+
To emulate the edge medical facility we use an application called `image-generator` which when scaled up will download the x-rays from s3 and put them in an ODF s3 bucket in the cluster, triggering the AI/ML workflow.
3947

40-
* Follow the link:../getting-started[Getting Started Guide] to ensure that you have met all of the pre-requisites
41-
* Review link:../getting-started/#preparing-for-deployment[Preparing for Deployment] for updating the pattern with your cluster values
48+
Turn on the image file flow. There are couple of ways to go about this.
4249

43-
[NOTE]
44-
====
45-
This demo begins after `./pattern.sh make install` has been executed
46-
====
47-
48-
[id="demo"]
49-
50-
== Demo
51-
52-
Now that we have deployed the pattern onto our cluster, we can begin to discover what has changed, and then move onto the dashboard.
53-
54-
[id="admin-view"]
55-
56-
=== Administrator View - Review Changes to cluster
57-
58-
Login to your cluster's console with the `kubeadmin` user
59-
60-
Let's check out what operators were installed - In the accordion menu on the left:
61-
62-
* click Operators
63-
* click Installed Operators
64-
65-
[NOTE]
66-
67-
====
68-
Ensure that **All Projects** is selected
69-
====
70-
71-
image::../../images/medical-edge/admin_developer-contexts.png[link="/images/medical-edge/admin_developer-contexts.png"]
72-
73-
74-
If you started with a new cluster then there were no layered products or operators installed. With the Validated Patterns framework we describe or declare what our cluster's desired state is and the GitOps engine does the rest. This includes creating the instance of the operator and any additional configuration between other API's to ensure everything is working together nicely.
75-
76-
77-
[id="dev-view"]
78-
79-
=== Developer View - Review Changes to cluster
80-
81-
Let’s switch to the developer context by click on `Administrator` in the top left corner of the accordion menu then click `Developer`
82-
83-
* Change projects to `xraylab-1`
84-
* Click on `Topology`
85-
86-
87-
image::../../images/medical-edge/dev-topology.png[link="/images/medical-edge/dev-topology.png"]
88-
89-
Look at all of the resources that have been created for this demo application. What we see in this interface is the collection of all components required for this AI/ML workflow to properly execute. There are even more resources and configurations that get deployed but because we don't directly interact with them we won't worry too much about them. The take away here is when you utilize the framework you are able to build in automation just like this which allows your developers to focus on their important developer things.
90-
91-
92-
[id="certificate-warn"]
93-
94-
=== Invalid Certificates
95-
96-
We are deploying this demo using self-signed certificates that are untrusted by our browser. Unless you have provisioned valid certificates for your OpenShift cluster you must accept the invalid certificates for:
97-
98-
* s3-rgw | openshift-storage namespace
99-
* grafana | xraylab-1 namespace
100-
101-
[source,shell]
102-
----
103-
104-
S3RGW_ROUTE=https://$(oc get route -n openshift-storage s3-rgw -o jsonpath='{.spec.host}')
105-
106-
echo $S3RGW_ROUTE
107-
108-
GRAFANA_ROUTE=https://$(oc get route -n xraylab-1 grafana -o jsonpath='{.spec.host}')
109-
110-
echo $GRAFANA_ROUTE
111-
----
112-
113-
[WARNING]
114-
115-
====
116-
You must accept the security risks / self signed certificates before scaling the image-generator application
117-
====
118-
119-
[id="scale-up"]
120-
121-
=== Scale up the deployment
122-
123-
As we mentioned earlier, we don't have an x-ray machine hanging around that we can use for this demo, so we emulate one by creating an s3 bucket and hosting the x-ray images within it. In the "real world" an x-ray would be taken at an edge medical facility and then uploaded to an OpenShift Data Foundations (ODF) S3 compatible bucket in the Core Hospital, triggering the AI/ML workflow.
124-
125-
To emulate the edge medical facility we use an application called `image-generator` which (when scaled up) will download the x-rays from s3 and put them in an ODF s3 bucket in the cluster, triggering the AI/ML workflow.
126-
127-
Let's scale the `image-generator` deploymentConfig up to start the pipeline
128-
129-
[NOTE]
130-
====
131-
Make sure that you are in the `xraylab-1` project under the `Developer` context in the OpenShift Console
132-
====
133-
134-
In the Topology menu under the Developer context in the OpenShift Console:
50+
. Go to the {ocp} web console and change the view from *Administrator* to *Developer* and select *Topology*. From there select the `xraylab-1` project.
13551

136-
* Search for the `image-generator` application in the Topology console
52+
. Right-click on the `image-generator` pod icon and select `Edit Pod count`.
13753

138-
image::../../images/medical-edge/image-generator.png[link="/images/medical-edge/image-generator.png"]
54+
. Up the pod count from `0` to `1` and save.
13955

140-
* Click on the `image-generator` application ( you may have to zoom in on the highlighted application)
141-
* Switch to the `Details` menu in the application menu context
142-
* Click the `^` next to the pod donut
56+
Alternatively, you can have the same outcome on the Administrator console.
14357

144-
image::../../images/medical-edge/image-generator-scale.png[link="/images/medical-edge/image-generator-scale.png"]
58+
. Go to the {ocp} web console under *Workloads*, select *Deployments* for the *Project* `xraylab-1`.
14559

60+
. Click `image-generator` and increase the pod count to 1.
14661

14762
[id="demo-dashboard"]
14863

149-
== Demo Dashboard
64+
== Viewing the Grafana dashboard
15065

151-
Now let’s jump over to the dashboard
66+
Access the Grafana dashboard to view the AI/ML workflow. Carry out the following steps:
15267

153-
* Return to the topology screen
154-
* Select “Grafana” in the drop down for Filter by resource
155-
* Click the grafana icon
156-
* Open url to go open a browser for the grafana dashboard.
68+
. In the {ocp} web console, select the nines menu and right click the *Grafana* icon.
15769

158-
Within the grafana dashboard:
70+
. Within the grafana dashboard click the Dashboards icon.
15971

160-
* click the dashboards icon
161-
* click Manage
162-
* select xraylab-1
163-
* finally select the XRay Lab folder
72+
. Select the `xraylab-1` folder and the XRay Lab menu item.
16473

16574
image::../../images/medical-edge/dashboard.png[link="/images/medical-edge/dashboard.png"]
16675

@@ -176,4 +85,4 @@ You did it! You have completed the deployment of the medical diagnosis pattern!
17685

17786
The medical diagnosis pattern is more than just the identification and detection of pneumonia in x-ray images. It is an object detection and classification model built on top of Red Hat OpenShift and can be transformed to fit multiple use-cases within the object classification paradigm. Similar use-cases would be detecting contraband items in the Postal Service or even in luggage in an airport baggage scanner.
17887

179-
For more information on Validated Patterns visit our link:https://validatedpatterns.io/[website]
88+
For more information about Validated Patterns, visit our link:https://validatedpatterns.io/[website].

0 commit comments

Comments
 (0)