Upload
hidenowt
View
1.058
Download
1
Tags:
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
Clouds on RailsCeará on Rails
2009 04 08
oi! eu sou
hannesda
SoundCloud
Topics
• About Me
• SoundCloud
• Team
• Infrastructure
• In the Cloud
• Workflow
• Web Service API
• Being a Developer in Berlin
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
SoundCloud
• Flickr for audio
• Send
• Receive
• Distribute
Team
• 2 Back-end
• 2 Front-end
• 2 Bosses
• x Interns
Back end
• Rails 2.0.2
• nginx
• Sun Solaris 10 (Virtual)
• 1 Web
• 3 App
• 1 DB
• Amazon S3 and EC2 (RightAws)
• RabbitMQ (AMQP)
Front end
• haml → html
• sass → css
• jQuery
• Flash
• Uploader
• SoundManager
In the Cloud
• Storage – Amazon S3
• Processing – Amazon EC2
• Caching – Panther Express CDN
Upload
EC2
S3
Amazon
Download
S3
media.soundcloud.com (CDN)
soundcloud.com
Amazon
Download
S3
media.soundcloud.com (CDN)
HEAD
soundcloud.com
Amazon
GET GET
302
200 200
Access Granted
Download
S3
media.soundcloud.com (CDN)
HEAD
soundcloud.com
Amazon
GET
404
404
Access Denied
X
Workflow
• GitHub
• Master
• Stable
• Topic branches
• Lighthouse
• BDD
• Continuous Integration (Cruise Control)
BDD
soundcloud $ rake spec
Finished in 644.040877 seconds2235 examples, 0 failures
BDD
• 644 seconds > 10 minutes
• This means
• No Autotest
• Build breaks sometimes
Deploy procedure
• Build with JSLint
• Staging – staging-soundcloud.com
• Live – soundcloud.com
• Sandbox (API) – sandbox-soundcloud.com
Lessons Learned
• CDN
• Co-locate in same rack
• Caching
• Performance Profiling (New Relic RPM)
API
• Read and Write
• RESTish
• OAuth
API Libraries
• Python
• Cocoa
• Flash (Read only)
• Ruby?
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)
Being a Developer in Berlin
• Startups
• Music
• Media
• Culture
• Art
We’re hiring!
We’re hiring!
Questions?
http://soundcloud.com/hanneshttp://twitter.com/phtmailto:[email protected]:+49 157 7471 6101
Muito obrigado!