From 4a146513f4cd9d879a7a087547748579f759a405 Mon Sep 17 00:00:00 2001 From: JasterV <49537445+JasterV@users.noreply.github.com> Date: Tue, 10 Jun 2025 18:48:58 +0200 Subject: [PATCH] first commit --- .github/dependabot | 6 + .github/workflows/publish.yml | 32 ++ docs/assets/grpc-logo.png | Bin 0 -> 108428 bytes docs/assets/rpc_architecture.png | Bin 0 -> 91883 bytes docs/assets/rpc_types.svg | 134 ++++++ docs/assets/rust.svg | 47 +++ docs/assets/tonic.svg | 4 + docs/assets/tower-layers-diagram.svg | 124 ++++++ docs/assets/tower.png | Bin 0 -> 7943 bytes docs/learning_grpc.md | 597 +++++++++++++++++++++++++++ mkslides.yml | 6 + 11 files changed, 950 insertions(+) create mode 100644 .github/dependabot create mode 100644 .github/workflows/publish.yml create mode 100644 docs/assets/grpc-logo.png create mode 100644 docs/assets/rpc_architecture.png create mode 100644 docs/assets/rpc_types.svg create mode 100644 docs/assets/rust.svg create mode 100644 docs/assets/tonic.svg create mode 100644 docs/assets/tower-layers-diagram.svg create mode 100644 docs/assets/tower.png create mode 100644 docs/learning_grpc.md create mode 100644 mkslides.yml diff --git a/.github/dependabot b/.github/dependabot new file mode 100644 index 0000000..8ac6b8c --- /dev/null +++ b/.github/dependabot @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..fa615a3 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,32 @@ +on: + push: + branches: + - main + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +jobs: + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/configure-pages@v5 + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + - run: pip install mkslides + - run: mkslides build docs/ + - uses: actions/upload-pages-artifact@v3 + with: + path: ./site + - id: deployment + uses: actions/deploy-pages@v4 diff --git a/docs/assets/grpc-logo.png b/docs/assets/grpc-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9fd3286bdad8e6766c67176f21e4ff09cae7f409 GIT binary patch literal 108428 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�r=!}jrM_C#d#l;U#MMj@;x$}DL)&VA@}{p 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%0DU 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 lgpIucoayafCO(X4|sM>ZpD) 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 T+ys5zNf~24e&lhpsq6k1v`Z1G literal 0 HcmV?d00001 diff --git a/docs/assets/rpc_types.svg b/docs/assets/rpc_types.svg new file mode 100644 index 0000000..12fedb2 --- /dev/null +++ b/docs/assets/rpc_types.svg @@ -0,0 +1,134 @@ +UnaryServer streamingClient streamingBidirectional streamingClientServerClientstreamServerClientstreamServerstreamstreamClientServer Request ResponseRequestResponse + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/assets/rust.svg b/docs/assets/rust.svg new file mode 100644 index 0000000..0091b5a --- /dev/null +++ b/docs/assets/rust.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/tonic.svg b/docs/assets/tonic.svg new file mode 100644 index 0000000..4425d55 --- /dev/null +++ b/docs/assets/tonic.svg @@ -0,0 +1,4 @@ + + + + diff --git a/docs/assets/tower-layers-diagram.svg b/docs/assets/tower-layers-diagram.svg new file mode 100644 index 0000000..6b95260 --- /dev/null +++ b/docs/assets/tower-layers-diagram.svg @@ -0,0 +1,124 @@ + + + + + + + + + +ClientTimeoutTracingAuthStarsky Service Request Response + + + + + + + + + \ No newline at end of file diff --git a/docs/assets/tower.png b/docs/assets/tower.png new file mode 100644 index 0000000000000000000000000000000000000000..1e366467410dfa155c18d46f63a02fb0690cc11c GIT binary patch literal 7943 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 literal 0 HcmV?d00001 diff --git a/docs/learning_grpc.md b/docs/learning_grpc.md new file mode 100644 index 0000000..c7e72f5 --- /dev/null +++ b/docs/learning_grpc.md @@ -0,0 +1,597 @@ +--- +--- +# Learning gRPC + +Victor Martinez + +--- +## First, what is RPC? + +An idea to replicate to extend transfer of control and transmission of data from one machine to another. + + +http://birrell.org/andrew/papers/ImplementingRPC.pdf + + + +note: + +At the time, building applications that required communicating with a separate machine was difficult and required big expertise, so much that only a few network experts were designated to. +One of the aims of this RPC implementation was to make it highly efficient (network-wise) as well as as simple to use as non-remote procedures. + +They believed that by providing a simple interface and tool for machine to machine communications, it would make it more accessible for less expert people to implement distributed applications. + +Also, they aimed to provide secure communications with RPC. At the time, none of the implemented protocols inside their network had no security at all to the point where passwords were being sent as plain text. + +The concept dates back to 1976 [1] + +[1] WHITE, J. E. A high-level framework for network-based resource sharing. In Proc. National Computer Conference, (June 1976). + +--- +![image](assets/rpc_architecture.png) + + +http://birrell.org/andrew/papers/ImplementingRPC.pdf + + +note: + +Back in the time they already used a tool to auto-generate the client and server stubs: + +`But the user-stub and server-stub are automatically generated, by a program called Lupine.` + +--- +### Interface Definition Language + +```protobuf +struct Phone { + 1: i32 id, + 2: string number, +} + +service PhoneService { + Phone findById(1: i32 id), + list findAll() +} +``` + +

