Ardan Labs Live in London (Nov 1 - 4, 2022)

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
  • 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
  • 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
  • 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.