Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Go kit - A Distributed Programming Toolkit
Search
Mark Wolfe
November 25, 2015
Programming
0
140
Go kit - A Distributed Programming Toolkit
Presented at the microservices meetup in Melbourne, Australia
Mark Wolfe
November 25, 2015
Tweet
Share
More Decks by Mark Wolfe
See All by Mark Wolfe
IP Networking in AWS
wolfeidau
0
68
Getting Into Vue.js
wolfeidau
0
190
AWS Automation With Lambda
wolfeidau
1
90
Ansible and Cloudformation
wolfeidau
1
230
Docker Security
wolfeidau
0
190
Building a Proxy in Go
wolfeidau
2
380
Using JWT to Authenticate Microservices
wolfeidau
1
250
Managing Secrets IN AWS
wolfeidau
0
150
ESPlant Workshop Firmware Overview and Demos
wolfeidau
0
130
Other Decks in Programming
See All in Programming
SwiftDataを使って10万件のデータを読み書きする
akidon0000
0
240
なぜGoのジェネリクスはこの形なのか? - Featherweight Goが明かす設計の核心
qualiarts
0
260
React Nativeならぬ"Vue Native"が実現するかも?_新世代マルチプラットフォーム開発フレームワークのLynxとLynxのVue.js対応を追ってみよう_Vue Lynx
yut0naga1_fa
2
1.6k
pnpm に provenance のダウングレード を検出する PR を出してみた
ryo_manba
1
160
実践Claude Code:20の失敗から学ぶAIペアプログラミング
takedatakashi
18
8.9k
kiroとCodexで最高のSpec駆動開発を!!数時間で web3ネイティブなミニゲームを作ってみたよ!
mashharuki
0
930
CSC509 Lecture 08
javiergs
PRO
0
260
AI駆動で0→1をやって見えた光と伸びしろ
passion0102
1
860
品質ワークショップをやってみた
nealle
0
640
モテるデスク環境
mozumasu
3
1.3k
理論と実務のギャップを超える
eycjur
0
180
CSC305 Lecture 11
javiergs
PRO
0
280
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
4.9k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Optimizing for Happiness
mojombo
379
70k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
190
55k
The Invisible Side of Design
smashingmag
302
51k
We Have a Design System, Now What?
morganepeng
53
7.8k
How to train your dragon (web standard)
notwaldorf
97
6.3k
Building Adaptive Systems
keathley
44
2.8k
Writing Fast Ruby
sferik
630
62k
Designing Experiences People Love
moore
142
24k
Visualization
eitanlees
149
16k
Code Reviewing Like a Champion
maltzj
526
40k
Transcript
Go kit A Distributed Programming Toolkit
Intro • Mark Wolfe • DevOps at Versent • IoT
& Distributed Systems
go-kit?! • Composable • Opinionated • Service Orientated • Simple
to Deploy
Server Package • Go interfaces • Provides: • Encoding/Decoding •
Tracing and Health • Transport, Rate Limiting and Throttling • Discovery
Client Package • Go interfaces • Provides: • Encoding/Decoding •
Transport, Pooling, Rate Limiting & Circuit Breaker • Tracing
!Important • Circuit Breaker • Stops thundering herds • prevents
sending requests that are likely to fail • Rate Limiter • Enforce upper thresholds on request throughput
Logging • Levels, e.g. Info, Error • Stdout, Stderr •
Keyvals or JSON // Output: // foo=123 // level=info // level=info msg=hello // level=info msg=hello a=1 b=2
Discovery • Inbuilt Service Discovery • DNS Srv Record •
Etcd • Consul
Metrics! • Runtime, Application, Business • Counter, Histogram and Gauges
• Stdout, StatsD or Prometheus import "github.com/go-kit/kit/metrics/expvar" func main() { myCount := expvar.NewCounter("my_count") myCount.Add(1) }
Example Code!
Questions • @wolfeidau on Twitter • https://github.com/wolfeidau •
[email protected]
Links • Go Kit • Circuit Breaker Pattern • Dapper,
a Large-Scale Distributed Systems Tracing Infrastructure • The Zipkin distributed tracing project