nyc amazon web services meetup: how glue uses aws

17
AdaptiveBlue @ AWS NYC Meetup June 4, 2009 Mark Tabry, Software Engineer http://getglue.com

Upload: alex-iskold

Post on 06-May-2015

1.233 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: NYC Amazon Web Services Meetup: How Glue uses AWS

AdaptiveBlue @AWS NYC Meetup

June 4, 2009

Mark Tabry, Software Engineerhttp://getglue.com

Page 2: NYC Amazon Web Services Meetup: How Glue uses AWS

Agenda

About AdaptiveBlue Glue: The Network of People and Things Glue: Building on Amazon Web Services Glue: Semantic Technology Stack

Page 3: NYC Amazon Web Services Meetup: How Glue uses AWS

About AdaptiveBlue

Founded in 2006, based in New York

Focuses on enhancing browsing experience

Launched BlueOrganizer and Glue add-ons forFirefox and SmartLinks Widgets for blogs

Page 4: NYC Amazon Web Services Meetup: How Glue uses AWS

Get Glue. The Network ThatSticks With You.

http://getglue.com

Page 5: NYC Amazon Web Services Meetup: How Glue uses AWS

What is Glue?

Glue is a contextual network that usessemantic technology to automaticallyconnect people around everyday things -books, music, movies, stars, artists,stocks, wine, restaurants and more.

Page 6: NYC Amazon Web Services Meetup: How Glue uses AWS

1. Contextual: Glue is distributed and appearswhen it makes sense on popular sites.

2. Automatic: Users participate in Glue just bybrowsing their favorite sites.

3. Simple: Glue removes the friction involvedin networking - the network comes to you.

Page 7: NYC Amazon Web Services Meetup: How Glue uses AWS

Glue Demo

Page 8: NYC Amazon Web Services Meetup: How Glue uses AWS

Glue:Building on Amazon

Web Services

Page 9: NYC Amazon Web Services Meetup: How Glue uses AWS

AWS-based Architecture

Host N (EC2)

Amazon SimpleDB

Interactions betweenPeople and Things

Rackspace MySQL

User accountsAnalytics

Glue Web Service

Host 1 (EC2)

Glue Web Service

Batch Services

. . .

Amazon S3

Object Database/People Profiles

Database Layer

Web Service Layer

Load Balancer 1 Load Balancer 2

Round Robin DNSLoad Balancer Layer

Browser Add-Ons Widgets iPhones Facebook Apps API Clients

Client Layer

Batch Services

Page 10: NYC Amazon Web Services Meetup: How Glue uses AWS

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.

Transactional and Batch Support ( EC2 )

Web Service Requests and batches are distributed through EC2 instances.

Storing Object Meta Data ( S3 )

XML representation of millions of books, music, movies, etc. is stored using Amazon S3

Page 11: NYC Amazon Web Services Meetup: How Glue uses AWS

Client

Idea:

Create flat database with auto-indexed tables.

Main Features:

Each attribute is indexed. Record structure is flexible. Basic operators in queries Supports sorting.

Simple DB DomainRecord 1

Put recordGet recordQuery records

Key1 Attributes: A1,A2…

Record NKey2 Attributes: A1,A2…

Amazon SimpleDB in a Nutshell

Page 12: NYC Amazon Web Services Meetup: How Glue uses AWS

Object Domains

Interaction RecordKey1 Attributes: A1,A2…

How Glue uses SimpleDB

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.

OD2OD1 ODN…

People Domains

PD2PD1 PDN…

Page 13: NYC Amazon Web Services Meetup: How Glue uses AWS

Client

Idea:

Put/Get objects into bucketsbased on unique keys.

Main Features:

Public/Private access. Support for large objects.

Amazon S3

Bucket 1 Bucket N…

Put object Get object

Amazon S3 in a Nutshell

Page 14: NYC Amazon Web Services Meetup: How Glue uses AWS

Object Bucket

How Glue Uses S3

XML-files with object information

People Bucket

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.

Page 15: NYC Amazon Web Services Meetup: How Glue uses AWS

MachineImage

(OS + Apps)

Usage:

Create Machine Image Deploy the image to S3 Start 1 or more instances Use it as regular machine(s)

Main Options:

Dynamic/Static IPS Choose cores Choose locations Persistence via EBS

Amazon EC2 in the Nutshell

Page 16: NYC Amazon Web Services Meetup: How Glue uses AWS

How Glue uses EC2

Host N (EC2/Rackspace)

Glue Web Service

Host 1 (EC2/Rackspace)

Glue Web Service

Batch Services

. . .

Load Balancer 1 Load Balancer 2

Round Robin DNS

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

Page 17: NYC Amazon Web Services Meetup: How Glue uses AWS

http://getglue.com

http://twitter/[email protected]