think like an ant, distribute the workload - phpday, italy, 2011

Post on 16-Apr-2017

2.525 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Distribute the workload

Helgi Þormar ÞorbjörnssonPhpDay, Italy, Verona, 13th May, 2011

Saturday, 14 May 2011

Who am I?

Saturday, 14 May 2011

Saturday, 14 May 2011

VP of Engineering at Orchestra.io

Saturday, 14 May 2011

VP of Engineering at Orchestra.io

Developer at PEAR

Saturday, 14 May 2011

VP of Engineering at Orchestra.io

Developer at PEAR

From Iceland

Saturday, 14 May 2011

VP of Engineering at Orchestra.io

Developer at PEAR

From Iceland

@h on Twitter

Saturday, 14 May 2011

Why Distribute?

Saturday, 14 May 2011

Why Distribute?

Saturday, 14 May 2011

Why Distribute?

Budget

Saturday, 14 May 2011

Why Distribute?

Budget

Efficiency

Saturday, 14 May 2011

Why Distribute?

Budget

Efficiency

Perception

Saturday, 14 May 2011

Budget

Saturday, 14 May 2011

Budget

Spend wisely

Saturday, 14 May 2011

Budget

Spend wisely

Commodity servers

Saturday, 14 May 2011

Budget

Spend wisely

Commodity servers

Low overhead, high yield

Saturday, 14 May 2011

Budget

Spend wisely

Commodity servers

Low overhead, high yield

Cloud Computing (EC2)

Saturday, 14 May 2011

Efficiency

10 small servers > 1 big

Saturday, 14 May 2011

Venue Security

Saturday, 14 May 2011

1000 people can exit quicker through 10 small doors than 1 big

Saturday, 14 May 2011

1000 people can exit quicker

through 10 small doors than 1 big

Saturday, 14 May 2011

1000 people can exit quicker

through 10 small doors than 1 big

Saturday, 14 May 2011

1000 people can exit quicker through 10 small doors than 1 big

Saturday, 14 May 2011

Saturday, 14 May 2011

Saturday, 14 May 2011

Saturday, 14 May 2011

Saturday, 14 May 2011

Perception

Saturday, 14 May 2011

Perception

Defer intensive processes

Saturday, 14 May 2011

Perception

Defer intensive processes

Give instant feedback

Saturday, 14 May 2011

Perception

Defer intensive processes

Give instant feedback

Users keep on browsing

Saturday, 14 May 2011

Perception

Defer intensive processes

Give instant feedback

Users keep on browsing

Saturday, 14 May 2011

Saturday, 14 May 2011

Chapter from Nature

Saturday, 14 May 2011

Ant Colonies

Saturday, 14 May 2011

Algorithms

Saturday, 14 May 2011

Algorithms

Scheduling

Saturday, 14 May 2011

Algorithms

Scheduling

Vehicle Routing

Saturday, 14 May 2011

Algorithms

Scheduling

Vehicle Routing

Assignment

Saturday, 14 May 2011

Algorithms

Scheduling

Vehicle Routing

Assignment

Sets

Saturday, 14 May 2011

Algorithms

Scheduling

Vehicle Routing

Assignment

Sets

Other

Saturday, 14 May 2011

Algorithms

Scheduling

Vehicle Routing

Assignment

Sets

Other

Saturday, 14 May 2011

How do ants fit?

Saturday, 14 May 2011

How do ants fit?

Strength in numbers

Saturday, 14 May 2011

How do ants fit?

Strength in numbers

Work together

Saturday, 14 May 2011

How do ants fit?

Strength in numbers

Work together

Size benefits them

Saturday, 14 May 2011

Teamwork

When faced with a problem they will solve the problem as one.

Saturday, 14 May 2011

Saturday, 14 May 2011

Saturday, 14 May 2011

What if they were bigger?

Saturday, 14 May 2011

Types of Ants

Saturday, 14 May 2011

Types of Ants

Military

Saturday, 14 May 2011

Types of Ants

Military

Maids

Saturday, 14 May 2011

Types of Ants

Military

Maids

Tunnel diggers

Saturday, 14 May 2011

Types of Ants

Military

Maids

Tunnel diggers

Food gatherers

Saturday, 14 May 2011

How does this map to my application?

Saturday, 14 May 2011

Saturday, 14 May 2011

Colony = Application

Saturday, 14 May 2011

Colony = Application Ants = Components

Saturday, 14 May 2011

Colony = Application Ants = Components

Ants do many different types of work to keep their colony running

Saturday, 14 May 2011

Architect for Distribution

Saturday, 14 May 2011

Characteristics

Saturday, 14 May 2011

Characteristics

Decoupling

Saturday, 14 May 2011

Characteristics

Decoupling

Elasticity

Saturday, 14 May 2011

Characteristics

Decoupling

Elasticity

High Availability

Saturday, 14 May 2011

Characteristics

Decoupling

Elasticity

High Availability

Concurrency

Saturday, 14 May 2011

Decoupling

Saturday, 14 May 2011

