Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Go kit - A Distributed Programming Toolkit
Search
Mark Wolfe
November 25, 2015
Programming
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Go kit - A Distributed Programming Toolkit
Presented at the microservices meetup in Melbourne, Australia
Mark Wolfe
November 25, 2015
More Decks by Mark Wolfe
See All by Mark Wolfe
IP Networking in AWS
wolfeidau
0
84
Getting Into Vue.js
wolfeidau
0
210
AWS Automation With Lambda
wolfeidau
1
110
Ansible and Cloudformation
wolfeidau
1
250
Docker Security
wolfeidau
0
210
Building a Proxy in Go
wolfeidau
2
430
Using JWT to Authenticate Microservices
wolfeidau
1
270
Managing Secrets IN AWS
wolfeidau
0
170
ESPlant Workshop Firmware Overview and Demos
wolfeidau
0
160
Other Decks in Programming
See All in Programming
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
780
カツオ、ご期待ください
suneo3476
0
180
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
410
APNsからLive Activityを開始する話
yumnumm
0
170
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
390
Jetpack Compose Mechanisms
skydoves
3
760
プロダクトコードからライブラリの境界を見つける
elmetal
PRO
0
110
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
The Rails Doctrine Decade
koic
2
570
JRuby: Past, Present, and Future
headius
0
230
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
740
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.6k
Featured
See All Featured
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
470
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
How to Talk to Developers About Accessibility
jct
2
570
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
600
The SEO identity crisis: Don't let AI make you average
varn
0
590
Testing 201, or: Great Expectations
jmmastey
46
8.3k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
320
The Curse of the Amulet
leimatthew05
3
15k
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