Workshop: Modern distributed systems with gRPC in ASP.NET Core 3

gRPC is a high-performance, cross-platform framework for building distributed systems and APIs. It’s an ideal choice for communication between microservices, internal network applications, or mobile devices and services. With the release of ASP.NET Core 3, Microsoft has added first-class support for creating gRPC services. This workshop will help you get started building, deploying and managing gRPC servers and clients on multiple platforms.

Technologies covered

ASP.NET Core 3, gRPC, Protobuf, Visual Studio, .NET CLI, Docker, Kubernetes, services meshes, monitoring, distributed tracing

Day 1: Building gRPC applications in ASP.NET Core

  • Introduction to Protobuf and gRPC
  • gRPC in ASP.NET Core 3.1
    • gRPC servers
    • gRPC clients
  • Request/Reply services
  • Streaming services
    • Server-streaming
    • Client-streaming
    • Bidirectional streaming
  • Migrating WCF applications to gRPC

Day 2: Security, Deployment and Observability

  • gRPC’s security model
    • Channel authentication with TLS
    • Call authentication with tokens
  • Running gRPC services in production
    • Self-hosted
    • Docker
    • Kubernetes
    • Service mesh (using Linkerd as an example)
  • Observability and monitoring
    • gRPC Health checks
    • Distributed tracing

Requirements

Attendees will be expected to be familiar with .NET and C#, and bring a computer with the latest .NET Core 3.1 SDK and an IDE (VS2019, VS Code or Rider). For day two a local Docker installation that supports Kubernetes is strongly recommended (e.g. Docker Desktop for Windows or Mac).