Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Beyond HTTP, Breaking Free of The Web
Mark Wolfe
February 09, 2015
Technology
0
180
Beyond HTTP, Breaking Free of The Web
Talk I gave at APIdays in Sydney 2015 and Microservices Meetup
Mark Wolfe
February 09, 2015
Tweet
Share
More Decks by Mark Wolfe
See All by Mark Wolfe
IP Networking in AWS
wolfeidau
0
47
Getting Into Vue.js
wolfeidau
0
160
AWS Automation With Lambda
wolfeidau
1
75
Ansible and Cloudformation
wolfeidau
2
180
Docker Security
wolfeidau
0
170
Building a Proxy in Go
wolfeidau
3
280
Using JWT to Authenticate Microservices
wolfeidau
1
230
Managing Secrets IN AWS
wolfeidau
0
100
ESPlant Workshop Firmware Overview and Demos
wolfeidau
0
96
Other Decks in Technology
See All in Technology
森林情報のオープンデータと QGISでの利用
kou_kita
0
330
ECS on EC2 で Auto Scaling やってみる!
sayjoy
1
280
Oblivious Online Monitoring for Safety LTL Specification via Fully Homomorphic Encryption
anqou
0
380
漫画で使えそうな背景画像をblenderを使って作ってみた!
nokonoko1203
1
320
開発環境のセキュリティおよびCI/CDパイプラインのセキュア化
rung
PRO
12
5k
[Journal club] Vision Transformer with Deformable Attention
keio_smilab
PRO
0
110
フィンテック養成勉強会#24
finengine
0
340
テスト自動化を最速で軌道に乗せるために
nozomiito
0
150
Simplify Cloud Native Security with Trivy
knqyf263
0
730
EKS AnywhereとIAM Anywhereを組み合わせてみた
regmarmcem
0
410
ログラスを支える技術的投資の仕組み / loglass-technical-investment
urmot
9
2k
CityGMLとFBXの連携で地理空間のエンタメ化
soh_mitian
0
760
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
638
52k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
12
940
What’s in a name? Adding method to the madness
productmarketing
11
1.6k
The Web Native Designer (August 2011)
paulrobertlloyd
75
2k
How New CSS Is Changing Everything About Graphic Design on the Web
jensimmons
213
11k
YesSQL, Process and Tooling at Scale
rocio
157
12k
Learning to Love Humans: Emotional Interface Design
aarron
261
37k
Put a Button on it: Removing Barriers to Going Fast.
kastner
56
2.3k
How to Ace a Technical Interview
jacobian
267
21k
A Tale of Four Properties
chriscoyier
149
21k
Atom: Resistance is Futile
akmur
255
20k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
351
21k
Transcript
Beyond HTTP, Breaking Free of The Web Mark Wolfe
–From http://www.w3.org/DesignIssues/Architecture.html “The most fundamental specification of Web architecture, while
one of the simpler, is that of the Universal Resource Identifier, or URI.”
–From https://tools.ietf.org/html/rfc2616 “The Hypertext Transfer Protocol (HTTP) is an application
protocol for distributed, collaborative, hypermedia information systems.”
– From http://en.wikipedia.org/wiki/Application_programming_interface “In computer programming, an application programming interface
(API) is a set of routines, protocols, and tools for building software applications.”
APIs We Use != http DNS Used to resolve host
names Also used for service discovery MDNS SPDY
Wireshark Network protocol analyser Our window into the wonderful world
of protocols and APIs Available for Windows, OSX and Linux https://www.wireshark.org/ The wire doesn’t lie
DNS? Protocol uses UDP or TCP for transport Consists of
Questions and Answers Includes some information on authority Uses "intelligent retransmission” Small messages
DNS Continued.. Binary protocol Fixed header Payload uses a compact
self describing binary format TLV (type length value)
DNS Question
DNS Answer
DNS Exchange
HTTP Get Request
In Review Compact messages More likely to transit “wireless” networks
Extensible self describing binary payload Established encoding so others can introspect without a definition! Fast
MDNS Uses UDP Over Multicast Designed for resolving names in
adhoc networks Uses the existing DNS message structure, name syntax, and resource record types
Something Simpler? So lets look at something simpler than DNS
What if we just put text in a UDP packet What would that look like?
Problem I want to send 10s of 1000s of metrics
to a server for aggregation with minimal performance impact I want to keep it simple I want the server to be a staging area for data Perform Aggregation Flush to timeseries at regular intervals
statsd Developed by etsy Uses UDP as a transport Data
is encoded using text Metrics are either a Gauge, Counter, Timer or Meter No reply necessary!
statsd protocol Metrics are generally of the form <metric name>:<value>|<type>
outside_temp|12.2|g get_home_request_time|123|ms get_home_request|1|c
In Review Very simple implementation Doesn’t block Fast Loss doesn’t
really matter in the scheme of things Maths happens in the server
None
The End @wolfeidau on twitter https://github.com/wolfeidau mark@wolfe.id.au http://wolfe.id.au
Links Good article on DNS message format https://www.wireshark.org/ Read this
book High Performance Browser Networking Etsy Statsd