Skip to content

Commit

Permalink
Merge pull request #226 from planetf1/dojoday1a
Browse files Browse the repository at this point in the history
#116 improve docs on running coco pharma jupyter environment for dojo…
  • Loading branch information
planetf1 committed Jan 14, 2022
2 parents 01d9a5e + 0f780ff commit e00f557
Show file tree
Hide file tree
Showing 6 changed files with 179 additions and 15 deletions.
Original file line number Diff line number Diff line change
@@ -1,21 +1,128 @@
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
<!-- Copyright Contributors to the ODPi Egeria project 2021. -->

# Introduction to the hands on labs
The final session in day one of the Egeria Dojo is to use our Kubernetes helm charts to set up the infrastructure for Egeria's hands on labs. These labs attempt to show a rich metadata environment in action, allowing you to experiment with different concepts and APIs.

The scenario is based on a hypothetical pharmaceutical company known as 'Coco Pharmaceuticals'. When you
start working through the labs you'll be able to read a lot more about their business & Egeria environment.

These labs make use of a similar container-based environment to that you have used so far,
but coco has a more complex environment with more Egeria platforms.

For the learning experience we have made use of Jupyter notebooks which can combine text and code. This is also included within the container environment

# Installing the labs

First, delete the Helm chart you used in the last part of the tutorial.
```console
$ helm delete base
```

Now go to the [Open Metadata Labs](/egeria-docs/education/open-metadata-labs/overview) and follow the instructions for setting up the lab environment using Kubernetes.
Once it is running, go to the instructions to start the first lab notebook.
Now, install the Coco Pharma environment
```console
$ helm install lab egeria/odpi-egeria-lab --devel [15:16:18]
NAME: lab
LAST DEPLOYED: Fri Jan 14 15:16:33 2022
NAMESPACE: base
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
ODPi Egeria lab tutorial
---

The Egeria tutorials have now been deployed to Kubernetes.
It may take a minute or so for everything to start up.

Open your web browser and go to addressofmycluster:30888 to
get started

You may need to contact your cluster admin, or read your cloud provider helptext to understand
the correct 'addressofmycluster' to use.

If you experience problems, check memory consumption on your nodes. A minimum of
a 3 node cluster, 2GB per node; or a desktop environment with 6GB dedicated is recommended.

Please provide any feeback via a github issue at https://github.com/odpi/egeria or
join us on slack via https://http://slack.lfai.foundation

- The ODPi Egeria team
```
As before, repeat the following command until all the pods are in Running state - which may take several minutes:
```console
$ kubectl get pods [15:18:39]
NAME READY STATUS RESTARTS AGE
lab-odpi-egeria-lab-core-0 1/1 Running 0 2m7s
lab-odpi-egeria-lab-datalake-0 1/1 Running 0 2m7s
lab-odpi-egeria-lab-dev-0 1/1 Running 0 2m7s
lab-odpi-egeria-lab-factory-0 1/1 Running 0 2m7s
lab-odpi-egeria-lab-jupyter-566b454754-s972k 1/1 Running 0 2m7s
lab-odpi-egeria-lab-nginx-c59d4d646-lszj4 1/1 Running 0 2m7s
lab-odpi-egeria-lab-presentation-6d5856c88c-qwgm8 1/1 Running 0 2m7s
lab-odpi-egeria-lab-ui-5dc645655c-f2g7m 1/1 Running 0 2m7s
lab-odpi-egeria-lab-uistatic-866fdd59f8-hwzg7 1/1 Running 0 2m7s
lab-strimzi-zookeeper-0 1/1 Running 0 114s
strimzi-cluster-operator-7d96cbff57-ltbrz 1/1 Running 0 2m7s
```

