Slide 1

Slide 1 text

https://commons.host @sebdeckers Commons Host Commons Host

Slide 2

Slide 2 text

https://commons.host @sebdeckers Commons Host Sebastiaan Deckers Indie hacker living in $ @sebdeckers

Slide 3

Slide 3 text

https://commons.host @sebdeckers Commons Host I ❤ JavaScript
 I ❤ FOSS
 I ❤ Open Standards

Slide 4

Slide 4 text

https://commons.host @sebdeckers Commons Host 2016 &
 Experimenting with SPDY & HTTP/2

Slide 5

Slide 5 text

https://commons.host @sebdeckers Commons Host 2017 
 Contributing to
 require('http2')

Slide 6

Slide 6 text

https://commons.host @sebdeckers Commons Host 2018 Building a
 100% FOSS CDN

Slide 7

Slide 7 text

https://commons.host @sebdeckers Commons Host 20+ PoPs in 6 months all hosted by sponsors

Slide 8

Slide 8 text

https://commons.host @sebdeckers Commons Host Open hardware:
 Odroid ARM µ-servers

Slide 9

Slide 9 text

https://commons.host @sebdeckers Commons Host Deploy a Static Site npx @commonshost/cli deploy

Slide 10

Slide 10 text

https://commons.host @sebdeckers Commons Host

Slide 11

Slide 11 text

https://commons.host @sebdeckers Commons Host Let's Encrypt for Custom Domains npx @commonshost/cli deploy --domain example.com (Point the DNS record for "example.com" to "commons.host")

Slide 12

Slide 12 text

https://commons.host @sebdeckers Commons Host HTTP/2 Server Push npx @commonshost/manifest generate

Slide 13

Slide 13 text

https://commons.host @sebdeckers Commons Host RTFM https://help.commons.host

Slide 14

Slide 14 text

https://commons.host @sebdeckers Commons Host My story starts about 10 years ago in Singapore

Slide 15

Slide 15 text

https://commons.host @sebdeckers Commons Host Typical internet access: DSL/cable

Slide 16

Slide 16 text

https://commons.host @sebdeckers Commons Host No datacentres No internet exchanges

Slide 17

Slide 17 text

https://commons.host @sebdeckers Commons Host Servers far away, mostly USA or Europe. RTT 250ms+

Slide 18

Slide 18 text

https://commons.host @sebdeckers Commons Host Singapore today...

Slide 19

Slide 19 text

https://commons.host @sebdeckers Commons Host 1 Gbps FTTH for <1% of median monthly family income

Slide 20

Slide 20 text

https://commons.host @sebdeckers Commons Host Many DCs & IXs

Slide 21

Slide 21 text

https://commons.host @sebdeckers Commons Host ~1-2ms RTT to most CDNs

Slide 22

Slide 22 text

https://commons.host @sebdeckers Commons Host

Slide 23

Slide 23 text

https://commons.host @sebdeckers Commons Host 1 2 4.5 billion billion billion

Slide 24

Slide 24 text

https://commons.host @sebdeckers Dawn of the Hybrid CDN FTTx "73% of the world’s FTTx subscribers [...] in the Asia-Pacific region."

Slide 25

Slide 25 text

https://commons.host @sebdeckers Commons Host Fibre installed by default in new property developments. FTTH available in most cities in CJK, SEA, and India

Slide 26

Slide 26 text

https://commons.host @sebdeckers Commons Host DCs and IXs still expensive.

Slide 27

Slide 27 text

https://commons.host @sebdeckers Commons Host BKK SGN JKT MNL KUL RGN SIN HKG TYO Not enough glass in the water. Traffic mostly via peering in SIN/HKG/TYO.

Slide 28

Slide 28 text

https://commons.host @sebdeckers Commons Host The Internet is a concept, not a thing.

Slide 29

Slide 29 text

https://commons.host @sebdeckers Commons Host What is peering? Networks talking directly to each other. Internet: Interconnected Networks

Slide 30

Slide 30 text

https://commons.host @sebdeckers Commons Host Free vs Paid Peering Not all networks are created equal.

Slide 31

Slide 31 text

https://commons.host @sebdeckers Commons Host Peering reduces network distance. Lower latency. Higher bandwidth. Lower cost.

Slide 32

Slide 32 text

