Course Overview

With over 50 million users worldwide and 100 million repositories, GitHub is the center of the open source universe. Yet GitHub is also a wonderful platform for practicing good DevOps with your private and inner-source  projects. You and your teams can use GitHub to help you deliver value and build quality into any app, written using your preferred coding language, on your platforms of choice. You can build and deploy both to the cloud and self-host servers.

You’ll learn what GitHub Cloud has to offer and how you can use it effectively to deliver value to your customers. Because of its rich, open-source heritage you’ll see the service is fully extensible and integrates with popular services and platforms, so you’re never locked in.

In this 3-day, hands-on course, you will learn how you can apply good DevOps principles so you and your team can deliver value as fast as your customers need and expect.

Key Learning Areas

Attendees will acquire first-hand experience using GitHub and the features that it offers:

  • How you, your team, and company should create an organization using GitHub
  • How to on-board developers and stakeholders
  • How you can use GitHub Issues and Projects to track and manage your team’s work
  • How to use GitHub Repos for distributed version control of your team’s assets using Git and supporting tools
  • How to use GitHub Actions to create build pipelines to package up your applications
  • How to use GitHub Actions to publish your applications and other items to the cloud or on-premises
  • How to create, host, and share packages with your team, and add artifacts to your pipelines with GitHub Packages

Each course module consists of a lecture followed by a hands-on lab designed to reinforce the principles presented during lecture.

Course Outline

A Day in the Life of a Developer

  • Level set of “what is DevOps”
  • Overview GitHub
  • Examine an end-to-end workflow
  • Strategies for building quality solutions
  • Examine Organization and Team configuration
    • Logins
    • Notifications
    • The core features that every team member needs to know

GitHub Repos: Using Git Effectively

Git repos are the center of your work in GitHub. Learn how to collaborate and build better code with pull requests and advanced file management.

  • Centralized vs decentralized version control
  • Defining and managing repos
  • Don’t fear the command-line
  • Working with branches
  • Pull Requests
  • IDEs and Tools
  • The GitHub Command-line

Collaboration with GitHub with Issues and More

GitHub provides a variety of mechanisms to track work and collaborate.

  • Plan, track, and discuss work across your teams
  • What does every team member need to know?
  • Public vs private repos
  • GitHub Issues
  • Project Boards
  • Millstones
  • Team Discussions
  • Pages and Wikis
  • Repository Insights
  • Basically, “just enough project management” to support full DevOps traceability

GitHub Actions: Building Quality-In

Build and test with continuous integration that works with any language, platform, and cloud.

  • Defining Quality Gates
  • GitHub Actions for Builds
  • Understanding Runners
  • Digging into YAML Build Definitions
  • Testing with Build
    • Unit Testing
    • Code Coverage
  • Managing and Sharing Build Definitions

GitHub Actions: Releasing to the World

Use continuous deployment to get your apps deployed.

  • Understanding deployment models
  • GitHub Actions for Releases
  • YAML Release Extensions
  • Accessing external services
  • Staging releases
  • Defining approval processes and quality gates
  • Deployment Groups and Targets
  • Managing and Sharing Release Definitions

GitHub Packages Sharing Code Effectively

  • Why and what of the service
  • Integrating with GitHub Actions
  • Designing your repos to better support sharing
  • Updating your workflow to support collective ownership mindset
  • Branching strategies
  • Applying Open Source Software principles to internal development

Write Better, More Secure Code with GitHub

  • Tour of GitHub Related Security Features
  • Secret scanning
  • Dependabot
  • Required Reviews
  • Role-based access Control
  • Auditing
  • Introduction to CodeQL

Deliver Higher Quality Solutions

  • Continuous Feedback
  • Involving Stakeholders
  • Integrating Automated Tests with Actions
  • Building Integration Tests
  • Running UAT Tests
  • Quality Tracking and Reporting
  • GitHub Analytics

Extending GitHub: Azure Boards

Use Azure Boards with GitHub when you need richer project tracking and visualization

  • Plan, track, and discuss work across your teams
  • What does every team member need to know?
  • Organizing and refining the Product Backlog
  • Planning and executing a Sprint
    • Limiting work in progress (WIP)
    • Working in small batches
    • Creating and accepting a definition of “Done”
  • Using queries, charts, and dashboards for basic reporting

Who Benefits

This course is primarily designed for software developers who want to learn how to work with GitHub Cloud to manage and build cloud-based applications. The hands-on labs involve mostly configuration with some light coding. Coding is done in C#. Non-developers including Scrum Masters, Product owners, and more test focused engineers can attend and pair with developers as needed but will find most areas of the course valuable even if they don’t write code.

In order to work along with the labs, attendees must have the following:

  • A modern web browser like Microsoft Edge, Chrome, Firefox, or Safari on macOS. Internet Explorer is NOT supported.
  • An Azure subscription (Azure Pass, MSDN subscription, free trial, company subscription, etc.)
  • Visual Studio Code on Windows or macOS
  • Local administrative permissions to install additional tools that may be required during the course of the labs

Prerequisites

Basic programming experience, preferably in C# with Visual Studio.