Skip to main content
CF

Ultimate Go: Software Design with Kubernetes 2.0

22h 32m 42s
English
Paid

This course shows you how to build Go services with Domain Driven Design and Data Oriented Architecture. You write code from the start as Bill Kennedy guides you through each design choice and step. You see how each part fits into a working service.

You also learn how to run and manage your service in Kubernetes. You deploy each feature as you build it. The full code lives in a public repo so you can review it and try new ideas on your own.

What You Learn

You learn how to design clear service boundaries. You build small parts that fit together. You see how data shapes your code and how to keep your service simple and safe.

  • Model domains in Go with clear rules.
  • Structure code around data flow.
  • Build endpoints that are easy to test.
  • Deploy and update services in Kubernetes.

How the Course Works

You code along with the lessons. Each step adds one new idea. This helps you see why each choice matters. You push new features to Kubernetes so you can watch them run.

Hands-On Practice

You write, run, and test Go code in small pieces. You check how each part behaves before you move on. This keeps the service easy to change.

Kubernetes Use

You deploy each change to a live cluster. You learn how pods, deployments, and services work. You also learn how to read logs and debug issues in the cluster.

What You Need

You should know the basics of Go. You should also know how to use the command line. Some experience with Docker helps but is not required.

Additional

https://github.com/ardanlabs/service6-video

About the Author: Ardan Labs

Ardan Labs thumbnail

Ardan Labs is a US training company founded by William Kennedy, focused almost entirely on Go (Golang) and the systems-engineering disciplines around it. Bill Kennedy is one of the most cited Go educators alive — co-author of Go in Action (Manning), maintainer of the Ardan Labs blog, and the lead instructor on a multi-track Go syllabus that runs from beginner through ultimate-Go advanced engineering.

The CourseFlix listing under this source carries nineteen Ardan Labs courses — covering Go language fundamentals, concurrency, advanced engineering patterns, Kubernetes (Bill teaches Go as the implementation language for cloud infrastructure), and the data-engineering / AI tracks Ardan added in recent years. Material is paid and aimed at engineers serious about Go as a career-defining language rather than as a syntax pickup.

Watch Online 55 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 55 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: 1.1 Design Philosophy, Guidelines, What to Expect
All Course Lessons (55)
#Lesson TitleDurationAccess
1
1.1 Design Philosophy, Guidelines, What to Expect Demo
09:52
2
1.2 Tooling and Images to Install
10:44
3
2.1 Project Layers, Policies, and Guidelines
21:35
4
2.2 Prepare Project
06:04
5
2.3 Build Service with Logging
24:00
6
3.1 Clusters, Nodes, Pods
13:13
7
3.2 Start the Kubernetes Cluster
09:23
8
3.3 Create/Build Dockerfile for the Service
16:28
9
3.4 Create/Apply K8s Deployment for the Service
27:00
10
4.1 Understanding the Go Scheduler
20:04
11
4.2 Understanding CPU Quotas
12:01
12
4.3 Adding Quotas and Adjusting GOMAXPROCS
15:27
13
5.1 Configuration
24:04
14
5.2 Debugging / Metrics
22:40
15
5.3 Shutdown Signaling and Load Shedding
09:42
16
6.1 Basic Structure of an HTTP Router
21:47
17
6.2 Liveness and Readiness Handlers
11:13
18
6.3 Customize the Router
22:21
19
6.4 Middleware Support
07:50
20
6.5 Sending Responses
04:32
21
7.1 Logging
31:57
22
7.2 Error Handling
44:44
23
7.3 Panic Handling
14:53
24
7.4 Metrics
28:24
25
8.1 Understanding JWT
19:47
26
8.2 Private/Public Key Generation
09:04
27
8.3 Token Generation
15:11
28
8.4 Token Signature Validation with OPA
26:57
29
9.1 Key Store Package
09:39
30
10.1 Auth Package
45:07
31
10.2 Auth Unit Test
27:55
32
10.3 Add Middleware
35:43
33
10.4 Auth Service
50:55
34
10.5 Auth Client
51:10
35
11.1 Architecture Review
33:05
36
11.2 Data Flow Trust vs Non-Trust
15:42
37
12.1 Kubernetes Support for Postgres
16:58
38
12.2 Create Database Package
16:33
39
12.3 Update Readiness Handler to Perform DB Checks
33:28
40
13.1 Maintaining Database Schemas and Seeds
15:42
41
13.2 Admin Tooling and Init Containers to Automate Migrations
11:01
42
13.3 Code Cleanup and Changes
01:24:56
43
14.1 User Business Domain Support
01:06:00
44
14.2 User Storage Domain Support
27:44
45
14.3 User App Domain Support
01:03:03
46
14.4 User API Domain Support
27:43
47
15.1 Starting and Stopping Containers
16:33
48
15.2 Database Testing Support
15:37
49
15.3 Unit and API Testing Support
23:51
50
15.4 Write User Business Test
21:44
51
15.5 Write User API Tests
26:24
52
16.1 Delegate System
15:26
53
16.2 Transaction System
55:52
54
17.1 Integrate OTEL into the Project
19:21
55
18.1 Check For Dependency Upgrades, Rebuild, Run
24:33
Unlock unlimited learning

Get instant access to all 54 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

Frequently asked questions

What are the prerequisites for this course?
Prospective students should have a basic understanding of Go programming and be comfortable using the command line. While experience with Docker is beneficial, it is not a strict requirement for this course.
What type of projects will I build during the course?
You will build Go services with a focus on Domain Driven Design and Data Oriented Architecture. The course includes practical exercises such as creating Dockerfiles, deploying services to Kubernetes, and implementing features like JWT authentication and database connectivity using Postgres.
Who is the target audience for this course?
The course is aimed at software developers who have foundational Go knowledge and are interested in advancing their skills in service design and Kubernetes deployment. It is particularly useful for those looking to apply Domain Driven Design principles in a microservices architecture.
How does this course compare to other Go programming courses?
This course specifically focuses on integrating Go services with Kubernetes, using Domain Driven Design and Data Oriented Architecture. Unlike general Go programming courses, it emphasizes practical deployment skills and understanding how data flow shapes service design.
What specific tools or platforms will I learn to use?
You will learn to use Kubernetes for running and managing services, understand Docker for containerization, and apply tools like OpenTelemetry (OTEL) for project integration. The course also covers configuring and debugging using Kubernetes tools.
What topics are not covered in this course?
The course does not delve into the basics of Go programming or provide extensive coverage of Docker beyond its application in deploying Go services. It assumes you already have foundational knowledge in these areas.
What is the time commitment for completing this course?
The course consists of 55 lessons and includes coding exercises that you complete alongside the lessons. The exact time commitment can vary based on your pace and prior experience, but it is designed to be hands-on and thorough, requiring a significant investment of time to practice and understand the material.