Whether you're developing for high-trafficked web-apps or not, I believe the practice of Continuous Integration has become a common bare-minimum these days.<p>The tricky part when it comes to CI often occurs in the area of test automation, archiving the builds, building for different environment (UAT, STAGE, DEV, PROD), and to deploy it immediately after build (definitely hard if it involves database and migration).<p>Some CIs handle archiving the builds (Atlassian Bamboo comes to mind).<p>Some build system handles multiple builds for different configurations fairly straightforward and easy (Maven Profiles, Rails to some extend)<p>Automated-deployment is still a bit tricky to setup.<p>Certain category of test-automation is hard to do in CI (typically around JS, UI code, and functional testing). This particular area requires high-level of discipline from the development team. This is one of the reasons why some teams/companies prefer to use GWT instead of pure JS due to the known best practices and the work-around for "headless" front-end testing (or at least that was the case in the past, maybe the JS testing landscape has changed ever since).