+An example of Thrift, an IDL used in Facebook's RPC framework +

+ + +https://github.com/facebook/fbthrift + + + +note: Many IDLs have been developed over time. Mozilla, Microsoft, IBM... and more developed their own internal RPC frameworks with their own IDLs [2] + +In the paper mentioned above, they wrote the interface using the Mesa interface modules feature: + +`This generation is specified by use of Mesa interface modules. These are the basis of the Mesa (and Cedar) separate compilation and binding mechanism [9]. An interface module is mainly a list of procedure names, together with the types of their arguments and results` + +[2] https://en.wikipedia.org/wiki/Interface_description_language + +--- + +grpc + +*gRPC is a modern open source high performance Remote Procedure Call (RPC) framework that can run in any environment.* + + +https://grpc.io/ + + +note: google Remote procedure calls + +"gRPC was initially created by Google, which has used a single general-purpose RPC infrastructure called **Stubby** to connect the large number of microservices running within and across its data centers. In March 2015, Google decided to build the next version of Stubby and make it open source. The result was **gRPC**" + +--- + +### Why a framework? + +gRPC dictates how you will build your network interface. + +Code is generated for you batteries included, you must only fill the gaps. + +note: All the underlying details about networking, encoding & more is handled for you. + +It is more a framework in the sense of servers. They must use the generated Server Stub, with the only need of implementing the Service interfaces. + +Clients will use the generated client Stub. For them the gRPC code will be less intrusive and will feel more like a library + +Some implementations wrap the original C library, some don't. + +--- + +### Built on top of HTTP2 + +So we get for free +- **Multiplexing** +- Header **compression** +- **Server push** +- **TLS** + +note: Explain multiplexing and server push + +--- + +### 4 types of RPC supported + +![image](assets/rpc_types.svg) + +note: Explain that each of these RPC types can be specified on the protobuffers IDL + +--- +### Metadata + +Key-value pairs of data used to provide additional information about a call. + +Implemented using HTTP/2 headers. + + +https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md + + +note: gRPC metadata can be sent and received by both the client and the server. Headers are sent from the client to the server before the initial request and from the server to the client before the initial response of an RPC call. + +On the link I show, they document the supported values for metadata + +Can be useful for: Authentication & tracing + +--- +### And many more features + +- **Flow control** for streaming +- RPC automatic & manual **cancellations** +- **Reflection** (Service discoverability & ease debugging) +- **Load balancing** (Client requests can be load balanced between multiple servers) +- Call **retries** +- **Health checking** (Service-specific health checking) +- **Interceptors** (Middleware for RPCs) + +note: It is important to explain that these features might differ from language to language, since it depends completely on how each of them implements gRPC + +- **Flow control** is a mechanism to ensure that a receiver of messages does not get overwhelmed by a fast sender. Flow control prevents data loss, improves performance and increases reliability. + +- **Reflection**: Explain that we won't go in detail about reflection but that I believe we should research more about it since it can be useful for better developer experience + +- **Health check**: gRPC specifies a standard service API ([health/v1](https://github.com/grpc/grpc-proto/blob/master/grpc/health/v1/health.proto)) for performing health check calls against gRPC servers. An implementation of this service is provided, but you are responsible for updating the health status of your services. It is pluggable, and some languages might not provide it. +--- +### Protocol buffers + +*Protocol Buffers are language-neutral, platform-neutral extensible mechanisms for serializing structured data.* + +https://protobuf.dev/ + +note: Explain that it is the default binary serialization format supported by gRPC + +It is also developed by google. + +--- + +### They are a combination of + +- The **Interface Definition Language** +- The compiler that **generates code** from IDL files +- Language-specific **runtimes** +- The **serialization format** + +note: Here we will focus on the IDL and the tooling, we won't focus on the serialization format. + +--- +### Protobufs as an Interface Definition Language +--- + +### Defining a service + +```protobuf +// service/v1/service.proto +syntax = "proto3"; + +package service.v1; + +import "amend_termination/request/v1/request.proto"; +import "amend_termination/response/v1/response.proto"; + +service PolicyManagementService { + rpc AmendTermination(amend_termination.request.v1.AmendTerminationRequest) returns (amend_termination.response.v1.AmendTerminationResponse); +} +``` + +--- +### Defining messages + +```protobuf +// amend_termination/request/v1/request.proto +syntax = "proto3"; + +package amend_termination.request.v1; + +import "terminate_policy/request/v1/request.proto"; +import "google/protobuf/timestamp.proto"; + +message AmendTerminationRequest { + string policy_id = 1; + google.protobuf.Timestamp requested_at = 2; + google.protobuf.Timestamp interruption_at = 3; + optional string description = 4; + oneof reason { + terminate_policy.request.v1.CustomerTerminateReason customer = 5; + terminate_policy.request.v1.PrimaTerminateReason prima = 6; + } +} +``` + +--- +### The protoc compiler + +Compiles `.proto` files into code. +Supports plugins for different languages. + +```bash +protoc --proto_path=src --python_out=build/gen src/foo.proto +``` + +note: `--proto_path` specifies the source directory, `--*_out` the destination directory, and the rest is the path to your `.proto` + +--- +### Buf CLI + +- A **linter** for proto files +- A **formatter** for proto files +- A system to organize your proto files by **workspaces** +- A feature to check for **breaking changes** in your definitions +- A **plugin system** to compile proto files into multiple formats +- **Editor integration** +- And more! + + +https://buf.build/product/cli + + +note: Explain that it builds on top of protoc. Be very short here, just mention the tool briefly. It is important because we use it. + +--- + +### Buf CLI + +```bash +buf format +``` + +```bash +buf lint +``` + +```bash +buf breaking --against ".git#branch=master" +``` + + +--- +### Remarkable features of Protocol buffers + +- **Strongly typed** data +- **Language** and **platform neutral** +- **Compact binary format** +- **Backward and Forward compatibility** +- Support for **RPC service definition** + +note: Give a short example of why it is backward and forward compatible. Mention tags. + +--- +## gRPC in the Rust ecosystem + + +grpc + +:heart: + + +rust logo + +--- +# Tonic + +tonic logo + +
+ + +https://github.com/hyperium/tonic + + +note: Built on top of Tower, Tonic is a gRPC over HTTP/2 implementation focused on **high performance**, **interoperability**, and **flexibility**. + +It has first class support for async/await. + +The main goal of tonic is to provide a generic gRPC implementation over HTTP/2 framing. + +Codegen tools need to be used to generate the client and server stubs that will encode and decode the binary data and deal with other gRPC features such as streaming. + +--- +### Features + +- **TLS** +- **Load balancing** +- RPC cancellation via **timeouts** +- Request/Response **compression** +- Bidirectional **streaming** +- **Health check** of services +- **Interceptors** +- **Reflection** +- Client & Server **stub generation** +- Extensible via **Tower** services + +note: These are only a few notable features, it provides more for sure + +--- +### Generate code from Proto definitions :gear: + +```rust +// build.rs + +let mut prost_build = prost_build::Config::new(); + +prost_build.compile_protos( + &[""], + &["proto"], +)?; + +tonic_build::configure() + .compile_protos( + &["proto/es_policy_grpc/service/v1/service.proto"], + &["proto"], + )?; +``` + +note: First we need to talk about how do we generate code from our protobuf definitions. + +--- +### Expose the generated code as a library + +```rust +// lib.rs + +pub mod policy_service { + pub mod v1 { + include!(concat!(env!("OUT_DIR"), "/es_policy_grpc.service.v1.rs")); + } +} +``` + +note: We need to expose the generated code through our lib.rs + +--- +### Auto generated services + +```rust +pub trait PolicyManagementService { + async fn withdraw_policy( + &self, + request: Request, + ) -> Result, Status> + // ... +} +``` + +note: We get a trait generated from the Protobuf Service definition + +--- +### Building a server + +```rust +// main.rs + +let server = + // gRPC server implemented on top of HTTP2 + Server::builder() + .add_service( + // Policy Management Server Stub + PolicyManagementServiceServer::new( + // Implementation of the service + PolicyManagementServiceImpl::new(application) + ) + ); + +let listener = TcpListener::bind(("0.0.0.0", grpc_port)).await?; + +server.serve(listener).await?; +``` + +note: Simple build of a Tonic Server. We will dive into how to add middleware later. + +Highlight the fact that at the end of the day the gRPC server will be listening to a TCP port like any other HTTP2 server. + +--- +### Building a client + +```rust +let mut client = + // Auto-generated client stub + PolicyManagementServiceClient::connect("http://[::1]:50051").await?; + +let mut request = tonic::Request::new(GenerateContractRequest { + // .. +}); + +let token: MetadataValue<_> = "Bearer some-auth-token".parse()?; + +request.metadata_mut.insert("authentication", token); + +let _response = client.generate_contract(request).await?; +``` + +note: What if we wanted to add those headers for every request? Now we talk about interceptors + +--- +### Interceptors + +Interceptors are similar to middleware but with less flexibility. +They allow you to: +- Add/remove/check items in the metadata of each request. +- Cancel a request with a `Status`. +--- + +### Interceptors in practice + +```rust +fn check_auth(req: Request<()>) -> Result, Status> { + match req.metadata().get("authorization") { + Some(t) if is_valid(t) => Ok(req), + _ => Err(Status::unauthenticated("No valid auth token")), + } +} + +let svc = PolicyManagementServiceServer::with_interceptor( + PolicyManagementServiceImpl::new(application), + check_auth +); +``` + +--- +### Health checking gRPC services + +Tonic provides a health check service implementing a standard gRPC health checking protocol. + + +https://github.com/grpc/grpc/blob/master/doc/health-checking.md + + +note: A GRPC service is used as the health checking mechanism. + +Since it is a GRPC service itself, doing a health check is in the same format as a normal rpc. + +It has rich semantics such as per-service health status. + +The server has full control over the access of the health checking service. + +--- +### Health service definition + +```protobuf +service Health { + rpc Check(HealthCheckRequest) returns (HealthCheckResponse); + + rpc Watch(HealthCheckRequest) returns (stream HealthCheckResponse); +} +``` + +

