Topics:
- Semi-typical web app
- Dev, staging, production, deploy
- Helpful Python libs
Not:
- Massively scalable web apps
- OS
- Web server
- Database
- Application language
- Log files on machine
- Bigger apps need to aggregate logs across servers
- Loggly
- git
- svn
- PostmarkApp
- Sendgrid
- Amazon SES
- Usually store task queue on Redis or RabbitMQ
- Celery (woo)
- Sentry
- Reduce network calls to DB
- Memcache
- Redis
- Varnish
- Performance, uptime
- New Relic
- Nagios
- Can scale multiple servers
- Master -> Slave
- Read-only slaves for reads, write to master
- Can't edit code in production, so we need multiple environments
- Want your environment to be as close as possible to your prod database
- Vagrant
- Venv
- Docker?
- Might need automation to configure these
- Must deploy across multiple applications simultaneously
- Docker, Chef, Puppet, Ansible, SaltStack
- Should know your tests are passing before code goes to prod
- TravisCI
- CircleCI
- A centralised environment to look at shared code
- Smaller codebases are more maintainable - e.g frontend, backend separation (We should do this)
- Heroku
- ELB
- github.com/heddle317
- Basic pieces of a full stack
- What do these pieces look like in different envs?
- Resources