Top Banner
@ Weaveworks Tom Wilkie, 14/03/2017 Weave Online Users Group
14

gRPC @ Weaveworks

Mar 22, 2017

Download

Technology

weaveworks
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: gRPC @ Weaveworks

@ WeaveworksTom Wilkie, 14/03/2017

Weave Online Users Group

Page 2: gRPC @ Weaveworks

Who Am I?

• Director Software Engineering at Weaveworks

• Home brewer

Previously:

• SRE for Google Analytics

• Founder/CTO at Acunu

• Engineer at XenSource

@tom_wilkie

https://github.com/tomwilkie

Page 3: gRPC @ Weaveworks

Work on https://cloud.weave.works, our service for exploring, deploying and monitoring Micro Services…

Page 4: gRPC @ Weaveworks

1. gRPC for Prometheus

Retriever

scraping

your jobs

Your DC

Weave Cloud

Frontend, Authenticator

Distributor

Ingester

Distributor…

IngesterIngester

DynamoDB S3 http://goo.gl/qsJlrQ

gRPC?

Page 5: gRPC @ Weaveworks

1. gRPC for Prometheus

Prometheus AWS ELB Nginx Cortexweavecortex

Page 6: gRPC @ Weaveworks

2. gRPC intra service

Retriever

scraping

your jobs

Your DC

Weave Cloud

Frontend, Authenticator

Distributor

Ingester

Distributor…

IngesterIngester

DynamoDB S3

gRPC?

gRPC?

gRPC?

Page 7: gRPC @ Weaveworks

3. gRPC monitoringhttps://github.com/weaveworks/common/blob/master/middleware/

grpc_instrumentation.go

Page 8: gRPC @ Weaveworks

3. gRPC monitoring

Page 9: gRPC @ Weaveworks

4. HTTP over gRPC

https://www.weave.works/turtles-way-http-grpc/https://github.com/weaveworks/common/tree/master/httpgrpc

FrontendBackendweavecortex

Client

HTTP

gRPC

- Frontend parses HTTP request - Sends generic gRPC request - Backend turns it back in HTTP

Page 10: gRPC @ Weaveworks

4. HTTP over gRPC

Page 11: gRPC @ Weaveworks

5. gRPC Streaming

• Cortex rolling upgrades

• Flush all data to S3

• Took >10mins per instance

Page 12: gRPC @ Weaveworks

5. gRPC Streaming

New system uses gRPC streaming to send data to other ingester.

Now takes ~14s per instance.

leaving instance

weavecortex joining instance

weavecortex

gRPC stream

Page 13: gRPC @ Weaveworks

1. gRPC for Prometheus

2. gRPC from Weave Cloud

3. gRPC monitoring

4. HTTP over gRPC

5. gRPC streaming

Page 14: gRPC @ Weaveworks

We’re hiring!London BerlinSan Francisco