https://commons.host @sebdeckers Commons Host The real world is lumpy. Just way too many networks
 De facto/jure monopolies Systemic barriers to entry

Slide 33

Slide 33 text

https://commons.host @sebdeckers Commons Host UTH - BKK - SIN vs UTH - BKK - SIN - SJC - SIN

Slide 34

Slide 34 text

https://commons.host @sebdeckers Commons Host Internet Exchanges (IX) Middlemen between networks Carrier neutral Network effect

Slide 35

Slide 35 text

https://commons.host @sebdeckers Commons Host Traditional Approach:
 Put a cache at every IX.

Slide 36

Slide 36 text

https://commons.host @sebdeckers Commons Host Ideal Solution: Put a cache at every ISP.

Slide 37

Slide 37 text

https://commons.host @sebdeckers Commons Host Think big. 561 urban agglomerations >1,000,000 population 63,483 BGP-active ASNs,
 upper bound of ISPs in the world 1,064 urban areas >500,000 population 53% of the world

Slide 38

Slide 38 text

https://commons.host @sebdeckers Commons Host Start small. $200 per server affordable by individuals Static Sites
 low CPU/RAM/IO requirements 1 Gbps per server enough to saturate FTTH

Slide 39

Slide 39 text

https://commons.host @sebdeckers Commons Host Move fast. 20+ locations in first 6 months Automation deploy a new server in minutes

Slide 40

Slide 40 text

https://commons.host @sebdeckers Commons Host Leverage 3 major
 commoditised technologies: JavaScript FTTH ARM

Slide 41

Slide 41 text

https://commons.host @sebdeckers Commons Host 1. JavaScript Node.js: fast low-level internals for HTTP/2, crypto, compression, I/O, ... NPM: Standing on the shoulders of giants.

Slide 42

Slide 42 text

https://commons.host @sebdeckers Commons Host 2. FTTH

Slide 43

Slide 43 text

https://commons.host @sebdeckers Commons Host 1-10 Gbps/unit ... were like these? What if these...

Slide 44

Slide 44 text

https://commons.host @sebdeckers Commons Host 3. ARM

Slide 45

Slide 45 text

https://commons.host @sebdeckers Commons Host Intel Xeon vs Qualcomm Centriq
 performance-per-Watt
 2:1

Slide 46

Slide 46 text

https://commons.host @sebdeckers Commons Host Déja vu...

Slide 47

Slide 47 text

https://commons.host @sebdeckers Commons Host 20 years ago,
 in 1998...

Slide 48

Slide 48 text

https://commons.host @sebdeckers Commons Host

Slide 49

Slide 49 text

https://commons.host @sebdeckers Commons Host Commodity Hardware
 Intel Pentium II Donated by Intel Big Idea: "Not absolute performance, but best performance per dollar."

Slide 50

Slide 50 text

https://commons.host @sebdeckers Commons Host Today, in 2018...

Slide 51

Slide 51 text

https://commons.host @sebdeckers Commons Host

Slide 52

Slide 52 text

https://commons.host @sebdeckers Commons Host Intel Xeon is the expensive, power-hungry, king of absolute server performance ARM is the
 new commodity hardware
 thanks to a huge
 mobile processor market

Slide 53

Slide 53 text

https://commons.host @sebdeckers Commons Host Best price/performance:
 Last year's mobile CPU!
 Considered obsolete, unsellable in consumer market.

Slide 54

Slide 54 text

https://commons.host @sebdeckers Commons Host Solid state chip inventory does not wear out, nor expire. Due to huge volumes,
 production surplus can be large.

Slide 55

Slide 55 text

https://commons.host @sebdeckers Commons Host Bunnie Huang: Individual Shenzhen electronics mall shops with more chip inventory than all of North America.

Slide 56

Slide 56 text

https://commons.host @sebdeckers Commons Host Market Trends Servers Desktops Mobile

Slide 57

Slide 57 text

https://commons.host @sebdeckers Commons Host Shipments Server Desktop Laptop Tablet Phone 1,472 164 161 98 11 133x

Slide 58

Slide 58 text

https://commons.host @sebdeckers Commons Host >100 billion ARM processors

Slide 59

Slide 59 text

https://commons.host @sebdeckers Commons Host >95% of mobile processors

Slide 60

Slide 60 text