We can also see the services that have been created:
```console
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
lab-core ClusterIP 172.21.11.152 <none> 9443/TCP 8m15s
lab-datalake ClusterIP 172.21.62.188 <none> 9443/TCP 8m15s
lab-dev ClusterIP 172.21.175.163 <none> 9443/TCP 8m15s
lab-jupyter ClusterIP 172.21.115.243 <none> 8888/TCP 8m15s
lab-nginx ClusterIP 172.21.191.19 <none> 443/TCP 8m15s
lab-odpi-egeria-lab-factory ClusterIP 172.21.61.87 <none> 9443/TCP 8m15s
lab-presentation ClusterIP 172.21.46.53 <none> 8091/TCP 8m15s
lab-strimzi-kafka-bootstrap ClusterIP 172.21.13.3 <none> 9091/TCP,9092/TCP 6m4s
lab-strimzi-kafka-brokers ClusterIP None <none> 9090/TCP,9091/TCP,9092/TCP 6m4s
lab-strimzi-zookeeper-client ClusterIP 172.21.230.190 <none> 2181/TCP 8m1s
lab-strimzi-zookeeper-nodes ClusterIP None <none> 2181/TCP,2888/TCP,3888/TCP 8m1s
lab-ui ClusterIP 172.21.114.202 <none> 8443/TCP 8m15s
lab-uistatic ClusterIP 172.21.174.139 <none> 8080/TCP 8m15s
```
We now have everything we need running to get into the labs.

## Explanation of what has been installed

From the above list of pods we can see

* Four Egeria platforms (core, datalake, dev, factory) - the use of these will become clear when you start the tutorials
* The Jupyter server for hosting our notebooks
* The react UI (as you used earlier in this dojo)
* Kafka/Zookeeper for messaging, as provided by Strimzi
* An additional UI - one lab will be using this

## Port forwarding

As before we need to enable access to some of these containers from your local environment using the 'kubectl port-forward' command.

Most of the interaction with the notebooks is via the jupyter server, so we run:

```console
$ kubectl port-forward service/lab-jupyter 8888:8888
Forwarding from 127.0.0.1:8888 -> 8888
Forwarding from [::1]:8888 -> 8888
```

As you progress through the labs, if if you are interested in experimenting with postman, then you may need to setup port forwarding for other services too. If so, run each in the background, or in separate windows as they must continue running whilst you are working through the labs.

# Start working on the labs

Open up a web browser and go to http://localhost:8888

You should see a window similar to this:

![First Lab Notebook](/egeria-docs/education/tutorials/jupyter-tutorial/jupyter-notebook-browser-window.png)

In the navigator on the left of this Windows, navigate to the *read-me-first* and start following the instructions. We've tried to add lots of explanation at each stage to guide you through how Egeria can be used in a real environment.

There is more material to run in the Open metadata Labs than can be done in 30 minutes. The purpose of this session is to ensure that you can set up the environment so you can run it at you leisure when every you want to.

In addition, these labs (like everything else in Egeria) is evolving rapidly so it is worth checking back from time to time to see what is new.
In addition, these labs (like everything else in Egeria) is evolving rapidly so it is worth checking back from time to time to see what is new. This also means some of the labs are incomplete. Visit the slack channel to check if you get problems.



Expand Down
6 changes: 0 additions & 6 deletions site/docs/education/egeria-dojo/running-egeria/day-summary.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

# Egeria Introduction

In this session, you will learn about the function and value of Egeria
In this section, you will learn about the function and value of Egeria
along with the key concepts and use cases it supports.

## About Egeria
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
<!-- Copyright Contributors to the ODPi Egeria project 2021. -->

# Running Egeria

Welcome to the first Dojo session, 'Running Egeria'.

In this session, you will get an introduction to Egeria, and be shown how to
get it running in your environment, so that you can explore more in your own time.

*Audience*: Anyone who is interest in Egeria, and wants to get some hands-on time with Egeria.

*Skills*: Familarity with *nix shell environment & editing files

*Hardware Requirements*: A networked MacOS, Windows, or Linux environment with at least 4Gb RAM & 12GB storage or remote access to an existing Kubernetes environment.

*Duration: We expect this will take most of a day, around 6 hours - but you can continue in your own time if this is too much for one session.

## About this site

