25 Hours of Self-Paced Video + 5 Instructor-Led Sessions:
Date:
Coming Soon
Format:
- Kick-off session
- Self Paced Video - (Weekly Lessons)
- Instructor-Led Weekly Q & A
- Continuous Education
Course Description:
The Ultimate Go Service with Kubernetes class has been designed over the past 5 years and goes beyond just being a Go service class. This course teaches you how to build production-level services in Go, leveraging the power of Kubernetes.
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 that is added to the service, you will learn how to deploy and manage the Kubernetes environment used to run the service. Throughout the class, the code being worked on is pushed to a repository for personal access and review.
Course Outline
Introduction:
- 1.0 - Intro - (01:00)
- 1.1 - Design Philosophy, Guidelines, What to Expect - (03:00)
- 1.2 - Tooling to Install - (05:00)
Modules:
- 2.0 - Intro - (01:00)
- 2.1 - Adding Dependencies - (23:00)
- 2.2 - Module Mirrors - (19:00)
- 2.3 - Checksum Database - (05:00)
- 2.4 - Vendoring - (05:00)
- 2.5 - MVS Algorithm - (18:00)
Kubernetes:
- 3.0 - Intro - (01:00)
- 3.1 - Tooling Installation - (05:00)
- 3.2 - Understanding Clusters, Nodes & Pods - (10:00)
- 3.3 - Write Basic Service for Testing - (08:00)
- 3.4 - Zarf Layer - (11:00)
- 3.4.2 - Kind Configuration - (06:00)
- 3.4.3 - Core K8s Configuration - (17:00)
- 3.4.4 - K8s Quotas / Patching - (19:00)
Initial Service Design:
- 4.0 - Intro - (01:00)
- 4.1 - Project Layers, Policies, and Guidelines - (18:00)
- 4.2 - Prepare Project - (19:00)
- 4.3 - Logging Support - (17:00)
- 4.4 - Configuration Support - (22:00)
- 4.5 - Debugging / Metrics Support - (22:00)
- 4.6 - Shutdown Signaling & Load Shedding - (11:00)
HTTP Routing Basics:
- 5.0 - Intro - (01:00)
- 5.1 - Basic Structure of an HTTP Router - (11:00)
- 5.2 - Add a Readiness, Liveness & Test Handler - (24:00)
Web Framework:
- 6.0 Intro - (01:00)
- 6.1 Custom Router - (18:00)
- 6.2 Custom Handler Function - (13:00)
- 6.3 Middleware Support - (09:00)
- 6.4 Sending Responses - (05:00)
Middleware:
- 7.0 - Intro - (01:00)
- 7.1 - Logging - (14:00)
- 7.2 - Request Context - (16:00)
- 7.3.1 - Understanding what Error Handling Means - (15:00)
- 7.3.2 - Declaring Custom Error Types - (17:00)
- 7.3.3 - Consistent Handling & Response - (13:00)
- 7.4 - Panic Handling - (09:00)
- 7.5 - Metrics - (18:00)
JSON Web Tokens (JWT):
- 8.0 - Intro - (01:00)
- 8.1 - Understanding JWT - (09:00)
- 8.2 - Private/Public Key Generation - (12:00)
- 8.3 - Token Generation - (21:00)
- 8.4 - Token Signature Validation - (07:00)
Authentication / Authorization:
- 9.0 - Intro - (01:00)
- 9.1 - Auth Package - (11:00)
- 9.2 - Implementation of an In-Memory Key Store - (09:00)
- 9.3 - Middleware - (14:00)
- 9.4 - Auth Unit Test - (20:00)
Database Support:
- 10.0 - Intro - (01:00)
- 10.1 - Kubernetes Support for Postgres - (10:00)
- 10.2 - Using Sqlx - (01:00)
- 10.3 - Update Readiness Handler to Perform DB Checks - (06:00)
Database Migrations and Seeding:
- 11.0 - Intro - (01:00)
- 11.1 - Maintaining Database Schemas - (16:00)
- 11.2 - Seeding Data - (05:00)
- 11.3 - Init Containers - (10:00)
Business Packages:
- 12.0 - Intro -(01:00)
- 12.1 - Design Philosophies, Policies, & Guidelines -(12:00)
- 12.2 - User Data Models & API Precision -(18:00)
- 12.3 - Data Model Validation -(08:00)
- 12.4 - User CRUD Data Business Package APIs -(27:00)
- 12.5 - User Core Business Package APIs -(08:00)
Testing Data Business Packages:
- 13.0 - Intro - (01:00)
- 13.1 - Support for Starting and Stopping Containers - (14:00)
- 13.2 - Support for Starting & Stopping a Unit Test - (11:00)
- 13.3 - Write User CRUD Data Unit Tests - (12:00)
Rest API:
- 14.0 - Intro - (01:00)
- 14.1 - Writing User Web Handlers - (14:00)
- 14.2 - Support for Starting & Stopping an Integration Test - (04:00)
- 14.3 - Write Integration Tests for Users - (11:00)
Open Telemetry:
- 15.0 - Intro -(01:00)
- 15.1 - Integrate OTEL Web Handler into the Framework -(12:00)
- 15.2 - Integrate OTEL into Service Startup -(09:00)
- 15.3 - Add Zipkin into POD -(11:00)
- 15.4 - Add Tracing Calls Inside Functions to Trace -(08:00)
Review Service Project:
- 16.0 - Intro - (01:00)
- 16.1 - Check For Dependency Upgrades - (07:00)
- 16.2 - Rebuild and Run the Project - (07:00)