https://commons.host @sebdeckers Commons Host Not just Intel vs AMD:
 Competition within ARM ecosystem

Slide 61

Slide 61 text

https://commons.host @sebdeckers Commons Host Hardware accelerated crypto. HTTP/2 web traffic is 100% TLS.

Slide 62

Slide 62 text

https://commons.host @sebdeckers Commons Host Back to CDN servers...

Slide 63

Slide 63 text

https://commons.host @sebdeckers Commons Host

Slide 64

Slide 64 text

https://commons.host @sebdeckers Commons Host Goal: To create the closest to the in the largest CDN, most people, shortest time.

Slide 65

Slide 65 text

https://commons.host @sebdeckers Commons Host Growing the network Distributed ownership of physical infrastructure.

Slide 66

Slide 66 text

https://commons.host @sebdeckers Commons Host Lower hardware cost Spare servers, Raspberry Pi, Docker/VMs, etc.

Slide 67

Slide 67 text

https://commons.host @sebdeckers Commons Host Self-Hosted CDN Deployed private CDN on-premises

Slide 68

Slide 68 text

https://commons.host @sebdeckers Commons Host Marketplace Content Publishers pay — Server Hosts earn. Incentives for hosts worldwide to invest in hardware and networks. Large content publishers can reach otherwise impossible audiences.

Slide 69

Slide 69 text

https://commons.host @sebdeckers Commons Host One more thing...

Slide 70

Slide 70 text

https://commons.host @sebdeckers Commons Host DNS over HTTPS New way to secure DNS against tampering, censorship, snooping, etc.

Slide 71

Slide 71 text

https://commons.host @sebdeckers Commons Host DNS over HTTPS DNS over long-lived, low bandwidth, HTTP/2 connections.

Slide 72

Slide 72 text

https://commons.host @sebdeckers Commons Host DNS over HTTPS More servers = lower latency More users = better cache hit ratio

Slide 73

Slide 73 text

https://commons.host @sebdeckers Commons Host DNS over HTTPS Playdoh & Dohnut

Slide 74

Slide 74 text

https://commons.host @sebdeckers Commons Host "How hard can it be?" Kenny Shen
 @machinesung Overnight implementation based on require('dns-packet') Zero to production in 10 days.

Slide 75

Slide 75 text

https://commons.host @sebdeckers Commons Host Playdoh Public DoH on all Commons Host CDN edge servers. Independent, no censorship, no logging.

Slide 76

Slide 76 text

https://commons.host @sebdeckers Commons Host Try DoH with Firefox:

Slide 77

Slide 77 text

https://commons.host @sebdeckers Commons Host Dohnut DNS to DNS over HTTPS

Slide 78

Slide 78 text

https://commons.host @sebdeckers Commons Host

Slide 79

Slide 79 text

https://commons.host @sebdeckers Commons Host Use HTTP/2 AltSvc to announce nearby DoH servers. Use HTTP/2 PING to measure fastest DoH servers.

Slide 80

Slide 80 text

https://commons.host @sebdeckers Commons Host 2nd Tier DoH-only edge servers No storage required. Run on Raspberry Pi?

Slide 81

Slide 81 text

https://commons.host @sebdeckers Commons Host I need your help...

Slide 82

Slide 82 text

https://commons.host @sebdeckers Commons Host I need your help... Use Publish websites Translate documentation Report bugs Request features

Slide 83

Slide 83 text

https://commons.host @sebdeckers Commons Host I need your help... Use Publish websites Translate documentation Report bugs Request features Host Deploy an edge PoP,
 at your home or office. Especially in developing urban areas.

Slide 84

Slide 84 text

https://commons.host @sebdeckers Commons Host Use Publish websites Translate documentation Report bugs Request features Host Deploy an edge PoP,
 at your home or office. Especially in developing urban areas. Fund Buy a PoP server, for yourself or for placement at a willing remote host.

Slide 85

Slide 85 text

https://commons.host @sebdeckers Commons Host Use Publish websites Translate documentation Report bugs Request features Host Deploy an edge PoP,
 at your home or office. Especially in developing urban areas. Fund Buy a PoP server, for yourself or for placement at a willing remote host. Share Tell a Friend

Slide 86

Slide 86 text

https://commons.host @sebdeckers Commons Host Think big. Start small. Move fast. Commons Host