https://www.github.com/No9 – @antonwhalley



https://www.github.com/No9 – @antonwhalley

0 5


peerconf-2013

Slides From PeerConf

On Github No9 / peerconf-2013

https://www.github.com/No9

@antonwhalley

Peer to Peer in Production

Cinema Content Distribution

  • Content is adverts and films
  • Traditionally couriers with DVDs
  • 12000+ machines can be in a distribution network
  • Hybrid network topology
  • Large Files (> 1Gb)

Baseline Solution

  • Bit Torrent to parse file and seed network
  • Content metadata(Torrent Descriptor) replication provided by CRDT (Commutative Replicated Data Types)
  • Management UI provided by a node.js,express and seneca

Further Requirements

(Not all peers are equal)

  • Authentication and Authorisation
  • Management Application to partition content (even adverts)
  • System Monitoring (Wot no tests)

Further Solutions?

  • User Authentication and Authorisation provided by a central datastore.
  • Content Partitioning dealt with by a kerberosesque cache token based system.
  • Application Level Authorisation provided by keys signed by a certificate authority
  • Monitoring was simply each node reporting status at a given interval with the results aggregated over a time period as a mongo map reduce.

Lessons

  • Unix philosophy FTW!
  • Mongo disappears. (Deal With It?)
  • LevelDB not remember on the nodes (Why u no windows)
  • Some funnies with reconnect using http fell back to TLS
  • No continuous deployment :( NPM makes you lazy.
  • Performance Driven Development? Yes Please
  • Would love to revisit the central certificate authority and non-repudiation problem