Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Building Internet-scale Applications


Published on

Published in: Technology
  • Be the first to comment

Building Internet-scale Applications

  1. 1. Building Internet-scale Applications: The Beginning By @gaveen At #RefreshColombo 22 September 2011
  2. 2. gaveens@gmail.comWorks at Thinkcube gaveen.owain.orgDevOps Gaveen Prabhasara SysAdmin
  3. 3. Standing on theShoulders of Giants “ If I claim to be a wise man, well It surely means that I dont know “ - Kansas Carry On Wayward Son
  4. 4. This is a 25 minute talkWhich sounds like a collection ofRandom thoughts aboutBuilding Internet-scale SystemsYou probably already know
  5. 5. What is it?Internet-scale Applications Does not always mean WebApps
  6. 6. Eg: Facebook, YouTube, Twitter, Gmail, Flikr Internet-scale > Enterprise-scale Case: Facebook 750M+ active users 350M+ daily usersCase: Akamai 100B+ daily hits 95800+ servers 30B+ monthly objects shared 1000+ networks 2.5M+ websites integrated 70+ countries 130TB+ daily logs 15-30% WWW traffic *Sources: *Source:
  7. 7. CultureCultureCulture How
  8. 8. Know Your Trade Acquire domain-specific knowledge Learn how people build similar services Learn about Technologies Stay updated RTFM / Use Search Engines ;) Learn
  9. 9. Get Right People Find balance in the team Know their strengths Nurture them Set a proper environment Dont step on others toes Team
  10. 10. Go for the Best Solution Have a solid architecture Find a good engineering design Dont over-engineer / over-complicate Avoid architecture degradation Architecture & Design
  11. 11. Right Tool for the Right JobYou favourite tool cant do everything. Face itPrejudice against & religious for isnt good for youBrand names arent for worshipingCloud isnt a magical silver bulletThis is Spar... the Internet. Its big Technology
  12. 12. Do Things Right Use best practices Automate. Automate. Automate. Plan for scaling from the start Dont let the process be a burden Process Little more detail...
  13. 13. Test All the Time or better,do Continuous Integration Testing isnt a QA job Let Devs take responsibility XP, TDD, BDD, Cucumber, etc. Dont push untested code Works-in-my-machine doesnt count Process Little more detail...
  14. 14. Fight the Smell, Fight Anti-Patterns Re-factoring is good Code smell isnt something to behold Dont let the code age on you Dont let the architecture degrade Bad code is bad code Process Little more detail...
  15. 15. Use Version Control Use a proper VCS Git, SVN, Hg, Bzr, etc. Helps automation No version control, no deploying Learn to use a VCS properly Process Little more detail...
  16. 16. Use Configuration ManagementInfrastructure is Code, therefore AutomateUser a Configuration Management SystemPuppet, Chef, CFEngine, MCollective, etc.One-off work is (usually) a mythManaged Infra opposed to mucked-about infra ProcessDevOps Little more detail...
  17. 17. Security isnt a Task You cant apply security later Both infra & code needs to be secure “Noboday wants to hack me” is a myth HTTPS isnt a fad # chmod 777 kills puppies SELinux / AppArmor isnt your enemy Process Little more detail...
  18. 18. Scaling starts from the beginning Plan early. Start from basics. Balance load & plan for HA Use Caching Do stress / load testing Not every technology scales gracefully Use messaging, async jobs when needed Etc., etc. Process Little more detail...
  19. 19. Monitor & Measure Capture important metrics Measure, analyze & improve Monitoring sucks. But still... Home grown a NMS arent necessarily better Have notification alerting in place Process Little more detail...
  20. 20. Q&AAnybody who wants ISOs of the following Linux distros, meet me with USB drives after the session. BackTrack, CentOS, Debian, Fedora, Hanthana, MeeGo, Mint, Ubuntu, Ubuntu Server