+This definition is provided by the official gRPC docs, each language runtime might implement it or not. +

+ + +https://github.com/grpc/grpc/blob/master/doc/health-checking.md + +--- +### Enabling the health service + +```rust +let (health_reporter, health_service) = health_reporter(); + +health_reporter + .set_serving::>() + .await; + +Server::builder() + // Add other layers + .layer(..) + .add_service(health_service) + .serve(addr) + .await?; +``` + +note: Make it clear that we are using the `tonic-health` crate which doesn't come by default with `tonic`. + +--- +**What about more complex middleware? What if we need to also intercept responses?** + +Let's dive into Tower + +--- +# Tower + +tower + +note: Tower is a library of modular and reusable components for building robust networking clients and servers. + +Tonic is built on top of Tower + +It's core abstraction is the Service, which we see in the next slide. + +It exposes already a set of basic reusable services to solve common networking patterns such as timeouts and rate limiting. + +--- +### Tower service + +```rust +pub trait Service { + type Response; + type Error; + type Future: Future>; + + fn poll_ready( + &mut self, + cx: &mut Context<'_>, + ) -> Poll>; + + fn call(&mut self, req: Request) -> Self::Future; +} +``` + +note: Tower’s fundamental abstraction. + +An asynchronous function from a `Request` to a `Response`. + +The `Service` trait is a simplified interface making it easy to write network applications in a modular and reusable way, decoupled from the underlying protocol. + +It immediately returns a `Future` representing the eventual completion of processing the request. + +The processing may depend on calling other services. At some point in the future, the processing will complete, and the `Future` will resolve to a response or error. + +--- +### Layers + +```rust +pub trait Layer { + type Service; // This can be a middleware + + fn layer(&self, inner: S) -> Self::Service; +} +``` + +note: Mechanism to layer services. It allows us to wrap a generic service with another one. It can be used to wrap a reusable service which is meant to act as a middleware around another service. + +--- +### Building a layered service + +```rust +ServiceBuilder::new() + .timeout(Duration::from_secs(10)) + .layer(OpenTelemetryServerTracingLayer::new_for_grpc()) + .layer(JwtAuthLayer::new(jwks_client, "starsky")) + .named_layer(StarskyServer::new(starsky_service)); +``` + +note: A real example of a layered service from Starsky. Slightly simplified for the sake of the presentation. +The flow will be the following: +Timeout -> SSRHL -> Tracing -> SSRHL -> Auth -> Starsky service + +--- + +tower +--- + +Now let's dive into real middleware implementations + +--- +### Authentication Layer + +TODO + +--- +### Tracing Layer + +TODO diff --git a/mkslides.yml b/mkslides.yml new file mode 100644 index 0000000..7a90f83 --- /dev/null +++ b/mkslides.yml @@ -0,0 +1,6 @@ +slides: + theme: league + highlight_theme: vs +revealjs: + history: true + slideNumber: c/t