Application

DB API

Cache FE

Saturday, 14 May 2011

Application

DB API

Cache FE

Saturday, 14 May 2011

ApplicationDB API

Cache FE

Saturday, 14 May 2011

ApplicationDB API

Cache FE

Cache

Saturday, 14 May 2011

ApplicationDB API

Cache FE

Cache

API

Saturday, 14 May 2011

ApplicationDB API

Cache FE

Cache

API

API

Saturday, 14 May 2011

Elasticity

Saturday, 14 May 2011

Cloud Computing

Saturday, 14 May 2011

Load Balancing

Saturday, 14 May 2011

HA Proxy

Nginx

My Favourite

Saturday, 14 May 2011

Monitoring

Saturday, 14 May 2011

Automation

Saturday, 14 May 2011

High Availability

Saturday, 14 May 2011

Benefits

Saturday, 14 May 2011

Benefits

Easy management

Saturday, 14 May 2011

Benefits

Easy management

Ability to stop / start servers quickly

Saturday, 14 May 2011

Benefits

Easy management

Ability to stop / start servers quickly

Responsibilities are separate

Saturday, 14 May 2011

Benefits

Easy management

Ability to stop / start servers quickly

Responsibilities are separate

Quickly move to a new cluster

Saturday, 14 May 2011

Benefits

Easy management

Ability to stop / start servers quickly

Responsibilities are separate

Quickly move to a new cluster

Reduced risk

Saturday, 14 May 2011

What to avoid

Saturday, 14 May 2011

What to avoidLocal:

Saturday, 14 May 2011

What to avoidLocal:

Sessions

Saturday, 14 May 2011

What to avoidLocal:

Sessions

Files

Saturday, 14 May 2011

What to avoidLocal:

Sessions

Files

Memory

Saturday, 14 May 2011

What to avoidLocal:

Sessions

Files

Memory

Uploads

Saturday, 14 May 2011

What to avoidLocal:

Sessions

Files

Memory

Uploads

Writing to /tmp

Saturday, 14 May 2011

Solutions

Saturday, 14 May 2011

Solutions

Store sessions in DB / Memcache

Saturday, 14 May 2011

Solutions

Store sessions in DB / Memcache

Use S3 to store uploaded files

Saturday, 14 May 2011

Solutions

Store sessions in DB / Memcache

Use S3 to store uploaded files

Use networked Memcache

Saturday, 14 May 2011

Solutions

Store sessions in DB / Memcache

Use S3 to store uploaded files

Use networked Memcache

Serve up static files from a CDN

Saturday, 14 May 2011

Solutions

Store sessions in DB / Memcache

Use S3 to store uploaded files

Use networked Memcache

Serve up static files from a CDN

Or... A multi domain solution

Saturday, 14 May 2011

Internal APIs

Saturday, 14 May 2011

Application

MySQLMongo FS

Internal Storage API

Saturday, 14 May 2011

SOA

Saturday, 14 May 2011

Service Oriented Architecture

Saturday, 14 May 2011

Sort of :-)

Saturday, 14 May 2011

Eventually Consistent

Saturday, 14 May 2011

CAP Therom

Saturday, 14 May 2011

Consistency

Availability

Partition Tolerance

Saturday, 14 May 2011

Queue Systems

Saturday, 14 May 2011

Good for

Saturday, 14 May 2011

Good forImage Processing

Saturday, 14 May 2011

Good forImage Processing

Distributed Logs

Saturday, 14 May 2011

Good forImage Processing

Distributed Logs

Data Mining

Saturday, 14 May 2011

Good forImage Processing

Distributed Logs

Data Mining

Mass Emails

Saturday, 14 May 2011

Good forImage Processing

Distributed Logs

Data Mining

Mass Emails

Intensive transformation

Saturday, 14 May 2011

Good forImage Processing

Distributed Logs

Data Mining

Mass Emails

Intensive transformation

Search

Saturday, 14 May 2011

Common Tools

Saturday, 14 May 2011

Common Tools

Gearman

Saturday, 14 May 2011

Common Tools

Gearman

Hadoop

Saturday, 14 May 2011

Common Tools

Gearman

Hadoop

Zero MQ (0MQ)

Saturday, 14 May 2011

Common Tools

Gearman

Hadoop

Zero MQ (0MQ)

RabbitMQ

Saturday, 14 May 2011

Common Tools

Gearman

Hadoop

Zero MQ (0MQ)

RabbitMQ

And many others!

Saturday, 14 May 2011

Gearman

Saturday, 14 May 2011

Your Client Code

Gearman Client API(C, PHP, Perl, MySQL UDF, ...)

Gearman Job Servergearmand

Gearman Worker API(C, PHP, Perl, Python, ...)

Your Worker Code

Your App Gearman

Saturday, 14 May 2011

Story time

Saturday, 14 May 2011

Story time

Saturday, 14 May 2011

Questions?

helgi@orchestra.ioTwitter: @h

Joind.in: http://joind.in/3027

Saturday, 14 May 2011

top related