Overview
Go is a refined C programming language that includes memory safety, structural typing, and more. gRPC is a remote procedure call system. With gRPC, users can build API and connect services through microservice styled architecture. Using Go and gRPC enables the creation of routing systems for automated traffic control.
This instructor-led, live training (online or onsite) is aimed at web developers who wish to build microservices and API using Go.
By the end of this training, participants will be able to:
- Generate client and server code with gRPC plugins.
- Provide SSL security for the gRPC application.
- Implement advanced streaming with custom API.
Format of the Course
- Interactive lecture and discussion.
- Lots of exercises and practice.
- Hands-on implementation in a live-lab environment.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
Requirements
- Go programming experience
Audience
- Web Developers
Course Outline
Introduction
gRPC Concepts
- Sychronous vs asynchronous
- API surface
- RPC Life cycle
gRPC vs REST
- gRPC API types
- REST paradigms
Preparing the Development Environment
- Installing and configuring gRPC
- Installing and configuring Go Micro
- Installing Docker
- Installing Kubernetes
- Setting up Go dependencies
- Setting up a Go HTTP server
gRPC Streaming
- Implementing unary API client and server
- Implementing server streaming API client and server
- Implementing client streaming API client and server
- Implementing bi-directional API client and server
Go Microservices
- JSON marshalling Go structures
- JSON umarshalling Go structures
- Building Docker images for Go microservices
- Running containerized locally
- Optimizing the Docker images
Microservice Ochrestration with Kubernetes
- Deploying Go microservices to Kubernetes
- Implementing descriptors
- Scaling deployments
- Rolling updates
gRPC Troubleshooting and Security
- Using Error Handling
- Tracking with deadlines
- Creating SSL certificates for SSL encryption
Summary and Conclusion