Rails is not enough, by Javier Ramirez, at Conferencia Rails 2010 in Madrid, Spain


Published on

We rails people tend to think of Rails as the center-piece of web development. The same thing can be said of .net, Spring/Java Server Faces, Drupal, Python or name-your-web-framework-of-choice-here people.

Web frameworks are just a component of web applications, and if you want to succeed you better know the miriads of other components beyond your rockstar code.

In my session I will talk about things you must take into account and tools/techniques you should master if you want to make a difference in web development, independently of your development language/framework.

Talk delivered at conferencia rails 2010 in Madrid, Spain.

Published in: Technology, Design
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Rails is not enough, by Javier Ramirez, at Conferencia Rails 2010 in Madrid, Spain

  1. 1. RailsRails is notis not EnoughEnough by javier ramírezby javier ramírez @supercoco9@supercoco9 jramirez@aspgems.comjramirez@aspgems.com http://javier-ramirez.comhttp://javier-ramirez.com
  2. 2. A monkey's viewA monkey's view of weBof weB developmentdevelopment internet web server database request response model controller view model
  3. 3. StandingStanding on theon the shouldersshoulders of giantsof giants Ignoring HTTP, HTML, JavaScript or CSS is not an optionIgnoring HTTP, HTML, JavaScript or CSS is not an option Code like a pro. Validate!Code like a pro. Validate! Protect yourself, use frameworksProtect yourself, use frameworks
  4. 4. RunRun FORRESTFORREST RUNRUN https://code.google.com/speed/page-speedhttps://code.google.com/speed/page-speed http://developer.yahoo.com/yslow/http://developer.yahoo.com/yslow/ https://www.facebook.com/notes/facebook-engineering/bigpipe-https://www.facebook.com/notes/facebook-engineering/bigpipe- pipelining-web-pages-for-high-performance/389414033919pipelining-web-pages-for-high-performance/389414033919 http://yehudakatz.com/2010/09/07/automatic-flushing-the-rails-3-1-planhttp://yehudakatz.com/2010/09/07/automatic-flushing-the-rails-3-1-plan http://github.com/mkelly12/google_closure_compilerhttp://github.com/mkelly12/google_closure_compiler
  5. 5. SizeSize Doesn'tDoesn't matter,matter, if youif you knowknow howhow
  6. 6. Adding muscleAdding muscle Server Configuration management and provisioningServer Configuration management and provisioning Cloud servicesCloud services http://opscode.com/chefhttp://opscode.com/chef http://puppetlabs.comhttp://puppetlabs.com Deploy strategiesDeploy strategies http://github.com/capistranohttp://github.com/capistrano http://github.com/lg/murderhttp://github.com/lg/murder http://github.com/calavera/marabuntahttp://github.com/calavera/marabunta
  7. 7. Reducing loadReducing load User external serversUser external servers Page/reverse proxy cachingPage/reverse proxy caching Key/value middlemenKey/value middlemen Distribute (queue, map reduce...)Distribute (queue, map reduce...) Set limitsSet limits Display less contentDisplay less content Degrade gracefullyDegrade gracefully http://www.railsinside.com/case-studies/421-http://www.railsinside.com/case-studies/421- kgb-scaling-superbowl-traffic-case-study.htmlkgb-scaling-superbowl-traffic-case-study.html
  8. 8. PaulPaul the octopusthe octopus
  9. 9. Look for traffic patterns (peak hours and “valleys”)Look for traffic patterns (peak hours and “valleys”) Test your siteTest your site ApachebenchApachebench httperfhttperf JmeterJmeter Do the mathsDo the maths (req/s)*60*60(req/s)*60*60 (req/s)*60*60*100/(busiest % hour)(req/s)*60*60*100/(busiest % hour) Our numbers:Our numbers: 7%7% 11 million pageviews/month11 million pageviews/month 8 boxes8 boxes ~37 million pageviews limit~37 million pageviews limit
  10. 10. Plan ForPlan For FailureFailure
  11. 11. My other car is a porscheMy other car is a porsche
  12. 12. SharpeningSharpening youryour axeaxe
  13. 13. general programming Conceptsgeneral programming Concepts RubyRuby Data StorageData Storage Algorithms (sorting, map/reduce, sawzall...)Algorithms (sorting, map/reduce, sawzall...) ACIDACID SOLIDSOLID
  14. 14. How muchHow much did yourdid your businessbusiness Yesterday?Yesterday?
  15. 15. http://google.com/analyticshttp://google.com/analytics http://web.analytics.yahoo.comhttp://web.analytics.yahoo.com http://omniture.comhttp://omniture.com http://coremetrics.comhttp://coremetrics.com http://webtrends.comhttp://webtrends.com http://piwik.orghttp://piwik.org How many visitors I get?How many visitors I get? How many pages they see?How many pages they see? Why are they getting here?Why are they getting here? What's the entry/exit point?What's the entry/exit point? Where are they going?Where are they going? Which pages are engaging?Which pages are engaging? Is my workflow too complex?Is my workflow too complex? Am I doing better than before?Am I doing better than before? How much did my business today?How much did my business today? http://clicktale.comhttp://clicktale.com http://percentmobile.comhttp://percentmobile.com http://feedburner.comhttp://feedburner.com
  16. 16. Do you knowDo you know who enterswho enters your shop?your shop? https://www.google.com/adplannerhttps://www.google.com/adplanner
  17. 17. How can I help you?How can I help you? Are you happy with me?Are you happy with me? What do you like about me?What do you like about me? Am I missing the point?Am I missing the point? https://www.kissinsights.comhttps://www.kissinsights.com http://www.4qsurvey.comhttp://www.4qsurvey.com http://getsatisfaction.comhttp://getsatisfaction.com http://uservoice.comhttp://uservoice.com How popular/unpopular am I?How popular/unpopular am I? http://blogpulse.comhttp://blogpulse.com http://icerocket.comhttp://icerocket.com http://thinkupapp.comhttp://thinkupapp.com https://analytics.postrank.comhttps://analytics.postrank.com http://www.google.com/alertshttp://www.google.com/alerts
  18. 18. Mirror mirrorMirror mirror on the wallon the wall Who in theWho in the land island is fairestfairest of all?of all? http://compete.comhttp://compete.com http://google.com/trendshttp://google.com/trends
  19. 19. If you build it, they will comeIf you build it, they will come
  20. 20. Mr. ObviousMr. Obvious SEMSEM PRPR TwitterTwitter => 126=> 126 Facebook => 130Facebook => 130 Buttons/bannersButtons/banners Share profitsShare profits
  21. 21. quack like a duckquack like a duck what's the message I'm sending? => webmaster toolswhat's the message I'm sending? => webmaster tools Internal/external searches => webmaster tools & analyticsInternal/external searches => webmaster tools & analytics Google adwords keyword toolGoogle adwords keyword tool http://google.com/insights/searchhttp://google.com/insights/search http://youtube.comhttp://youtube.com http://delicious.comhttp://delicious.com
  22. 22. TheThe ScientificScientific methodmethod A/B TestingA/B Testing https://optimizely.appspot.comhttps://optimizely.appspot.com http://google.com/websiteoptimizerhttp://google.com/websiteoptimizer A/B Testing for AdsA/B Testing for Ads Adwords campaign experimentsAdwords campaign experiments
  23. 23. UxymoronUxymoron Non-standard interfaces, usually hard to build,Non-standard interfaces, usually hard to build, making the users more likely to make mistakes andmaking the users more likely to make mistakes and find the design much more difficult to usefind the design much more difficult to use Also said of the moron whoAlso said of the moron who thought it was such a greatthought it was such a great idea to implement thatidea to implement that interfaceinterface
  24. 24. Jakob's Law of the InternetJakob's Law of the Internet User ExperienceUser Experience Users spend most ofUsers spend most of their time on other sites.their time on other sites. This means that usersThis means that users prefer your site to workprefer your site to work the same way as all thethe same way as all the other sites they alreadyother sites they already know alikeknow alike http://www.useit.com/alertbox/20000723.htmlhttp://www.useit.com/alertbox/20000723.html
  25. 25. RTFCRTFC GoogleGoogle MicrosoftMicrosoft YahooYahoo TwitterTwitter FacebookFacebook LinkedInLinkedIn XingXing Github...Github... Read The F***king CodeRead The F***king Code
  26. 26. AllAll togethertogether now!now! Standards are coolStandards are cool Remember the client-sideRemember the client-side Think big, keep smallThink big, keep small EstimateEstimate Have a B planHave a B plan Analyse & MeasureAnalyse & Measure Have a conversationHave a conversation Shout your nameShout your name Make an educated guessMake an educated guess Be easy to useBe easy to use Keep learningKeep learning
  27. 27. javier ramírezjavier ramírez @supercoco9@supercoco9 jramirez@aspgems.comjramirez@aspgems.com http://javier-ramirez.comhttp://javier-ramirez.com All the images were found viaAll the images were found via http://ffffound.comhttp://ffffound.com . Many thanks to their authors. Many thanks to their authors