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
56
Getting Into Vue.js
wolfeidau
0
180
AWS Automation With Lambda
wolfeidau
1
83
Ansible and Cloudformation
wolfeidau
1
220
Docker Security
wolfeidau
0
180
Building a Proxy in Go
wolfeidau
2
340
Using JWT to Authenticate Microservices
wolfeidau
1
240
Managing Secrets IN AWS
wolfeidau
0
120
ESPlant Workshop Firmware Overview and Demos
wolfeidau
0
110
Other Decks in Programming
See All in Programming
DMMプラットフォームにおけるTiDBの導入から運用まで
pospome
7
3k
Jetpack for KMP
fornewid
1
290
みんなのオブザーバビリティプラットフォームを作ってるんだがパフォーマンスがやばい #mackerelio #srenext
ne_sachirou
0
380
AHC035解説
terryu16
0
730
CSC307 Lecture 11
javiergs
PRO
0
240
feature環境をGitHub ActionsとCloudFormationでいい感じに管理する
nealle
2
310
Architectures with Lightweight Stores: New Rules and Options
manfredsteyer
PRO
0
100
Javaの現状2024夏 / Java current status 2024 summer
kishida
4
1.4k
日付と正規化
megmogmog1965
0
140
君たちはどうコードをレビューする (される) か / 大吉祥寺.pm
utgwkk
15
8.5k
データカタログ運用物語 〜令和6年夏の理想と現実〜
kuro_kurorrr
0
110
I/O Extended Android in Korea 2024 ~ Whats new in Android development tools
pluu
0
250
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
124
16k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
129
32k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
78
15k
What's in a price? How to price your products and services
michaelherold
239
11k
The MySQL Ecosystem @ GitHub 2015
samlambert
248
12k
10 Git Anti Patterns You Should be Aware of
lemiorhan
652
58k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.8k
Leading Effective Engineering Teams 2024
addyosmani
3
300
Bash Introduction
62gerente
607
210k
VelocityConf: Rendering Performance Case Studies
addyosmani
321
23k
GraphQLの誤解/rethinking-graphql
sonatard
59
9.6k
Why Our Code Smells
bkeepers
PRO
332
56k
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