Skip to main content
CF

Building Production-Ready Services with gRPC and Go

11h 23m 33s
English
Paid

The course "Building Production-Ready Services with gRPC and Go" covers the development of high-performance services using gRPC and the Go language. It includes 56 lessons and is aimed at both beginner and experienced developers. The course explores topics such as building gRPC services, data streaming, authentication, SSL/TLS, interceptors, load balancing, and testing. The course also includes exercises and demonstrates how to deploy services in Kubernetes.

Additional

https://github.com/cshep4/grpc-course/tree/main

About the Author: ByteSizeGo

ByteSizeGo thumbnail

ByteSizeGo is a Go-focused course platform run by Aaron Lee, focused on the production / debugging side of Go engineering rather than language tour material. The platform's distinctive contribution is the Foundations of Debugging series, which teaches the systematic skill of debugging Go services in production rather than relying on ad-hoc print statements.

The CourseFlix listing carries six ByteSizeGo courses: Foundations of Debugging for Golang, The Ultimate Guide to Debugging With Go, The Anatomy of Go, Building Production-Ready Services with gRPC and Go, AI Engineering with Go, and The Art of Command Line Interfaces. Material is paid and aimed at working Go developers ready to deepen the operational side of their craft.

Watch Online 49 lessons

This is a demo lesson (10:00 remaining)

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

View Pricing
0:00
/
#1: Welcome!
All Course Lessons (49)
#Lesson TitleDurationAccess
1
Welcome! Demo
00:42
2
What are Protocol Buffers and What are the Benefits?
09:21
3
What is gRPC?
07:15
4
Types of gRPC APIs
01:55
5
Protoc Tool & Generating Code
08:09
6
Defining a gRPC Service Contract
05:26
7
Implementing a Server
10:23
8
Implementing a Client
05:17
9
Error Handling
07:06
10
Exercise Solution
18:02
11
Running a Server Correctly
10:23
12
Implementing Server Streaming
13:26
13
Implementing Client Streaming
13:58
14
Implementing Bi-Directional Streaming
14:11
15
Exercise Solution
18:10
16
What is SSL/TLS?
06:32
17
Implementing Server-side TLS in gRPC
11:01
18
Implementing mTLS in gRPC
10:45
19
Exercise Solution
08:52
20
Interceptors - Introduction, Client Interceptors, Server Interceptors
17:06
21
Setting Deadlines/Timeouts
07:38
22
CallOptions & Metadata
13:36
23
API key Authorization via Interceptors
32:05
24
Auth via CallCredentials
10:20
25
Exercise Solution
25:43
26
Client Service Config & Timeouts
11:13
27
Automatic Client Retries
13:30
28
Introduction to Client-Side Load Balancing
03:29
29
Round Robin Load Balancing
15:46
30
Creating a Custom Load Balancing Policy
25:05
31
Making gRPC Requests via Postman
05:35
32
Making gRPC Requests via gRPCurl
11:43
33
Creating Unit Tests for RPCs - Part 1 (Unary)
30:14
34
Creating Unit Tests for RPCs - Part 2 (Streaming)
34:42
35
Creating Integration/End-to-End Tests for gRPC Services - Part 1 (Unary)
27:17
36
Creating Integration/End-to-End Tests for gRPC Services - Part 2 (Streaming)
19:37
37
Exercise Solution
25:52
38
What is Docker & Containerising Go Services
10:49
39
What is Kubernetes & What do I Need to do to Deploy There?
19:44
40
TLS & Automatic Certificate Renewal Using LetsEncrypt
22:59
41
Exposing a gRPC Service Part 1 - via LoadBalancer Service
07:10
42
Exposing a gRPC Service Part 2 - via Ingress
10:15
43
Exposing a gRPC Service Part 3 - via Cloudflare Tunnel
18:39
44
Challenges with Maintaining Protobuf at Scale & What is Buf?
08:01
45
Example Protobuf Registry Walkthrough
06:02
46
ConnectRPC - Server & Client implementation in Go
22:00
47
ConnectRPC - Client implementation for Web
17:00
48
Buf Schema Registry, Dependencies & Protovalidate
15:47
49
Exercise Solution
13:42
Unlock unlimited learning

Get instant access to all 48 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 enrolling in this course?
The course is designed for both beginner and experienced developers. However, a basic understanding of the Go programming language and familiarity with general programming concepts will be beneficial. Prior knowledge of network protocols and software development is helpful but not mandatory, as the course provides foundational insights into gRPC and Protocol Buffers before diving into more complex topics.
What specific projects or exercises will I complete during the course?
Throughout the course, students will engage in various exercises, such as implementing gRPC services and clients, handling errors, and deploying services in Kubernetes. The course includes practical tasks like implementing server and client streaming, using interceptors, and creating unit and integration tests for RPCs. These hands-on activities are designed to reinforce the theoretical aspects covered in the lessons.
Who is the target audience for this course?
This course is aimed at developers who wish to build high-performance, production-ready services using gRPC and Go. It caters to both beginners looking to enter the field of service-oriented architecture using modern tools, and experienced developers seeking to enhance their skills in gRPC, Go, and associated deployment strategies such as Kubernetes.
How does the depth and scope of this course compare to similar offerings?
The course provides an extensive overview of building production-ready services with gRPC in Go, covering a broad range of topics from implementing basic server-client communication to advanced concepts like interceptors, SSL/TLS encryption, and load balancing. Its focus on practical deployment in Kubernetes and testing strategies offers a comprehensive learning experience compared to courses that may only cover basic gRPC functionalities.
What platforms or tools will be used in this course?
Participants will work with several tools and platforms throughout the course, including Protocol Buffers for defining service contracts, the Protoc tool for code generation, Docker for containerization, and Kubernetes for deployment. Additionally, the course covers making gRPC requests via tools like Postman and gRPCurl, while also exploring load balancing strategies and the Buf schema registry.
Are there any topics not covered in this course?
While the course covers a wide range of topics related to gRPC services and Go, it does not cover other programming languages or frameworks outside of Go. Additionally, it does not delve into non-gRPC communication protocols or front-end development frameworks, as the focus is on backend service development and deployment.
What is the estimated time commitment for completing this course?
The course consists of 56 lessons, with a mix of theoretical content and practical exercises. While the exact time commitment may vary depending on prior knowledge and pace of learning, students should expect to dedicate several weeks to fully grasp the material and complete the exercises. Engaging with the content regularly will help in understanding and applying the concepts effectively.