Log In
Start
Free
Trial
Log In
Start
Free
Trial
Back To Course Home
Go for DevOps
0% completed
Introduction to the Course
Go and DevOps
Go Language Basics
Introduction
Utilizing Go Packages
Using Go's Variable Types
Variable Scopes and Shadowing
Looping in Go
Using Conditionals
Learning About Functions
Challenge: Armstrong Numbers
Solution Review: Armstrong Numbers
Public and Private Declarations
Using Arrays and Slices
Understanding Maps
Challenge: Find Repeating Words in a Sentence
Solution Review: Find Repeating Words in a Sentence
Understanding Go Pointers
Getting To Know About Structs
Comprehending Go Interfaces
Challenge: Implement the Stringer Interface
Solution Review: Implement Stringer Interface
Summary and Quiz on the Go Language Basics
Go Language Essentials
Introduction
Handling Errors in Go
Utilizing Go Constants
Using Defer, Panic, and Recover
Utilizing Goroutines for Concurrency
Select and Mutexes in Goroutines
Challenge: Sum With Goroutines
Solution Review: Sum With Goroutines
Understanding Go’s Context Type
Utilizing Go's Testing Framework
Generics – The New Kid on the Block
Adding Type Parameters to Struct Types
Summary and Quiz on the Go Language Basics
Filesystem Interactions
Introduction
I/O Interfaces in Go
Reading and Writing to Files
Streaming File Content
OS-Agnostic Pathing
OS-Agnostic Filesystems
Summary and Quiz on Filesystem Interactions
Using Common Data Formats
Introduction
CSV Files
Using excelize When Dealing With Excel
Popular Encoding Formats: JSON
Challenge: Process JSON Data
Solution Review: Process JSON Data
Popular Encoding Formats - YAML
Summary and Quiz on Using Common Data Formats
Interacting with Remote Data Sources
Introduction
Accessing SQL Databases
Developing REST Services and Clients
Developing gRPC Services and Clients
Summary and Quiz on Interacting With Remote Data Sources
Writing Command-Line Tooling
Introduction
Implementing Application I/O
Accessing Non-Flag Arguments
Using Cobra for Advanced CLI Applications
Handling OS Signals
Summary and Quiz on Writing Command-Line Tooling
Automating Command-Line Tasks
Introduction
Using os/exec to Automate Local Changes
Using SSH in Go to Automate Remote Changes
Designing Safe, Concurrent Change Automations
Writing a System Agent
Summary and Quiz on Automating Command-Line Tasks
Observability with OpenTelemetry
Introduction
An Overview of OpenTelemetry
Logging With Context
Instrumenting For Distributed Tracing
Instrumenting For Metrics
Alerting on Metrics Abnormalities
Summary and Quiz on Observability With OpenTelemetry
Automating Workflows with GitHub Actions
Introduction
Understanding the Basics of GitHub Actions
Build and Trigger Our First GitHub Action
Building a Continuous Integration Workflow
Building a Release Workflow
Creating a Custom GitHub Action Using Go
Publishing a Custom Go GitHub Action
Summary and Quiz on Automating Workflows With GitHub Actions
Using ChatOps to Increase Efficiency
Introduction
Environment Architecture
Using an Ops Service
Creating Event Handlers
Creating Our Slack Application
Summary
Creating Immutable Infrastructure Using Packer
Introduction
Initializing Packer
Building an Amazon Machine Image
Validating Images With Goss
Customizing Packer With Plugins
Releasing, Using and Debugging a Plugin
Summary and Quiz on Creating Infrastructure Using Packer
Infrastructure as Code with Terraform
Introduction
An Introduction to IaC
Understanding the Basics of Terraform Providers
Building a Pet Store Terraform Provider
Summary and Quiz on Infrastructure as Code with Terraform
Deploying and Building Applications in Kubernetes
Introduction
Interacting With the Kubernetes API
Deploying a Load-Balanced HTTP Application Using Go
Extending Kubernetes With Custom Resources and Operators
Building a Pet Store Operator
Summary and Quiz on Applications in Kubernetes
Programming the Cloud
Introduction
What Is the Cloud?
Learning the Basics of the Azure APIs
Building Infrastructure Using Azure Resource Manager
Using Provisioned Azure Infrastructure
Summary and Quiz on Programming the Cloud
Designing for Chaos
Introduction
Using Overload Prevention Mechanisms
Using Rate Limiters To Prevent Runaway Workflows
Building Workflows That Are Repeatable and Never Lost
Using Policies to Restrict Tools
Building Systems With an Emergency Stop
Summary and Quiz on Designing for Chaos
Appendix
Installing Go on Local Machine
Building Code Locally
Conclusion
Wrap up
Customizing Packer With Plugins
Understand how to make our own plugins for Packer.
We'll cover the following
Writing your own plugin
Adding our provisioner configuration
Defining the plugin's configuration specification
Defining the ConfigSpec() function
Defining Prepare()
Defining Provision()
Get hands-on with 1400+ tech skills courses.
Start Free Trial