25
Clouds on Rails Ceará on Rails 2009 04 08

Hannes Tyden Clouds On Rails

Embed Size (px)

DESCRIPTION

Apresentação do Hannes Sueco, na primeira edição do Ceará On Rails 2009, Hannes reside em Berlin e é desenvolvedor da Soundcloud uma Startup de programação em nuvens onde compartilha musicas, além de aplicar ideias do twitter e orkut...

Citation preview

Page 1: Hannes Tyden Clouds On Rails

Clouds on RailsCeará on Rails

2009 04 08

Page 2: Hannes Tyden Clouds On Rails

oi! eu sou

hannesda

SoundCloud

Page 3: Hannes Tyden Clouds On Rails

Topics

• About Me

• SoundCloud

• Team

• Infrastructure

• In the Cloud

• Workflow

• Web Service API

• Being a Developer in Berlin

Page 4: Hannes Tyden Clouds On Rails

About me

• 1998:Developer, SyncMediaComStockholm, Sweden

• 2002:Computer Science, Royal Institute of TechnologyStockholm, Sweden

• 2006:Exchange Program, Technische Universität BerlinBerlin, Germany

• 2007:Developer, SoundCloudBerlin, Germany

Page 5: Hannes Tyden Clouds On Rails

SoundCloud

• Flickr for audio

• Send

• Receive

• Distribute

Page 6: Hannes Tyden Clouds On Rails

Team

• 2 Back-end

• 2 Front-end

• 2 Bosses

• x Interns

Page 7: Hannes Tyden Clouds On Rails

Back end

• Rails 2.0.2

• nginx

• Sun Solaris 10 (Virtual)

• 1 Web

• 3 App

• 1 DB

• Amazon S3 and EC2 (RightAws)

• RabbitMQ (AMQP)

Page 8: Hannes Tyden Clouds On Rails

Front end

• haml → html

• sass → css

• jQuery

• Flash

• Uploader

• SoundManager

Page 9: Hannes Tyden Clouds On Rails

In the Cloud

• Storage – Amazon S3

• Processing – Amazon EC2

• Caching – Panther Express CDN

Page 10: Hannes Tyden Clouds On Rails

Upload

EC2

S3

Amazon

Page 11: Hannes Tyden Clouds On Rails

Download

S3

media.soundcloud.com (CDN)

soundcloud.com

Amazon

Page 12: Hannes Tyden Clouds On Rails

Download

S3

media.soundcloud.com (CDN)

HEAD

soundcloud.com

Amazon

GET GET

302

200 200

Access Granted

Page 13: Hannes Tyden Clouds On Rails

Download

S3

media.soundcloud.com (CDN)

HEAD

soundcloud.com

Amazon

GET

404

404

Access Denied

X

Page 14: Hannes Tyden Clouds On Rails

Workflow

• GitHub

• Master

• Stable

• Topic branches

• Lighthouse

• BDD

• Continuous Integration (Cruise Control)

Page 15: Hannes Tyden Clouds On Rails

BDD

soundcloud $ rake spec

Finished in 644.040877 seconds2235 examples, 0 failures

Page 16: Hannes Tyden Clouds On Rails

BDD

• 644 seconds > 10 minutes

• This means

• No Autotest

• Build breaks sometimes

Page 17: Hannes Tyden Clouds On Rails

Deploy procedure

• Build with JSLint

• Staging – staging-soundcloud.com

• Live – soundcloud.com

• Sandbox (API) – sandbox-soundcloud.com

Page 18: Hannes Tyden Clouds On Rails

Lessons Learned

• CDN

• Co-locate in same rack

• Caching

• Performance Profiling (New Relic RPM)

Page 19: Hannes Tyden Clouds On Rails

API

• Read and Write

• RESTish

• OAuth

Page 20: Hannes Tyden Clouds On Rails

API Libraries

• Python

• Cocoa

• Flash (Read only)

• Ruby?

Page 21: Hannes Tyden Clouds On Rails

API Clients

• RadioClouds (Flash)http://radioclouds.com

• Facebook application (PHP)

• The Cloud Player (Python)http://thecloudplayer.com

• Listen to Blogs (Python)http://listentoblogs.com

• Audiophile FiRe (iPhone)

Page 22: Hannes Tyden Clouds On Rails

Being a Developer in Berlin

• Startups

• Music

• Media

• Culture

• Art

Page 23: Hannes Tyden Clouds On Rails

We’re hiring!

Page 24: Hannes Tyden Clouds On Rails

We’re hiring!

[email protected]

Page 25: Hannes Tyden Clouds On Rails

Questions?

http://soundcloud.com/hanneshttp://twitter.com/phtmailto:[email protected]:+49 157 7471 6101

Muito obrigado!