We are using the Egeria docs website at https://odpi.github.io/egeria-docs/ to host these Dojo sessions. You are currently in the 'Education' section and it's suggested you work through the sections of this first day in order.

Use the Previous/Next sections at the bottom of each page to move to the next topic within the Dojo.

You can also refer to the heading summary towards the top right to navigate through the sections of each individual page.

If you're looking for further background, open up other topics in a new tab, and use the Search box towards the top of this page as needed.

## Topics

These are the topics we will work through in this Dojo:

- Introduction to Egeria (0.5 hour)
- Installing prereq tools - Kubernetes & Postman (1 hour)
- Installing a pre-configured Egeria environment (0.5 hour)
- Configuring Egeria servers ( 2 hours)
- Running Egeria Jupyter based labs (1.5 hours)
- Summary & questions" (0.5 hours)"

--8<-- "snippets/abbr.md"
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
<!-- Copyright Contributors to the ODPi Egeria project 2021. -->

# Congratulations !

We have now nearly reached the end of the Dojo.

During this session we hope you've gained
- an understanding of what Egeria is
- an opportunity to run the Egeria code live
- been able to experiment with some interactions via the API & User Interface
- a desire to want to know more and join our next Dojo session.

# Feedback

We hope this Dojo has been a useful experience for you & we'd love to hear your feedback about how it went.

Please let us know via the #egeria-dojo slack channel, or via a [github issue](https://github.com/odpi/egeria-docs/issues)

We're keen to take your feedback on board, and improve the sessions for the future.

--8<-- "snippets/abbr.md"
11 changes: 6 additions & 5 deletions site/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -143,14 +143,15 @@ nav:
- Dojo (Jan 2022):
- Dojo Overview: education/egeria-dojo/index.md
- Running Egeria Day :
- Introduction to 'Running Egeria' day: education/egeria-dojo/running-egeria/introduction.md
- Introduction to 'Running Egeria' day: education/egeria-dojo/running-egeria/running-egeria-intro.md
- Egeria introduction : education/egeria-dojo/running-egeria/egeria-egeria-introduction.md
- Setup of the environment: education/egeria-dojo/running-egeria/setup-environment.md
- Simple Install of Egeria : education/egeria-dojo/running-egeria/simple-install.md
- Configuring and Operating a Server : education/egeria-dojo/running-egeria/configuring-and-operating-a-server.md
- Introduction to the Egeria UIs : education/egeria-dojo/running-egeria/ui-introduction.md
- Introduction to the Egeria UIs : education/egeria-dojo/running-egeria/ui-egeria-introduction.md
- Coco Pharmaceuticals : education/egeria-dojo/running-egeria/coco-labs-environment.md
- Using additional connectors : education/egeria-dojo/running-egeria/using-additional-connectors.md
- Summary of 'Running Egeria' day : education/egeria-dojo/running-egeria/day-summary.md
- Summary of 'Running Egeria' day : education/egeria-dojo/running-egeria/running-egeria-summary.md
- Developer Day : education/egeria-dojo/developer/overview.md
- Metadata Governance Day : education/egeria-dojo/metadata-governance.md
- Egeria Contributor Day : education/egeria-dojo/egeria-contributor.md
Expand All @@ -175,8 +176,8 @@ nav:
- Old Dojo (deprecated):
- Dojo Introduction: getting-started/dojo/index.md
- Day 1:
- Egeria Introduction: getting-started/dojo/egeria-dojo-day-1-1-introduction.md
- Egeria Project Introduction: getting-started/dojo/egeria-dojo-day-1-2-project-introduction.md
- Egeria Introduction: getting-started/dojo/egeria-dojo-day-1-1-egeria-introduction.md
- Egeria Project Introduction: getting-started/dojo/egeria-dojo-day-1-2-project-egeria-introduction.md
- Running Egeria:
- Overview: getting-started/dojo/egeria-dojo-day-1-3-running-egeria.md
- Platform Setup and Configuration:
Expand Down

0 comments on commit e00f557

Please sign in to comment.