Skip to content

Latest commit

 

History

History
196 lines (127 loc) · 10.1 KB

README-Trainer.md

File metadata and controls

196 lines (127 loc) · 10.1 KB

CodeToCloud with GitHub and Azure DevOps Workshop - Trainer Materials

This repository contains the trainer materials for a workshop targeted at students in a instructor-led training. The workshop focuses on the Code to Cloud journey. The journey includes the integration with Azure Boards, working with GitHub Codespaces, the GitHub Flow, and the GitHub Container Registry. Students will learn to use docker and docker-compose and deploy their solution to an Azure Web App using GitHub Actions, and Azure DevOps pipelines.

To make it challenging for the students, the workshop contains challenges that can also be done individually. To make sure students do not get stuck, there are scripts available with instructions to "automatically" fix a challenge, so students can continue. The workshop also contains extensive Step-By-Step videos and written instructions. There are also videos that explain the concepts that are used in the exercises.

This workshop focuses on the Code to Cloud journey. When you want to dive in to Cloud Native and the setup and configuration of Kubernetes, you can continue your learning journey with the Cloud Native Workshop Workshop of Microsoft, which build upon the same sources.

Class setup

The class is primarily setup to let participants figure out how to perform the steps themselves and provides links to the relevant docs and tutorials to guide them on their way. While this can take significantly longer, it greatly improves the learning. Possibly more than a single day.

There is a guided step-by-step available as well which instructs the students exactly what to do in detail. Going through just the step-by-steps will be much faster.

Student must perform all modules in order.

When a student is unable to finish the module in time, they can run a tool to automatically perform the required code-changes on their environment, preparing them for the next module.

Repository Setup

This repository is the "trainer" copy of the workshop. Including this repository, the workshop consists of 4 repositories that all have a specific purpose.

  • CodeToCloud-Student
    • STUDENT REPOSITORY - This contains the exercises and challenges for the students. Provide this link to the students.
  • CodeToCloud-Source
    • STUDENT REPOSITORY - This contains the starter solution source code that students can fork. Provide this link to the students.
  • CodeToCloud-Trainer
    • TRAINER REPOSITORY - Current repository. This contains the trainer materials, slide decks, solution files and exercises
  • CodeToCloud-Solution
    • TRAINER REPOSITORY - This contains the Start and Solution files that are used in the auto-fix scripts. Should not be touched.

Trainer Materials

There are trainer materials that can be used by the trainers to present the various concepts and agenda of the Day. These trainer materials can be found in the Trainer Materials folder. The Outline presentation contains the agenda and introduction of the day to the students.

Module 0 - Introduction

Duration: 120 minutes

To set the stage the students collaborate to use the different services of Azure, GitHub and Azure DevOps to design a architectural roadmap for Fabrikam Medical.

As facilitator you can have them read the instructions or role-play the part of VP of Engineering at Fabrikam, Susan Withers.

Prerequisites

Duration: 20 minutes

This workshop is targeted for students in a instructor-led training. To make it challenging for the students, the workshop contains challenges that can also be done individually. To make sure students do not get stuck, there are scripts available with instructions to "automatically" fix a challenge, so students can continue. The workshop also contains extensive Step-By-Step videos and written instructions. There are also videos that explain the concepts that are used in the exercises.

Students will be guided to clone the CodeToCloud source repository to their own account, setup Azure DevOps, create a GitHub Codespace and provision a settings file used to drive some of the automation.

Module 1 - Improving the Developer Workflow

Duration: 120 minutes

Learning Objectives

In this module your students will learn to:

  • Create a backlog of work with Azure Boards and relate that to your code
  • Use Docker to containerize your code, to enable a consistent environment
  • Use the GitHub workflow to work together on the same codebase
  • Use Pull Requests to improve the quality of your code
  • Set up a Continuous Integration build to quickly get feedback
  • Use GitHub Security scanning tools to shift left security issues
  • Use Docker Compose to create a environment that consists of multiple components

Available materials

Present the following topics to make the students familiar with:

  • Introduction to GitHub Codespaces
  • Introduction to Azure Boards and GitHub
  • Visual Studio Code
  • GitHub Flow
  • Testing Locally
  • Docker for a local production-like environment
  • Pull-Requests
  • GitHub Actions
  • GitHub Packages
  • Security Scanning
  • Azure Pipelines

Or show the following video:

Module 1 - Improving Developer Workflow - Theoretical Concepts

Module 2 - Moving to the Cloud

Duration: 90 minutes

Learning Objectives

In this module your students will learn to:

  • Use Infrastructure as Code to set up idempotent infrastructure in the cloud
  • Set up a resource group in Azure and assign permissions
  • Set up a CosmosDB via automation scripts
  • Set up an Azure Web App that runs a multi-container application via automation scripts
  • Set up a pipeline that deploys the infrastructure on demand

Available materials

Present the following topics to make the students familiar with:

  • Infrastructure as Code
  • Azure Fundamentals
  • Azure Web Apps

Or show the following video:

Module 2 - Moving to the Cloud - Theoretical Concepts

Module 3 - Closing the Feedback Loop

Duration: 120 minutes

Learning Objectives

In this module your students will learn to:

  • Implement Application Insights in the application
  • Monitor the containers and the platform
  • Implement Continuous Delivery in GitHub Actions
  • Set up a CI/CD pipeline with Azure DevOps to automatically deploy containers
  • Set up an manual and automatic approval gate in the release pipeline, to control the release of new versions

Available materials

Present the following topics to make the students familiar with:

  • Application Insights
  • Azure Pipelines - Basics
  • Azure Pipelines - Advanced: Stages, Environments & Checks

Or show the following video:

Module 3 - Closing the Feedback Loop - Theoretical Concepts

Class flow

Challenges

All challenges can be found in the Challenges folder. These are also represented in another Git Repository that can be offered to the students. There is also a Git Repository that contains all sources. This can be found here. Students need to fork this repo to get started. This is also described in the prerequisites

Issues and pull requests

Issues and pull requests have been disabled for this repo. These can be added to the parent repository and will be reflected in this repo!

Encourage students to leave feedback on the Workshop! This can be done along the way (when issues are encountered) and after finishing it. Feedback can be given in the CodeToCloud Workshop repository: https://github.com/XpiritBV/CodeToCloud-Workshop. This way we get a good idea of issues that were encountered by students, and the workshop can be further improved! They (and you) can also come up with enhancement proposals that would bring the workshop to a higher level!