GitOps: Infrastructure as Code with GitHub

3 days
UAIC
3 days

Upcoming Sessions

Date:

Format:

Price:

Location:

Book now

Date:

Format:

Price:

Location:

Book now

Date:

Format:

Price:

Location:

Book now

Date:

Format:

Price:

Book now

Interested in a private company training? Request it here.

Introduction to GitOps

GitOps is a way of implementing continuous deployment for cloud native applications. It focuses on a developer-centric experience when operating infrastructure, by using tools developers are already familiar with, including Git and Continuous Deployment tools.

  • What is GitOps?
  • Why should you use GitOps?
  • How does GitOps work?
  • GitOps Services and Tooling: Git(Hub), Azure DevOps, Kubernetes, Terraform, Flux, ...

Azure Resource Manager Templates

To implement infrastructure as code for your Azure resources, ARM templates can be used. The template is a JSON file that defines the infrastructure and configuration for your project using a declarative syntax.

  • Infrastructure as Code
  • Authoring ARM Templates
  • Parameters, Variables, Resources, Output
  • Nested Templates
  • Validating ARM Templates: Test Toolkit, Pester
  • LAB: Deploy Azure Resource with ARM Templates

Terraform

Terraform is an open-source infrastructure as code tool that allows you to manage many different cloud services. It uses a simplified syntax which allows for concise descriptions of your resources.

  • Terraform Features
  • Configuration and Providers
  • Variables, Resources, Secrets
  • Terraform State
  • LAB: Deploy Azure Resources with Terraform

The Bicep Language

Bicep is a transparent abstraction over ARM template JSON that significantly reduces the complexity of your templates. During deployment, the Bicep CLI converts a Bicep file into an ARM template.

  • Benefits of Bicep Versus Other Tools
  • Install Bicep Tools
  • Author Resources
  • Parameters, Variables, Outputs
  • Validate Files with Bicep Linter
  • Migrate from ARM Templates to Bicep
  • LAB: Deploy Azure Resources with Bicep

Desired State Configuration (DSC)

Automate the configuration of your VMs.

  • Benefits of Desired State Configuration
  • DSC Components: Configuration, Resources, Compilation
  • Enact Your Configuration: Push or Pull mode
  • Using Azure Automation for DSC
  • LAB: Configure a Virtual Machine with PowerShell DSC

Using Git with GitHub

Sources are probably the most important part in any software project and we need a way to keep track of all sources and all changes. Here you will learn to use Git(Hub) to store the assets, such as templates (ARM, Terraform, ...), needed to deploy your infrastructure.

  • Version Control concepts
  • Distributed Source Control with Git and GitHub
  • Creating a local repository
  • Cloning a remote repository
  • Staging files
  • Committing files
  • Branching Strategies
  • Using Forks
  • Merge vs. Rebase
  • Synchronizing with a remote repository
  • Pull Requests
  • LAB: Working with Git and GitHub

Continuous Integration with GitHub Actions

To build quality software, and to limit nasty integration problems at the end of the project, doing a daily build is long regarded as a best practice. GitHub Actions makes building daily very easy through workflows. You'll learn how to manage the build, do desktop and web builds, and how you can setup a continuous integration environment. You'll then learn how to customize the build process to perform all your build steps including running unit tests, creating custom build actions, generating setup programs and deploying to staging servers.

  • What is GitHub Actions?
  • Doing Continuous integration
  • What are jobs and steps?
  • Using variables
  • Defining and using secrets
  • Integrating with Azure using Service Principals
  • LAB: Setting up a build definition to build and test your deployment target
  • LAB: Deploying a SQL Server database using GitHub Actions and ARM templates

Continuous Deployment with GitHub Actions

With continuous deployment you can automatically setup a machine in a consistent state, whenever you want. Not only can you deploy your application, but you can also setup your infrastructure.

  • Release management and continuous deployment
  • Deploying Artifacts
  • Caching Dependencies
  • Using environments during deployment
  • Triggering workflows
  • LAB: Deploying a web site to an Azure WebApp using Github Actions
  • LAB: Deploying a virtual machine using GitHub Actions and Terraform
  • LAB: GitHub Actions CI/CD using Bicep

GitHub Workflow Runners

With GitHub actions someone needs to do the work of building and deploying code and infrastructure. These are known as runners. Here we will look at runners and how to setup your own runner.

  • Understanding Runners
  • Using GitHub hosted runners
  • Setting up a Windows hosted runner
  • Setting up a Linux hosted runner

In the past, managing an IT infrastructure was a hard job. System administrators had to manually manage and configure all of the hardware and software that was needed for the applications to run.

However, in recent years, trends like "Infrastructure as Code" improved the way organizations design, develop, and maintain their IT infrastructure dramatically. The core idea of "Infrastructure as Code" is having a declarative description of the desired infrastructure and an automated process to make the production environment match the described state. In this course, you will learn about the tools that will help you setup this kind of deployment for your infrastructure, such as Terraform, Bicep and GitHub.

IT Pros who are interested in learning how to deploy their cloud infrastructure in an easy, fully automated way.

Contact Us
  • Address:
    U2U nv/sa
    Z.1. Researchpark 110
    1731 Zellik (Brussels)
    BELGIUM
  • Phone: +32 2 466 00 16
  • Email: info@u2u.be
  • Monday - Friday: 9:00 - 17:00
    Saturday - Sunday: Closed
Say Hi
© 2024 U2U All rights reserved.