configuração do servidor dois para loja on-line (Magento)
-
10-07-2019 - |
Pergunta
Estou desenvolvendo uma loja online com Magento. O site será alto tráfego e terá uma configuração de dois servidores, teste e produção.
A minha pergunta é como é que as lojas online, especificamente Magento lidar com isso?
A ideia que tive é:
- local de levar a produção off-line
- banco de dados de teste vazio
- Copiar dados de banco de dados de produção. (Talvez)
- Test
- Copiar arquivos e banco de dados para o site Production
Eu sei Magento oferece uma opção da empresa, mas este é um script que eu gostaria de me escrever.
Solução
Você não deve precisar de tomar o local de produção off-line.
O que eu gostaria sugest (e você deve ser capaz de roteiro isso) é no local de produção para executar mysqldump -u root -ppassword db_name > db_name.sql
para produzir uma cópia do banco de dados. em seguida, rsync executar (você pode obtê-lo tanto para Linux e Windows) no diretório de arquivos para o rsync para a máquina de teste todos os arquivos que deseja copiar (imagens?)
Depois de fazer qualquer teste em sua que você deseja impulso à produção que pode fazer-se uma das 2 maneiras. ou (e eu prefiro este método) salvar as alterações feitas ao banco de dados em um arquivo SQL e executá-lo no local de produção e, ao mesmo tempo sincronização arquivos de volta qualquer alterados. ou você pode usar mysql para registrar todas as consultas para um arquivo, em seguida, re-jogar estes no local de produção.
Melhor para não tomar o local de produção para baixo se você não precisa.
Outras dicas
Você quer mySQL master / slave com a leitura do escravo do banco de dados escravo, mas escrito ao vivo. Isso pode ser configurado no arquivo local.xml. Você deve ser capaz de executar o rsync para os arquivos, com --exclude para o var / session e arquivos var / cache. Além disso, você pode querer --exclude o logotipo se é um servidor de desenvolvimento. O logotipo pode ser mudado para dizer 'teste' para que você não confundi-lo com Live.
Na verdade, se você fizer alterações para o banco de dados, você terá que tomar o site off-line (mesmo que por apenas alguns segundos), enquanto você mudar a partir do código antigo para o novo código, e executar o script de migração de banco de dados.
Você pode estar interessado em saber que
-
postgres tem DDL transacional: se você quebrar o seu script de migração em uma transação e quebra alguma coisa no meio, a coisa toda é revertida (incluindo TABLE DROP)
-
postgres não precisa reescrever a tabela para adicionar uma coluna (MySQL faz e é muito lento)
-
Se você usar MyISAM você está condenado por muitas razões, uma delas sendo que os backups fazendo vai levar seu site fora do ar por alguns minutos.