# Introduction

## App Modernization Workshop

In the workshop you will learn about foundational open source technologies and industry-wide accepted best practices for building modern, scalable, portable, and robust applications. You will learn migration strategies for moving legacy, monolithic WAS applications into Liberty containers running on Red Hat OpenShift, and some of the common pitfalls to watch out for.

* [App Modernization Workshop](#app-modernization-workshop)
* [Lab Setup](#lab-setup)
* [Day 1](#day-1)
* [Day 2](#day-2)
* [Day 3](#day-3)
* [Technology Used](#technology-used)
* [Presenters](#presenters)

## Lab Setup

|                                                                                                                                                                              |                                                        |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| [Cloud Workshop + Cloud Shell Setup Instructions](https://ibm-developer.gitbook.io/cloudpakforapplications-appmod/workshop-07-07-2020/setup/cloudworkshopk8swithwebterminal) | Run these steps to setup your environment for the labs |

## Day 1

| Topic                                                                                                                    | Description                       |
| ------------------------------------------------------------------------------------------------------------------------ | --------------------------------- |
| Welcome, Introductions, Objectives and Setup                                                                             | -                                 |
| [Lecture: Overview of Docker](https://ibm.box.com/s/0mvlb8hvd8lx23smfvoaijdt9ex63go2)                                    |                                   |
| [Lecture: Overview of Kubernetes](https://ibm.box.com/s/p8jqmihxterlpsrvg5d35yihs0am4c8g)                                |                                   |
| BREAK                                                                                                                    |                                   |
| [Lab: Kubernetes 101](https://ibm-developer.gitbook.io/cloudpakforapplications-appmod/workshop-07-07-2020/day-1/kube101) | Deploying, Scaling, and Operators |
| LUNCH                                                                                                                    |                                   |
| [Lecture: Helm](https://ibm.box.com/s/cluclg99642s5bgi6j2wixr37jg7nw96)                                                  | Helm Overview Lecture             |
| [Lab: Helm](https://ibm-developer.gitbook.io/cloudpakforapplications-appmod/workshop-07-07-2020/day-1/helm101)           | Series of Helm Labs               |
| RECAP and Survey                                                                                                         |                                   |

&#x20;**Install helm v3**

```
curl -LO https://raw.githubusercontent.com/remkohdev/setup/master/install-helm.sh
chmod 755 install-helm.sh
./install-helm.sh
helm version --short
```

## Day 2

| Topic                                                                                                                                                      | Description                                                        |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| Welcome, Day 1 Recap / Questions                                                                                                                           |                                                                    |
| [Lecture: Istio](https://ibm.box.com/s/4al8hgpzj90vuus55i9fmcw856qz1bt1)                                                                                   | Overview of Istio Service Mesh                                     |
| [Lab: Istio](https://ibm-developer.gitbook.io/cloudpakforapplications-appmod/workshop-07-07-2020/day-2/istio101/setup)                                     | Working with Istio (Deploying Applications and Traffic Management) |
| BREAK                                                                                                                                                      |                                                                    |
| [Lab: Add Secure Object Storage to MongoDB](https://ibm-developer.gitbook.io/cloudpakforapplications-appmod/workshop-07-07-2020/day-2/lab-02)              |                                                                    |
| LUNCH                                                                                                                                                      |                                                                    |
| [Lecture: Overview of Kubernetes Extensions](https://ibm.box.com/s/c7r9vsfdqtev76p1nqvdvumnoc6cai7m)                                                       |                                                                    |
| [Lab: Custom Resources and Operators](https://ibm-developer.gitbook.io/cloudpakforapplications-appmod/workshop-07-07-2020/day-2/kubernetes-extensions.git) |                                                                    |
| RECAP and Survey                                                                                                                                           |                                                                    |

**Install helm v3**

```
curl -LO https://raw.githubusercontent.com/remkohdev/setup/master/install-helm.sh
chmod 755 install-helm.sh
./install-helm.sh
helm version --short
```

**Install Go**

```
curl -LO https://golang.org/dl/go1.14.4.linux-amd64.tar.gz 
tar -C /usr/local -xzf go1.14.4.linux-amd64.tar.gz 
export PATH=$PATH:/usr/local/go/bin
go version
```

**Install the Operator SDK**

```
curl -LO https://github.com/operator-framework/operator-sdk/releases/download/v0.18.2/operator-sdk-v0.18.2-x86_64-linux-gnu 
chmod +x operator-sdk-v0.18.2-x86_64-linux-gnu 
sudo mkdir -p /usr/local/bin/ 
sudo cp operator-sdk-v0.18.2-x86_64-linux-gnu /usr/local/bin/operator-sdk 
rm operator-sdk-v0.18.2-x86_64-linux-gnu
operator-sdk version
```

## Day 3

| Topic                                                                                                                                         | Description                               |
| --------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| Welcome, Day 2 Recap / Questions                                                                                                              |                                           |
| [Overview of CI/CD for Microservices](https://ibm.box.com/s/8y9yglljd4yd7xmdo501o1xyqta3p9q9)                                                 |                                           |
| [Lab: Source-to-Image (S2I)](https://ibm-developer.gitbook.io/cloudpakforapplications-appmod/workshop-07-07-2020/day-3/lab-03)                | S2I with Custom Builder and Runtime Image |
| BREAK                                                                                                                                         |                                           |
| [Lecture: Overview of Tekton Pipelines](https://ibm.box.com/s/kisshn88w4a79jzz557o5h6c5k55o9ze)                                               | Tekton Overview Lecture                   |
| [Lab: Tekton on OpenShift](https://ibm-developer.gitbook.io/cloudpakforapplications-appmod/workshop-07-07-2020/day-3/tekton-lab/tekton-setup) | Tekton Pipelines in OpenShift Lab         |
| LUNCH                                                                                                                                         |                                           |
| Overview of Multi-Cloud Management and Policy Governance by Greg                                                                              |                                           |
| RECAP and Survey                                                                                                                              |                                           |

**Install S2I**

```
cd $HOME
curl -L -O https://github.com/openshift/source-to-image/releases/download/v1.3.0/source-to-image-v1.3.0-eed2850f-linux-amd64.tar.gz
tar -xvf source-to-image-v1.3.0-eed2850f-linux-amd64.tar.gz
mv s2i /usr/local/bin
rm source-to-image-v1.3.0-eed2850f-linux-amd64.tar.gz
s2i version
```

## Technology Used

* Docker
* Kubernetes
* Helm
* RedHat OpenShift
* IBM Kubernetes Service
* Istio

## Presenters

* [Remko de Knikker](https://github.com/remkohdev)
* [John Zaccone](https://github.com/jzaccone)
