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
Deploy your Infrastructure as Code
- Infrastructure as Code
- Authoring ARM Templates
- Parameters, Variables, Resources, Output
- Nested Templates
- Validating ARM Templates: Test Toolkit, Pester
- LAB: Deploy Azure Resource Resources with ARM Templates
Use Terraform to create resources in Azure or other cloud environments.
- Terraform Features
- Configuration and Providers
- Variables, Resources, Secrets
- Terraform State
- LAB: Deploy Azure Resources with Terraform
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
- DSC Tools: PowerShell, Chef, Puppet
- LAB: Configure a Virtual Machine with PowerShell DSC
Source Control with Azure DevOps and 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) and Azure Repos to store the assets, such as templates (ARM, Terraform, ...), needed to deploy your infrastructure.
- Version Control concepts
- Distributed Source Control with Git
- Creating a local repository
- Cloning a remote repository
- Staging files
- Committing files
- Adding branches to your workflow
- Branching Strategies
- Merge vs. Rebase
- Synchronizing with a remote repository
- Pull Requests
- LAB: Working with Git
Continuous Integration with Azure Pipelines
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.
Azure DevOps makes building daily very easy through build pipelines.
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 Team Build?
- Doing Continuous integration
- What are jobs, tasks?
- Creating Build processes with the new componentized build
- Validating Infrastructure as Code scripts with a build
- Integrating with other systems (such as GitHub) using Service Connections
- LAB: Setting up a build definition to build and test your deployment templates
Continuous Deployment with Azure Pipelines
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
- Release definitions
- Approving releases with release gates
- Choosing between deployment patterns
- Notifications with Service Hooks
- What are Agents?
- Setting up a build agent in your enterprise network
- Understanding ChatOps
- LAB: Continous Deployment with a release definition
The core idea of GitOps is having a Git repository that always contains declarative descriptions of the infrastructure currently desired in the production environment
and an automated process to make the production environment match the described state in the repository.
If you want to deploy a new application or update an existing one, you only need to update the repository - the automated process handles everything else.
It’s like having cruise control for managing your applications in production.
In this course, you will learn about the tools that help you to setup this kind of deployment for your infrastructure.
IT Pros who are interested in learning how to deploy their cloud infrastructure in an easy, fully automated way.