Know Your Trade Acquire domain-specific knowledge Learn how people build similar services Learn about Technologies Stay updated RTFM / Use Search Engines ;) Learn
Get Right People Find balance in the team Know their strengths Nurture them Set a proper environment Dont step on others toes Team
Go for the Best Solution Have a solid architecture Find a good engineering design Dont over-engineer / over-complicate Avoid architecture degradation Architecture & Design
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
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...
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...
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...
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...
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...
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...
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...
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...
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