Implantar para preparo e produção
O processo de implantação e ativação começa com o desenvolvimento, continua com o armazenamento temporário e termina com a ativação na produção. O Adobe oferece uma solução completa de ambiente para garantir configurações consistentes. Todo ambiente suporta acesso direto de URL à loja e acesso de Admin e SSH para comandos da CLI.
Quando estiver pronto para implantar seu armazenamento, você deve concluir a implantação e o teste no ambiente de preparo antes de implantar na produção. Esta seção fornece instruções e informações detalhadas sobre o processo de criação e implantação, migração de dados e conteúdo e testes.
Além disso, você pode habilitar o Rastrear implantações com o New Relic para monitorar eventos de implantação e ajudar a analisar o desempenho entre implantações.
Fluxo de implantação inicial
A Adobe recomenda criar uma ramificação staging
a partir da ramificação master
para melhor suportar o desenvolvimento e a implantação do seu plano inicial. Você tem dois dos seus quatro ambientes ativos prontos: master
para produção e staging
para preparo.
Para obter informações detalhadas do processo, consulte Iniciar Desenvolvimento e Implantação de Fluxo de Trabalho.
Fluxo de implantação Pro
O Pro vem com um grande ambiente de integração com duas ramificações ativas, uma ramificação global master
, ramificações de Preparo e Produção. Quando você cria seu projeto, o código está pronto para ramificar, desenvolver e enviar para a criação e implantação do site. Embora o ambiente de integração possa ter muitas ramificações, o ambiente de preparo e produção têm apenas uma ramificação para cada ambiente.
Para obter informações detalhadas do processo, consulte Desenvolver e implantar fluxo de trabalho.
Implantar código para preparo
O ambiente de preparo fornece um ambiente de quase produção que inclui um banco de dados, um servidor da Web e todos os serviços, inclusive o Fastly e o New Relic. Você pode enviar, mesclar e implantar totalmente por meio dos Cloud Console ou dos comandos da CLI da nuvem por meio de um aplicativo de terminal.
Implantar código com o Cloud Console
O Cloud Console fornece recursos para criar, gerenciar e implantar código em ambientes de Integração, Preparo e Produção para planos Starter e Pro.
Para projetos Pro, implante a ramificação de integração no preparo:
-
Faça logon no seu projeto.
-
Selecione a ramificação
integration
. -
Selecione a opção Mesclar para implantar em Preparo.
-
Conclua todos os testes no ambiente de preparo.
-
Quando o Preparo estiver pronto, selecione a opção Mesclar para implantar na Produção.
Para Iniciante, implante a ramificação de desenvolvimento no preparo:
-
Faça logon no seu projeto.
-
Selecione a ramificação do código preparado.
-
Selecione a opção Mesclar para implantar em Preparo.
-
Conclua todos os testes no ambiente de preparo.
-
Quando o Preparo estiver pronto, selecione a opção Mesclar para implantar na Produção (
master
).
Implantar código com a linha de comando
A CLI da nuvem fornece comandos para implantar código. Você precisa de acesso SSH e Git para o seu projeto.
Etapa 1: implantar e testar o ambiente de integração
-
Depois de fazer logon no projeto, verifique o ambiente de integração:
code language-bash magento-cloud environment:checkout <environment-ID>
-
Sincronizar o ambiente de integração local com o ambiente remoto:
code language-bash magento-cloud environment:synchronize <environment-ID>
-
Crie um instantâneo do ambiente como um backup:
code language-bash magento-cloud snapshot: create -e <environment-ID>
-
Atualize o código na sua ramificação local, conforme necessário.
-
Adicionar, confirmar e enviar alterações para o ambiente.
code language-bash git add -A && git commit -m "Commit message" && git push origin <environment-ID>
-
Concluir o teste no local.
Etapa 2: mesclar alterações no armazenamento temporário e implantar
-
Confira o Ambiente de preparo:
code language-bash magento-cloud environment:checkout <environment-ID>
-
Sincronizar o ambiente de preparo local com o ambiente remoto:
code language-bash magento-cloud environment:synchronize <environment-ID>
-
Crie um instantâneo do ambiente como um backup:
code language-bash magento-cloud snapshot: create -e <environment-ID>
-
Mescle o ambiente de integração com o ambiente de preparo para implantar:
code language-bash magento-cloud environment:merge <integration-ID>
-
Concluir o teste no local.
Etapa 3: implantar para produção
-
Confira, sincronize e crie um instantâneo do seu ambiente de produção local.
-
Mescle o ambiente de preparo com a produção para implantar:
code language-bash magento-cloud environment:merge <staging-ID>
-
Concluir o teste no local.
Migrar arquivos estáticos
Arquivos estáticos são armazenados em mounts
. Há dois métodos para migrar arquivos de um local de montagem de origem, como o ambiente local, para um local de montagem de destino. Ambos os métodos usam o utilitário rsync
, mas o Adobe recomenda o uso da CLI magento-cloud
para mover arquivos entre os ambientes local e remoto. E o Adobe recomenda usar o método rsync
ao mover arquivos de uma origem remota para um local remoto diferente.
Migrar arquivos usando a CLI
Você pode usar os comandos da CLI do mount:upload
e do mount:download
para migrar arquivos entre os ambientes local e remoto. Ambos os comandos usam o utilitário rsync
, mas os comandos da CLI fornecem opções e prompts personalizados para o ambiente da Adobe Commerce na infraestrutura em nuvem. Por exemplo, se você usar o comando simples sem opções, a CLI solicitará que você selecione a montagem ou as montagens para upload ou download.
magento-cloud mount:download
Exemplo de resposta:
Enter a number to choose a mount to download from:
[0] app/etc
[1] pub/static
[2] var
[3] pub/media
[4] All mounts
> 3
Target directory: ~/pub/media/
Downloading files from the remote mount pub/media to pub/media
Are you sure you want to continue? [Y/n] Y
Para carregar arquivos de uma pasta local pub/media/
para a pasta remota pub/media/
do ambiente atual:
magento-cloud mount:upload --source /path/to/project/pub/media/ --mount pub/media/
Exemplo de resposta:
Uploading files from pub/media to the remote mount pub/media
Are you sure you want to continue? [Y/n] Y
building file list ... done
./
sample-file.jpeg
sent 8.43K bytes received 48 bytes 3.39K bytes/sec
total size is 154.57K speedup is 18.23
Use a opção --help
para os comandos mount:upload
e mount:download
para ver mais opções. Por exemplo, há uma opção --delete
para remover arquivos irrelevantes durante a migração.
Migrar arquivos usando rsync
Como alternativa, você pode usar o utilitário rsync
para migrar arquivos.
rsync -azvP <source> <destination>
Esse comando usa as seguintes opções:
a
-arquivoz
- compactar arquivos durante a migraçãov
-detalhadoP
progresso parcial
Consulte a ajuda do rsync.
Para migrar arquivos estáticos de ambientes remotos para remotos diretamente (abordagem rápida):
-
Use SSH para fazer logon no ambiente de origem. Não use a CLI do
magento-cloud
. O uso da opção-A
é importante porque ela habilita o encaminhamento da conexão do agente de autenticação.note tip TIP Para localizar o link Acesso ao SSH em seu Cloud Console, selecione o ambiente e clique em Acessar Site. code language-bash ssh -A <environment_ssh_link@ssh.region.magento.cloud>
-
Use o comando
rsync
para copiar o diretóriopub/media
do seu ambiente de origem para um ambiente remoto diferente.code language-bash rsync -azvP pub/media/ <destination_environment_ssh_link@ssh.region.magento.cloud>:pub/media/
-
Faça logon em outro ambiente remoto para verificar se os arquivos foram migrados com êxito.
Migrar o banco de dados
Pré-requisito: Um despejo de banco de dados (veja a Etapa 3) deve incluir disparadores de banco de dados. Para despejá-los, confirme se você tem o privilégio de ACIONADOR.
Para implantações de integração contínua, o Adobe não recomenda a migração de dados da Integração para o Armazenamento temporário e a Produção. Você pode passar nos dados de teste ou substituir dados importantes. Todas as configurações vitais são passadas usando o arquivo de configuração e o comando setup:upgrade
durante a compilação e a implantação.
O Adobe recomenda a migração de dados da Produção para o Armazenamento temporário para testar totalmente seu site e armazená-lo em um ambiente de quase produção com todos os serviços e configurações.
Fazer backup do banco de dados
É uma prática recomendada criar um backup do banco de dados. O procedimento a seguir usa a orientação de Fazer backup do banco de dados.
Para despejar o banco de dados:
-
Use SSH para fazer logon no ambiente remoto que contém o banco de dados a ser copiado.
-
Liste os relacionamentos de ambiente e observe as informações de logon do banco de dados.
code language-bash php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"]))->database);'
Para Preparo e Produção Profissionais, o nome do banco de dados está na variável
MAGENTO_CLOUD_RELATIONSHIPS
(normalmente o mesmo que o nome do aplicativo e do usuário). -
Crie um backup do banco de dados. Para escolher um diretório de destino para o despejo do banco de dados, use a opção
--dump-directory
.Para ambientes Starter e ambientes de integração Pro, use
main
como o nome do banco de dados:code language-bash php vendor/bin/ece-tools db-dump main
Opções de despejo:
--dump-directory=<dir>
— Escolha um diretório de destino para o despejo de banco de dados--remove-definers
—Remover instruções DEFINER do despejo de banco de dados
-
Embora o método ECE-Tools seja preferido, outro método é criar um arquivo de despejo de banco de dados usando MySQL nativo no formato GZIP.
code language-bash mysqldump -h <database-host> --user=<database-username> --password=<password> --single-transaction --triggers <database-name> | gzip - > /tmp/database.sql.gz
Se você tiver configurado a autenticação de dois fatores no ambiente de destino, é melhor excluir tabelas 2FA relacionadas para evitar a reconfiguração após a migração do banco de dados:
code language-bash mysqldump -h <database-host> --user=<database-username> --password=<password> --single-transaction --triggers --ignore-table=<database-name>.tfa_user_config --ignore-table=<database-name>.tfa_country_codes <database-name> | gzip - > /tmp/database.sql.gz
-
Digite
logout
para encerrar a conexão SSH.
Remover e recriar o banco de dados
Ao importar dados, você deve eliminar e criar um banco de dados.
Para remover e recriar o banco de dados:
-
Estabeleça um túnel SSH para o ambiente remoto.
-
Conectar ao serviço de banco de dados.
code language-bash mysql --host=127.0.0.1 --user='<database-username>' --pass='<user-password>' --database='<name>' --port='<port>'
-
No prompt
MariaDB [main]>
, descarte o banco de dados.Para integração Starter e Pro:
code language-shell drop database main;
Para produção:
code language-shell drop database <cluster-id>;
Para Preparo:
code language-shell drop database <cluster-ID_stg>;
-
Recrie o banco de dados.
Para integração Starter e Pro:
code language-shell create database main;
-
Importe o banco de dados.
Importar para produção:
code language-shell zcat <cluster-ID>.sql.gz | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | mysql -h 127.0.0.1 -p -u <database-username> <database-name>;
Importar para Preparo:
code language-shell zcat <cluster-ID_stg>.sql.gz | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | mysql -h 127.0.0.1 -p -u <database-username> <database-name>;
Esses comandos descompactam o arquivo de despejo do banco de dados, removem as instruções
DEFINER
e importam o banco de dados usando as credenciais especificadas.