Skip to content

Commit

Permalink
HOL2897: OCW24-MySQLHeatwave-FinalPR (#300)
Browse files Browse the repository at this point in the history
* WMS ID: 11543 Merge changes

WMS ID: 11543 Merge changes to mysql/oci-oraca-mysql lab guides

* Cleanup and syntax errors

Cleanup and syntax errors

* Addressing feedback

Addressing feedback

* Final PR for the event

Final PR for the event

* Final PR

Final PR

* Final PR

Final PR

* WMS ID: 11543 : Manifest changes for API Hack

WMS ID: 11543 : Manifest changes for API Hack

* WMS ID: 11543 : Introduction changes for API Hack

WMS ID: 11543 : Introduction changes for API Hack

* MySQL-Hackathons

MySQL-Hackathons

* WMS : 11114 : AIML Hackathon Changes

WMS : 11114 : AIML Hackathon Changes

* WMSID : 11114 AIML Hackathon

WMSID : 11114 AIML Hackathon

* WMS ID 11114 : Fixes

WMS ID 11114 : Fixes

* WMS ID 11114 Image fixes

WMS ID 11114 Image fixes

* WMS ID 11114 Image names lower

WMS ID 11114 Image names lower

* HOL2897: OCW24-MySQLHeatwave-FinalPR

HOL2897: OCW24-MySQLHeatwave-FinalPR

* WMS ID: 9641 OCW24 Updates

WMS ID: 9641 OCW24 Updates

* WMS ID: 11374 : Cloud Management Pack Free Tier Update

WMS ID: 11374 : Cloud Management Pack Free Tier Update

* HOL2897: OCW24-MySQLHeatwave-FinalPR

HOL2897: OCW24-MySQLHeatwave-FinalPR
  • Loading branch information
Anand-GitH authored Aug 23, 2024
1 parent de1257c commit e3d9bf3
Show file tree
Hide file tree
Showing 12 changed files with 865 additions and 9 deletions.
6 changes: 5 additions & 1 deletion enterprise-manager/emcc/prepare-setup/prepare-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ This lab assumes you have:
- [emcc-mkplc-lifecycle.zip](https://c4u04.objectstorage.us-ashburn-1.oci.customer-oci.com/p/EcTjWk2IuZPZeNnD_fYMcgUhdNDIDA6rt9gaFj_WZMiL7VvxPBNMY60837hu5hga/n/c4u04/b/livelabsfiles/o/em-omc/emcc-mkplc-lifecycle.zip)
</if>
<if type="migration-workbench">
- [emcc-mkplc-migration-workbench.zip](https://objectstorage.us-ashburn-1.oraclecloud.com/p/tIfVdCiZsEO9_8FwmL6GZrXpViDWF7K5VBvwsIMXkadmSnZXWhVCIN6iut2z3oEV/n/c4u02/b/hosted_workshops/o/stacks/emcc-mkplc-migration-workbench.zip)
- [emcc-mkplc-migration-workbench.zip](https://c4u04.objectstorage.us-ashburn-1.oci.customer-oci.com/p/EcTjWk2IuZPZeNnD_fYMcgUhdNDIDA6rt9gaFj_WZMiL7VvxPBNMY60837hu5hga/n/c4u04/b/livelabsfiles/o/em-omc/emcc-mkplc-migration-workbench-v1.3.zip)
</if>
<if type="migration-workbench-adb">
- [emcc-mkplc-migration-workbench-adb.zip](https://objectstorage.us-ashburn-1.oraclecloud.com/p/zqv4ccIzpSf1XX2xm50vy6buPjOjKa-ABMWyuPeh96N7WIJWqx4wMAPSP-8UXt9e/n/c4u02/b/hosted_workshops/o/stacks/emcc-mkplc-migration-workbench-adb.zip)
Expand All @@ -61,6 +61,10 @@ This lab assumes you have:
<if type="rat-overview">
- [emcc-mkplc-rat-overview.zip](https://c4u04.objectstorage.us-ashburn-1.oci.customer-oci.com/p/EcTjWk2IuZPZeNnD_fYMcgUhdNDIDA6rt9gaFj_WZMiL7VvxPBNMY60837hu5hga/n/c4u04/b/livelabsfiles/o/em-omc/emcc-mkplc-rat-overview.zip)
</if>
<if type="hybrid-pdbaas">
- [emcc-mkplc-hybrid-pdbaas.zip](https://objectstorage.us-ashburn-1.oraclecloud.com/p/-JqErQC8a-AiGJnd9ICNRE9dy8AiA-GEjYLAZEffy9qlGQMl0dOq34LPDhsVy_XS/n/omcinternal/b/EMWorkshopBucket/o/emcc-mkplc-hybrid-pdbaas.zip)
</if>


2. Save in your downloads folder.

Expand Down
50 changes: 50 additions & 0 deletions mysql/oci-oraca-mysql/a-introduction/introduction-ocw.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Introduction

## About this Workshop

This workshop guides you through the process of provisioning a MySQL HeatWave database on OCI, enhancing a Spring Boot application, incorporating OpenTelemetry instrumentation, and deploying the application on an Oracle Kubernetes cluster. You will learn how to monitor the application using the Oracle Application Performance Management Service, leveraging traces and metrics for comprehensive end-to-end monitoring and diagnostics. Additionally, the workshop covers the utilization of Oracle Cloud Infrastructure (OCI) Database Management to monitor the MySQL HeatWave database and Logging Analytics for Kubernetes and application logs.


Estimated Time: 90 minutes

*MySQL Heatwave Database*

MySQL Heatwave is a fully-managed database service, powered by the integrated HeatWave in-memory query accelerator. It is the only cloud-native database service that combines transactions, analytics, and machine learning services into MySQL Heatwave, delivering real-time, secure analytics without the complexity, latency, and cost of ETL duplication.

*Observability and Management Services*

Monitor, analyze, and manage multicloud applications and infrastructure environments with full-stack visibility, prebuilt analytics, and automation using Oracle Cloud Observability and Management Platform.

- Database Management

Database management provides unified console for on-premises and cloud databases with lifecycle database management capabilities for monitoring, performance management, tuning, and administration. With Performance Hub, developers can improve SQL code during active development as well as continuously monitor and tune queries running on production systems. For more information on MySQL HeatWave Database Management > **[Use Database Management for MySQL HeatWave](https://blogs.oracle.com/mysql/post/database-management-for-mysql-heatwave)**

- Application Performance Management

Among other capabilities, OCI APM includes an implementation of a Distributed Tracing system. It collects and processes transaction trace data (spans) from the monitored application and makes it available for viewing, dashboarding, exploration, alerts, etc. For more information on APM and Trace Explorer please refer to Application Performance Monitoring > **[Use Trace Explorer](https://docs.oracle.com/en-us/iaas/application-performance-monitoring/doc/use-trace-explorer.html)** section in the OCI Documentation.

- Logging Analytics

Cloud Infrastructure (OCI) Logging Analytics lets you index, enrich, aggregate, explore, search, analyze, correlate, visualize and monitor all log data from your applications and system infrastructure on cloud or on-premises. Oracle Logging Analytics provides a one-click end-to-end Kubernetes monitoring solution for the underlying infrastructure, Kubernetes platform and cloud native applications. For more information on Logging Analytics and log Explorer please refer to Observability and Management > **[Use Logging Analytics to monitor Kubernetes](https://docs.oracle.com/en/solutions/kubernetes-oke-logging-analytics/index.html)**.


### Objectives

In this workshop, you will:
* Create Oracle Kubernetes cluster
* Create MySQL HeatWave Database
* Use APM Trace Explorer to view traces, spans, and span dimensions
* Use Database Management to review query performances
* Use Logging analytics to analyze Kubernetes logs

### Prerequisites

* This lab requires an [Oracle Cloud account](https://www.oracle.com/cloud/free/). You may use your cloud account, or a Free tier account, a cloud account that you obtained through a trial.

### Acknowledgements

* **Author** - Anand Prabhu, Principal Member of Technical Staff, Enterprise and Cloud Manageability
- **Contributors** -
Yutaka Takatsu, Senior Principal Product Manager,
Avi Huber, Vice President, Product Management
* **Last Updated By/Date** - Anand Prabhu, January 2024
161 changes: 161 additions & 0 deletions mysql/oci-oraca-mysql/b-lab-one-envsetup/environmentsetup-ocw.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
# Provision the infrastructure

## Introduction

This workshop uses Spring Boot-based Java microservices connecting to a MySQL HeatWave database as a target application to illustrate the capabilities for end-to-end monitoring using OCI Observability and Management Services. In this lab, you will provision an Oracle Container Engine for Kubernetes (OKE) cluster and a MySQL HeatWave DB System through the OCI Console.

Estimated time: 35 minutes

### Objectives

* Create a compartment
* Provision Oracle Container Engine for Kubernetes (OKE) cluster & MySQL HeatWave DB System

### Prerequisites

* This lab requires an [Oracle Cloud account](https://www.oracle.com/cloud/free/). You may use your cloud account, or a Free tier account, a cloud account that you obtained through a trial.


## Task 1: Create an OCI compartment

1. Open the navigation menu from the top-left corner (aka. hamburger menu) of the Oracle Cloud console and select **Identity & Security** > **Compartments**.
![Oracle Cloud console Menu](images/1-1-compartments.png " ")
2. Click **Create Compartment**
![Oracle Cloud console, Create Compartment](images/1-2-compartments.png " ")
3. Enter the following parameters:
* Compartment name: **devlive24**
* Description: **Compartment for 2024 DevLive Hands-on lab**
* Accept the default values for the other fields, and click, **Create Compartment**
![Oracle Cloud console, Create Compartment](images/1-3-compartments.png " ")
* Verify that your **devlive24** compartment is created in the table
![Oracle Cloud console, Create Compartment](images/1-4-compartments.png " ")

## Task 2: Create a policy for the volume management

1. Open the navigation menu from the top-left corner (aka. hamburger menu) of the Oracle Cloud console and select **Identity & Security** > **Policies**.
![Oracle Cloud console Menu](images/1-5-policy.png " ")

2. Select **root** tenancy from the compartment drop down and then click on **Create Policy**
![Oracle Cloud console Menu](images/1-6-policy.png " ")

3. Enter the following parameters:
- Policy name: **OCIVolumeMgmt**
- Description: **OCI Volume Mgmt**
- Compartment: select root compartment
- Click on **Show manual editor** in Policy Builder
- Copy the below policies and paste in the editor

```bash
<copy>
ALLOW any-user to manage volumes in TENANCY where request.principal.type = 'cluster'
ALLOW any-user to manage volume-attachments in TENANCY where request.principal.type = 'cluster'
</copy>
```
- click, **Create**
![Oracle Cloud console Menu](images/1-7-policy.png " ")
![Oracle Cloud console Menu](images/1-8-policy.png " ")

## Task 3: Setup up cloud shell and code editor

1. Click on the below link to open OCI Code Editor and clone the repository

[Open Code Editor and Clone the repository](https://cloud.oracle.com/?region=home&cs_repo_url=https://github.com/oracle-devrel/oci-devlive-2024.git&cs_branch=main&cs_readme_path=README.md&cs_open_ce=true)

2. Retrieve the sample code and supporting scripts that will be used in this section
- Click on the **I have reviewed and accepted the Oracle Terms of Use.** checkbox
- Click on **Clone**

![Code Editor](images/3-2-1-clone.png " ")

Repository is successfully cloned and its shown in the code editor
![Code Editor](images/3-2-2-clone.png " ")

3. Change orientation of the Cloud Shell and Code Editor
- Click on the **Actions** and then **Tabs**
![Code Editor](images/3-2-3-codeeditor.png " ")

- Now Cloud Shell and Code Editors are shown as tabs
![Code Editor](images/3-2-4-codeeditor.png " ")

- Now the cloud shell and code editor are set. Proceed to **Task 4**

## Task 4: Create a Kubernetes Cluster

1. From the OCI menu, select **Developer Services**, then **Containers & Artifacts > Kubernetes Clusters (OKE)**.
![Oracle Cloud console Menu](images/3-1-1-nodepool.png " ")

2. Select the compartment **devlive24** and then click on **Create cluster**
![Oracle Cloud console Menu](images/3-1-2-nodepool.png " ")

3. Quick Create pane is pre-selected. Keep the default selection and click **Submit**.
![Oracle Cloud console Menu](images/3-1-3-nodepool.png " ")

4. Enter the following parameters:
* Name the cluster: **devlive24-oke**
* Kubernetes API endpoint : Select **Public endpoint**
* Node type : Select **Managed**
![Oracle Cloud console Menu](images/3-1-4-nodepool.png " ")
* Kubernetes worker nodes : Select **Private workers**
* Shape and image: **Keep default**
![Oracle Cloud console Menu](images/3-1-5-nodepool.png " ")
* Node count: **1**
* Click **Next**
![Oracle Cloud console Menu](images/3-1-6-nodepool.png " ")
* Review the configuration, and click **Create cluster**.
![Oracle Cloud console Menu](images/3-1-7-nodepool.png " ")
* Make sure all verification steps are cleared. Click **Close**
![Oracle Cloud console Menu](images/3-1-8-nodepool.png " ")

> **Note:** This will start to create a cluster, and takes 7 to 10 minutes to complete. While waiting for the creation of the cluster, you can proceed to the next task to provision the **MySQL HeatWave Database**


## Task 5: Deploy the MySQL Database System

1. From the OCI menu, select **Databases**, then **MySQL HeatWave > DB Systems**.
![Oracle Cloud console Menu](images/3-1-mysqlheatwave.png " ")

2. Select the **devlive24** compartment from the pulldown menu and Click **Create DB System**
![Oracle Cloud console, DB Systems](images/3-2-mysqlheatwave.png " ")

3. Choose **Production** and select the **devlive24** compartment and provide name **mysql-appdev** for the MySQL HeatWave Database
![Oracle Cloud console, Create MySQL HeatWave Database](images/3-3-mysqlheatwave.png " ")

4. Provide MySQL database administrator credentials (store these credentials for the later use) & choose **Standalone**
![Oracle Cloud console, Create MySQL HeatWave Database](images/3-4-mysqlheatwave.png " ")

5. Choose the VCN **`oke-vcn-quick-devlive24-oke-#########`** and private subnet for the MySQL DB System **`oke-nodesubnet-quick-devlive24-oke-#########-regional`** to allow access to MySQL HeatWave database from Kubernetes nodes and keep placement settings default.
![Oracle Cloud console, Create MySQL HeatWave Database](images/3-5-mysqlheatwave.png " ")
![Oracle Cloud console, Create MySQL HeatWave Database](images/3-6-mysqlheatwave.png " ")

6. Uncheck **Enable HeatWave** checkbox and keep hardware settings default.
![Oracle Cloud console, Create MySQL HeatWave Database](images/3-6-2-mysqlheatwave.png " ")

7. Uncheck **Enable automatic backups**, then click _`Show advanced options`_. Uncheck **Delete protected** under **Deletion Plan** Tab and verify if **Database Management** under **Management** Tab is checked and then click on **Create**
![Oracle Cloud console, Create MySQL HeatWave Database](images/3-7-mysqlheatwave.png " ")
![Oracle Cloud console, Create MySQL HeatWave Database](images/3-8-mysqlheatwave.png " ")

8. This will start to create a MySQL HeatWave Database, and takes 10-15 minutes to complete. While waiting for the creation of the MySQL HeatWave Database, learn more about MySQL HeatWave Database Management through the recorded demos mentioned below. In Lab 2, we will resume the steps to deploy the application connecting to the MySQL HeatWave Database.

![Oracle Cloud console, Create MySQL HeatWave Database](images/3-9-mysqlheatwave.png " ")

Watch a video demonstration of monitoring and managing MySQL HeatWave Database
[](youtube:4VlRypYXJ48?si=k68OnLN9XI4KXo9B)

Watch a video demonstration of tuning MySQL HeatWave DB System queries using  Performance Hub
[](youtube:vXqA8nkcF4c?si=B314cImffyHCfk1b)

9. Once the MySQL HeatWave Database created successfully,then go to **Connections** tab to copy and save the **Private IP Address** of MySQL HeatWave Database and also database credentails to a text file to use in lab 2 and 3.

![Oracle Cloud console, Create MySQL HeatWave Database](images/3-10-mysqlheatwave.png " ")


[You may now **proceed to the next lab**.](#next)


## Acknowledgements

* **Author** - Anand Prabhu, Principal Member of Technical Staff, Enterprise and Cloud Manageability
- **Contributors** -
Yutaka Takatsu, Senior Principal Product Manager,
Avi Huber, Vice President, Product Management
* **Last Updated By/Date** - Anand Prabhu, January 2024
Loading

0 comments on commit e3d9bf3

Please sign in to comment.