Who am I?
I am Mark Cotton. I am a big nerd. I do programmer-y stuff. Eagle Eye Networks gives me money to programmer-y stuff. [we're hiring]
Eagle Eye Networks
Video Security in the Cloud
- we have lots of dealers and customers
- with Thousands of cameras
- connected to Hundreds of bridge
- uploading TeraBytes of video each day
Let's go back to 2012
Starting with Django
It almost writes itself
$ django-admin.py startproject mysite
The Path Less Traveled
- Developing API first
- Real-time data stream
- Tweaked ORM to use LDAP
- HTTP requests between machines
Developing API First
- Only expose a RESTful API
- No rendering views on the servers
- Everyone uses the same API [web, iOS, Android]
Real-time data stream
Write smaller python clients to subscribe to poll stream for cameras. Handle as much as possible as asynchonous requests.
Tweaked ORM to use LDAP
LDAP is document based, not relational, easily replicated and very fast on reads. Add your own indexes and relationships.
HTTP Request between machines
GRequests allows you to use Requests with Gevent to make asyncronous HTTP Requests easily. Same API we're already familiar with.