1. AdaptiveBlue @
AWS NYC Meetup
June 4, 2009
Mark Tabry, Software Engineer
http://getglue.com
2. Agenda
About AdaptiveBlue
Glue: The Network of People and Things
Glue: Building on Amazon Web Services
Glue: Semantic Technology Stack
3. About AdaptiveBlue
Founded in 2006, based in New York
Focuses on enhancing browsing experience
Launched BlueOrganizer and Glue add-ons for
Firefox and SmartLinks Widgets for blogs
4. Get Glue. The Network That
Sticks With You.
http://getglue.com
5. What is Glue?
Glue is a contextual network that uses
semantic technology to automatically
connect people around everyday things -
books, music, movies, stars, artists,
stocks, wine, restaurants and more.
6. 1. Contextual: Glue is distributed and appears
when it makes sense on popular sites.
2. Automatic: Users participate in Glue just by
browsing their favorite sites.
3. Simple: Glue removes the friction involved
in networking - the network comes to you.
9. AWS-based Architecture
Client Layer
Browser Add-Ons Widgets iPhones Facebook Apps API Clients
Load Balancer Layer
Round Robin DNS
Load Balancer 1 Load Balancer 2
Web Service Layer
Host 1 (EC2) Host N (EC2)
Glue Web Service Glue Web Service
...
Batch Services Batch Services
Database Layer
Amazon S3 Rackspace MySQL
Amazon SimpleDB
Object Database/ User accounts
Interactions between
People Profiles Analytics
People and Things
10. AdaptiveBlue AWS Stack
Relating People and Things ( SimpleDB )
Records of people’s interactions around things are stored
in SimpleDB Domains using duplication for fast access.
Storing Object Meta Data ( S3 )
XML representation of millions of books, music,
movies, etc. is stored using Amazon S3
Transactional and Batch Support ( EC2 )
Web Service Requests and batches are
distributed through EC2 instances.
11. Amazon SimpleDB in a Nutshell
Simple DB Domain
Idea:
Record 1
Key1 Attributes: A1,A2… Create flat database with
auto-indexed tables.
…
Record N Main Features:
Key2 Attributes: A1,A2…
Each attribute is indexed.
Record structure is flexible.
Get record Basic operators in queries
Put record Query records Supports sorting.
Client
12. How Glue uses SimpleDB
Interaction Record
Key1 Attributes: A1,A2…
Object Domains People Domains
OD1 OD2 … ODN PD1 PD2 … PDN
Each record is duplicated into Object and Person Domain
The Key is a combination of USER_ID and OBJECT_KEY
Djb2hash is used to calculate the domain for each record
Records for each USER and each OBJECT inside the same domain.
13. Amazon S3 in a Nutshell
Amazon S3 Idea:
Bucket 1 Bucket N Put/Get objects into buckets
… based on unique keys.
Put object Get object Main Features:
Public/Private access.
Support for large objects.
Client
14. How Glue Uses S3
Object Bucket People Bucket
XML-files with object information XML-files with user and friends info
XML is serialized as string and written to S3
Each file has a unique key: OBJECT_ID or USER_ID/profile, etc.
15. Amazon EC2 in the Nutshell
Usage:
Create Machine Image
Deploy the image to S3
Start 1 or more instances
Use it as regular machine(s)
Main Options:
Machine Dynamic/Static IPS
Image Choose cores
(OS + Apps) Choose locations
Persistence via EBS
16. How Glue uses EC2
Round Robin DNS
Load Balancer 1 Load Balancer 2
Host 1 (EC2/Rackspace) Host N (EC2/Rackspace)
Glue Web Service Glue Web Service
...
Batch Services Batch Services
Web Service processes transactional requests
Batch Services are time-based & run on sets of USERS and OBJECTS
The system scales by equally partitioning Data and Requests