We deploy Monday to Thursday at set times and will HOTFIX / rollback as needed. Deploys take at most 30 minutes depending on what we're deploying. CI with some CD. I'm a DevOps / Release Eng and one of my reasons for not going full CD is we don't have the acceptable amount of automated tests to fully trust running CD, since our deploy process involves Spot / Smoke tests that are manual. Trying to get management to implement more tests that come from Dev side has been a struggle.
Our stack is Java / Tomcat + PSQL / Memcache. We don't do much load testing mainly because our traffic has been steady and we havn't introduced any new components where we need to gauge load. Not only that but we're probably going to incorporate AWS eventually and do auto-scaling to deal with load. Having functional / unit / integration tests are way more important to us.
Commits to master automatically get deployed to dev environment. Dev gets promoted to test about once a week for internal scale testing. Test gets promoted to stage (which is what the company uses internally) and prod about once every two weeks, depending on the features queued up.
We can go from Dev -> Prod in about two hours (with all our tests running) if there is a real need.
We integrate continuously; deploy to staging almost continuously (probably averages 2x/day per developer); deploy to production 1-3x/week (once we automate that it'll probably be daily or 2x/day on average).