12
Sanketh Beerabbi University of Central Florida

University of Central Florida - UCF Computer Sciencedcm/Teaching/COP6087-Fall2013/... · 2013-12-02 · Image processing is a very compute intensive task which requires multiple compute

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: University of Central Florida - UCF Computer Sciencedcm/Teaching/COP6087-Fall2013/... · 2013-12-02 · Image processing is a very compute intensive task which requires multiple compute

Sanketh Beerabbi

University of Central Florida

Page 2: University of Central Florida - UCF Computer Sciencedcm/Teaching/COP6087-Fall2013/... · 2013-12-02 · Image processing is a very compute intensive task which requires multiple compute

Image processing is a very compute intensive task which requires multiple compute units to provide near instantaneous results.

It’s more challenging in online applications involving many simultaneous, “impatient” users creating varying workloads.

Cloud computing provides the scalability needed for running such applications online.

Page 3: University of Central Florida - UCF Computer Sciencedcm/Teaching/COP6087-Fall2013/... · 2013-12-02 · Image processing is a very compute intensive task which requires multiple compute

Allows users to upload photos and store them in the cloud.

Allows photos to be manipulated by applying Instagram style image filters.

Allows users to create profile pics by detecting faces and cropping them out of the original photo.

Page 4: University of Central Florida - UCF Computer Sciencedcm/Teaching/COP6087-Fall2013/... · 2013-12-02 · Image processing is a very compute intensive task which requires multiple compute

Amazon 64 bit Linux AMI AWS PHP SDK with cURL and PEAR packages GD and Image Magick for image manipulation

AWS services: • EC2 & S3 • SimpleDB (SDB) • Simple Queue Service (SQS) • Elastic Load Balancer (ELB) • Cloudfront CDN

Page 5: University of Central Florida - UCF Computer Sciencedcm/Teaching/COP6087-Fall2013/... · 2013-12-02 · Image processing is a very compute intensive task which requires multiple compute

Plan and Design (~2 weeks)

LAMP, AWS PHP SDK, GD and ImageMagick

(~2 weeks)

Browser based uploading to S3 and server side operations using S3 API (~2 weeks)

Database operations using Simple DB(1 week)

Message passing using SQS API (~2 weeks)

Page 6: University of Central Florida - UCF Computer Sciencedcm/Teaching/COP6087-Fall2013/... · 2013-12-02 · Image processing is a very compute intensive task which requires multiple compute

Simple

DB

Page 7: University of Central Florida - UCF Computer Sciencedcm/Teaching/COP6087-Fall2013/... · 2013-12-02 · Image processing is a very compute intensive task which requires multiple compute
Page 8: University of Central Florida - UCF Computer Sciencedcm/Teaching/COP6087-Fall2013/... · 2013-12-02 · Image processing is a very compute intensive task which requires multiple compute

Upload –

• Stores file names and task status in SDB

• Creates bucket and uploads image to S3

• Sends message to SQS

Process –

• Reads details from SDB and updates task status.

• Receives and deletes message from SQS

• Downloads from S3 and processes image .

Uploads processed image to S3.

Page 9: University of Central Florida - UCF Computer Sciencedcm/Teaching/COP6087-Fall2013/... · 2013-12-02 · Image processing is a very compute intensive task which requires multiple compute

A single Amazon SQS queue can be shared by multiple instances simultaneously.

An instance that is processing a message can prevent other instances from processing the same message at the same time by temporarily “locking” a message. When the instance is done processing the message, it deletes the message.

If the instance fails while processing the message, another instance can get the message after the lockout period.

The number of processing servers can be changed dynamically to handle varying load.

Page 10: University of Central Florida - UCF Computer Sciencedcm/Teaching/COP6087-Fall2013/... · 2013-12-02 · Image processing is a very compute intensive task which requires multiple compute

PHP, hundreds of new *NIX commands, tools and Linux from the “terminal” point of view.

Virtual networking, load balancing and DNS.

Batch processing on the cloud using multiple instances

Inter-instance communication using message queuing.

Page 12: University of Central Florida - UCF Computer Sciencedcm/Teaching/COP6087-Fall2013/... · 2013-12-02 · Image processing is a very compute intensive task which requires multiple compute