# 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.

### Agenda Catagories

Build your own agenda from the following catagories. Browse the variants in the upper lefthand dropdown to view past agendas.

* [Setup](#setup)
* [Technology Foundations](#technology-foundations)
* [Microservices Development](#microservices-development)
* [Modern Development in OpenShift](#modern-development-in-openshift)
* [CI/CD](#ci/cd)
* [Application Modernization](#application-modernization)
* [IBM Value Add](#ibm-value-add)

Also:

* [Technology Used](#technology-used)
* [Presenters](#presenters)

## Setup

|                                                                   |                                                        |
| ----------------------------------------------------------------- | ------------------------------------------------------ |
| [Cloud Workshop + Cloud Shell Setup Instructions](setup/pre-work) | Run these steps to setup your environment for the labs |

## Technology Foundations

|                                                                                         |                                                                       |
| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
| [Lecture: Docker/K8s Summary](https://ibm.box.com/s/t9vipcb1ncnjedeydpwx4np0yzi8xdzr)   | A Quick Overview of Docker/K8s for an advanced audience               |
| [Lecture: Docker](https://ibm.box.com/s/0mvlb8hvd8lx23smfvoaijdt9ex63go2)               | What is Docker?                                                       |
| [Lab: Docker](technology-foundations/docker101)                                         | Series of Docker Labs                                                 |
| [Lecture: Kubernetes](https://ibm.box.com/s/migr539izuf8d686shemct1na0gyvl6v)           | What is Kubernetes?                                                   |
| [Lecture: Operators Standalone](https://ibm.box.com/s/vxk3rj1f8babuap02frcisve0p43knqi) | Standalone Lecture on Operators (also included in Kubernetes Lecture) |
| [Lab: Kubernetes with Operators](technology-foundations/digidevcon-iks)                 | Series of Kubernetes Labs                                             |
| [Lab (alternate): Kubernetes 101](technology-foundations/kube101)                       | Kubernetes Introduction Labs (Deploying & Scaling Apps)               |
| [Lecture: Helm](https://ibm.box.com/s/cluclg99642s5bgi6j2wixr37jg7nw96)                 | Helm Overview Lecture                                                 |
| [Lab: Helm](technology-foundations/helm101)                                             | Series of Helm Labs                                                   |

## Microservices Development

|                                                                                  |                                                                      |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| [Lecture: Microservices](https://ibm.box.com/s/juwyhpy4yt99ckvigd43140tlx3j53rb) | Microservices Principles, Patterns and Implementation Considerations |
| Wrap up                                                                          | Questions?                                                           |
| [Lab: Deploy Microservices](microservices-development/readme_deployment)         | Deploy Microservices Application Lab                                 |
| [Lecture: Istio](https://ibm.box.com/s/4al8hgpzj90vuus55i9fmcw856qz1bt1)         | Overview of Istio Service Mesh                                       |
| [Lab: Istio](microservices-development/istio101/setup)                           | Working with Istio (Deploying Applications and Traffic Management)   |

## Modern Development in OpenShift

|                                                                                                                  |                                             |
| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------- |
| [Introduction](https://ibm.box.com/s/h4kopjikllv061bmwhlw2z0735j5wc2y)                                           | Introduction to Application Modernization   |
| [Lecture: S2I and Templates](https://ibm.box.com/s/orn1speymlos7w22n6haowq1kyyd0g5v)                             | Learn about S2I and Templates in OpenShift  |
| [Lab: S2I and Templates](modern-development-with-openshift/app-modernization-openshift-s2i-templates-lab-shared) | Deploy Cloud Native Applications using S2I  |
| [Lab: S2I Open Liberty](modern-development-with-openshift/s2i-open-liberty-workshop)                             | Write your own S2I Scripts for Open Liberty |

## CI/CD

|                                                                                                       |                                                                                      |
| ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| [Lecture: CI/CD for Kubernetes and OpenShift](https://ibm.box.com/s/6cn4wi4amqm9dwl7wgdt05vtj1xdtrkm) | Jenkins Pipelines in OpenShift Lecture                                               |
| [Lab: CI/CD for Kubernetes on OpenShift](ci-cd/app-modernization-openshift-cicd-lab-shared)           | Jenkins Pipelines in OpenShift Lab                                                   |
| [Lecture: Overview of Tekton Pipelines](https://ibm.box.com/s/kisshn88w4a79jzz557o5h6c5k55o9ze)       | Tekton Overview Lecture                                                              |
| [Lab: Tekton on OpenShift](ci-cd/tekton-tutorial-openshift)                                           | Tekton Pipelines in OpenShift Lab                                                    |
| [Lecture: CI/CD Options for Kubernetes](https://ibm.box.com/s/corz4h3v7t03x0fl3av6f1r4ei54j8dj)       | Covers breifly... why CICD for microservices, Jenkins, Jenkins X, Tekton, and ArgoCD |
| [Lab: CI/CD for Kubernetes on IKS](ci-cd/app-modernization-cicd-lab-iks)                              | Jenkins Pipelines in IKS Lab                                                         |

## Application Modernization

|                                                                                                             |                                                            |
| ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
| [Lecture: App Modernization Migration](https://ibm.box.com/s/yundw794wuiyhil485s1eua9hfkujz0a)              | Learn about Application Modernization Migration Approaches |
| [Lab - Explore Transformation Advisor](tools-for-modernization/app-modernization-ta-explore-lab-openshift4) | Run Transformation Advisor against WebSphere               |
| [Lecture: 12 Factors](https://ibm.box.com/s/mhn0ff94xq0lwewfebgruxya44nmhm08)                               | Cloud Native Development – 12 Factor                       |

## IBM Value Add

|                                                                                                   |                                            |
| ------------------------------------------------------------------------------------------------- | ------------------------------------------ |
| [Lecture: IBM Cloud Pak for Applications](https://ibm.box.com/s/y4wh104vdos1vw5kdjwwuhebf8jgq580) | Overview of IBM Cloud Pak for Applications |

## Technology Used

* Docker
* Kubernetes
* Helm
* RedHat OpenShift
* IBM Kubernetes Service
* IBM Transformation Advisor
* Jenkins
* Istio

## Presenters

* [David Carew](https://github.com/djccarew)
* [Tim Robinson](https://github.com/timroster)
* [John Zaccone](https://github.com/jzaccone)
* [Remko de Knikker](https://github.com/remkohdev)
* [Javier Torres](https://github.com/jrtorres)
* [Oliver Rodriguez](https://github.com/odrodrig)
