Em nossa empresa, mantemos MUITOS sites Drupal, nossa configuração atual é mais ou menos assim:
- A base de código de cada site tem seu próprio repositório git
- Novos recursos que provavelmente não serão estáveis o suficiente para o próximo lançamento terão seu próprio ramo de recursos no git
O que eu diria acima é bastante comum para a maioria dos sites Drupal.
O que fazemos de especial em nossa empresa é empacotar os sites para implantação usando um comando drush personalizado - ' Drush Debian Packaging '.
O Drush Packaging Debian fornece um comando Drush para compilar pacotes Debian de sites Drupal como um meio de implantar sites Drupal em servidores Debian ou Ubuntu.
O Drush Packaging Debian utiliza o sistema de ganchos Drupal para criar um pacote Debian que melhor se adapte às necessidades de seus sites. Características incluem:
- Configuração automática de host virtual para servidores Web Apache2 e Nginx
- Configuração do Cron em /etc/cron.d
- Implantação automatizada de código com partição dividida para sites / padrão / arquivos
- Configuração automatizada através da ferramenta de configurações do dpkg debconf
- Processo de implantação automatizada
- manipulador Git VCS personalizado para criar pacotes do Git
O que isto significa?
Para criar um release:
cd /path/to/drupal-root
drush dh-make
Para implantar uma versão, primeiro SCP o .deb para todos os servidores Web no cluster. Em seguida, em todos os servidores web, execute (você pode usar o pacote linux cssh para digitar o comando para todos os servidores no farm ao mesmo tempo):
sudo dpkg -i drupal-site-yoursitehere.2011.05.25-1.all.deb
Em um servidor web, execute:
cd /path/to/drupal-root
sudo -u drupal-site-yoursitehere drush updb && drush fra -y && drush cron
Feito
Obviamente, reverter isso agora é trivial do ponto de vista da base de código, basta instalar a versão anterior do .deb em todos os servidores Web e reverter o banco de dados.
É um prazer responder a quaisquer perguntas sobre isso