Join us in London for a series of 4 Ultimate Go and K8s in-person workshops! In partnership with our friends at Utility Warehouse.
DATES
Nov 1, 2022, from 9 AM to 6 PM
Workshop: Hands-on Introduction to Kubernetes
Instructor: David Flanagan
Level: Beginner - Intermediate
Nov 2, 2022, from 9 AM to 6 PM
Workshop: Deploying Real World Applications to Kubernetes
Instructor: David Flanagan
Level: Intermediate - Advanced
Nov 3 & Nov 4, 2022, from 9 AM to 6 PM
Workshop: Ultimate Go: Web Services with Kubernetes
Instructor: Bill Kennedy
Level: Intermediate
WORKSHOPS
Workshop 1 – Hands-on Introduction to Kubernetes
Summary
Kubernetes, the flagship project from the Cloud Native Foundation, has become the de-facto standard for running our container workloads. Unfortunately, Kubernetes is a fast-moving, ever-evolving, sea of complexity. From Pods to Deployments, ConfigMaps to Secrets, and PersistantVolumeClaims to StatefulSets; this training will get you on-course.
In this full-day training class, David will walk you through a series of labs that will teach you everything you need to know to take your container-based application and deploy it as a self-healing, redundant and resilient application on top of Kubernetes.
What a student is expected to learn
How Kubernetes Works
- Control Plane
- Controllers
- Scheduler
Kubernetes Primitives
- Deployments, ReplicaSets, & Pods
- Services
- ConfigMaps
- Secrets
- Namespaces
Stateful Workloads
- Persistent Volume
- StatefulSets
Multi-Container Patterns
- Init-containers
- Sidecars
Recommended Preparation
- Mac/Windows: Docker Desktop
- Linux: Docker Desktop, Minikube, or KinD
- Computers should be capable of modern software development, such as access to install and run binaries, install a code editor, etc.
- Sign up for a GitHub account, if you do not already have one
Pre-Install
- Please review this link for the tooling you should have installed before you come to class. Install Requirements
- Please make sure the following images have been pulled from DockerHub
- Nginx: latest, postgres:14-alpine, alpine:3.16
- For Docker Desktop, please ensure Kubernetes is enabled
Workshop 2 – Deploying Production Applications to Kubernetes
Summary
Following on from our “Hands-on Introduction to Kubernetes”, this training class will build on-top of the Kubernetes primitives and show you how to run and operate a production application on Kubernetes.
This class dives into the different deployment strategies for testing new releases in a production environment with automatic rollbacks. As well as securing and protecting your data and applications from malicious users with strict network policies and runtime configuration. Also takes a look at the tools available to improve your deployment pipeline with templates, packages, and a Git focused delivery pipeline known as “GitOps”.
What a student is expected to learn
Production Grade Deployments:
- Rollout Strategies
- Affinities & Taints
- Probes
- Resource Management (Requests + Limits)
Security:
- Network Policies
- Runtime Security
- Contexts
- Capabilities
- Profiles
Deploying to Kubernetes with:
- Helm
- Kustomize
- CDK8s
GitOps:
- CI/CD in a Kubernetes environment
Recommended Preparation
- Mac/Windows: Docker Desktop
- Linux: Docker Desktop, Minikube, or KinD
- Computers should be capable of modern software development, such as access to install and run binaries, install a code editor, etc.
- Sign up for a GitHub account, if you do not already have one
Pre-Install
- Please make sure the following images have been pulled from DockerHub
- Nginx:latest, postgres:14-alpine, alpine:3.16
- For Docker Desktop, please ensure Kubernetes is enabled
Workshop 3 - Ultimate Go: Web Services with Kubernetes
Summary
This class teaches how to build production-level services in Go with a focus on macro-level engineering decisions. From the beginning of the course, you will pair program with your instructor Bill Kennedy as he walks you through the design philosophies, architectural decisions, and best practices as they apply to engineering a production-ready Go service. With each new feature, you will learn more about the transition from programming to engineering and the points of refactoring required to write production-level applications. Throughout the class, Go modules and Kubernetes will be a focus. Everyone will be making better engineering decisions after this class.
What a student is expected to learn
- Service Design and Engineering
- Web Design and Engineering
- Go Modules
- Project Setup and Structure
- Kubernetes For Developers
- Logging and Configuration
- HTTP Routing Basics
- Web Framework with Middleware
- Error Handling
- JSON Web Tokens
- Authentication / Authorization
- Database Support
- Database Migrations and Seeding
- Business Packages
- REST API
- Open Telemetry
Recommended Preparation
- Install and configure an editor for Go
- Have a functioning Go environment installed with Go 1.18 or later
- Sign up for a GitHub account, if you do not already have one
- Computers should be capable of modern software development, such as access to install and run binaries, install a code editor, etc.
Pre-Install
Please review this link for the tooling you should have installed before you come to class. See Requirements
Please make sure the following images have been pulled from DockerHub – golang:1.19, postgres:14-alpine, alpine:3.16, kindest/node:v1.24.0
ABOUT THE INSTRUCTORS
David Flanagan
David is a Kubernetes contributor, host of the Kubernetes Office Hours live stream, and Rawkode Academy’s education channel on YouTube. For nearly 20 years, David has been developing software professionally where he started with embedded systems written in C back in 2004. Since then he has spent time learning the paradigms of different programming languages, such as C++, PHP, Java, and Haskell. More recently David prefers to program in Go, Rust, and Pony.
William Kennedy
Bill is a managing partner at Ardan Labs in Miami, Florida, a group of passionate engineers, artists, and business professionals focused on building and delivering reliable, secure, and scalable solutions. He is also a co-author of the book Go in Action, the author of the blog GoingGo.Net, and a founding member of GoBridge which is working to increase Go adoption through diversity.