Today at a session at DrupalCon Prague we went over the environments needed on Drupal.org and their dependencies. Below are the meeting notes. We did not get to cover production concerns.
production
- production services
- Apache
- PHP
- MySQL
- Solr
- Varnish
- public facing traffic
- util copy that fronts git auth
- nginx (https termination)
- gittwisted
- beanstalkd
- load balancer (IPVS/LVS) - old school load balancing system doing layer 4
- NFS
- Jenkins
- puppet
- cfengine (vhost configs for production)
- drupal applications (sites)
- DRBD (Media, Git)
- Elasticsearch
- Kibana
- Logstash
- Mailman
- Drush workers
- Supervisord
- Heartbeat
- runs on the media servers, ipvs/ivs, mysql
- Pacemaker
- Memcache
- drush
- pecl extensions
- pecl memcache
- dns records (not a drupal.org service - OSL provided)
- git (git hooks, version)
- packaging
- cron jobs
- civicrm
- pifr/pift
- drupal modules
- test bot VMs (some in supercell some in AWS)
- servers
- 8 web heads
- 1 util
- 2 db clusters
- 1 master one slave each
- one cluster for d.o
- one for sub sites
staging
- services
- apache
- needs different configuration from prod
- nginx
- we want to replicate ssl on staging (SSL cert)
- mysql
- needs different configuration from prod
- nfs
- needs different configuration from prod
- drupal applications
- needs different configuration from prod
- memcache
- needs different configuration from prod
- dns
- needs different configuration from prod
- php (pecl memcache) 5.3.x
- solr
- varnish (git)
- varnish (frontend)
- gittwisted
- beanstalkd
- dns records
- supervisord
- drush workers
- git (git hooks, version)
- cron jobs
- packaging
- civicrm
- apache
- staging application requirements
- database dump
- currently staging is partially sanitized - no email
- this breaks git
- possibly may want to redirect postfix to a log file so that email can be tested
- files dir (shared files mount for dev instances)
- codebase
- bluecheese
- settings toggles
- critical values
- bakery
- devel blackhole mailer?
- baseurl
- git ssh addresses/ports
- solr
- memcache
- pifr/pift
- honeypot
- devel blackbox mailer
- memcache
- pifr/pift
- rev proxy addressess
- this stuff should be in VCS
- duplicates of cron jobs
- database dump
meta
- jenkins
- create staging from production (dev from prod)
- dumping database
- clean databases
- cron tasks
- normal cron
- civicrm cron
- updating caches
- packaging cron
- really 3 jobs
- updating association members cron (any site that needs to know who is an association member)
- metrics
- 2 jobs
- usage statistics
- create staging from production (dev from prod)
priorities
- closing puppet holes
- cleaning up jenkins scripts