Distribueren naar Staging en Productie
Het proces voor het opstellen en het gaan leven begint met ontwikkeling, blijft het Opvoeren, en eindigt met het leven in Productie. De Adobe verstrekt een milieu-oplossing van begin tot eind om verenigbare configuraties te verzekeren. Elke milieu steunt directe toegang URL tot de storefront en Admin en toegang SSH voor CLI bevelen.
Wanneer u klaar bent om uw opslag op te stellen, moet u plaatsing en het testen op het Opvoeren milieu voltooien alvorens aan Productie op te stellen. Deze sectie bevat diepgaande instructies en informatie over het proces voor het maken en implementeren, het migreren van gegevens en inhoud en het testen.
Ook, kunt u plaatsingen van het Spoor met New Relictoelaten om plaatsingsgebeurtenissen te controleren en u te helpen prestaties tussen plaatsingen analyseren.
Startimplementatiestroom
Adobe raadt u aan een staging
-vertakking van de master
-vertakking te maken om de ontwikkeling en implementatie van uw Starter-abonnement het beste te ondersteunen. Dan hebt u twee van uw vier actieve milieu's klaar: master
voor Productie en staging
voor Staging.
Voor gedetailleerde informatie van het proces, zie Begin Ontwikkelen en Werkschemaopstellen.
Pro-implementatiestroom
Pro wordt geleverd met een grote integratieomgeving met twee actieve vertakkingen, een globale master
vertakking, Staging en Production vertakkingen. Wanneer u uw project creeert, is de code klaar om zich te vertakken, te ontwikkelen, en te duwen voor de bouw van en het opstellen van uw plaats. Hoewel de integratieomgeving vele vertakkingen kan hebben, hebben het Staging en de Productie slechts één tak voor elk milieu.
Voor gedetailleerde informatie van het proces, zie Pro Ontwikkelen en Werkschemaopstellen.
Code implementeren naar fasering
De het Staging milieu verstrekt een bijna-productiemilieu dat een gegevensbestand, Webserver, en alle diensten met inbegrip van Fastly en New Relic omvat. U kunt volledig duwen, samenvoegen, en door Cloud Console of Cloud CLI bevelendoor een eindtoepassing opstellen.
Code implementeren met de Cloud Console
Cloud Console verstrekt eigenschappen om, code in de milieu's van de Integratie, het Staging, en van de Productie voor Startpagina en Pro plannen tot stand te brengen te beheren en op te stellen.
voor Pro projecten, stel de integratietak aan het opvoeren op:
-
Loginaan uw project.
-
Selecteer de
integration
-vertakking. -
Selecteer de optie van de Fusie om aan het Opvoeren op te stellen.
-
Voltooi al het testenin het milieu van het Staging.
-
Wanneer het Staging klaar is, selecteer de 1} optie van de Fusie {om aan Productie op te stellen.
voor Begin, stel de ontwikkelingstak aan het opvoeren op:
-
Loginaan uw project.
-
Selecteer de voorbereide codevertakking.
-
Selecteer de optie van de Fusie om aan het Opvoeren op te stellen.
-
Voltooi al het testenin het milieu van het Staging.
-
Wanneer het Staging klaar is, selecteer de 1} optie van de Fusie {om aan Productie (
master
) op te stellen.
Code implementeren met de opdrachtregel
De Cloud CLI bevat opdrachten voor het implementeren van code. U hebt SSH en Git toegang tot uw project nodig.
Stap 1: Implementeer en test de integratieomgeving
-
Na het registreren in het project, controleer het integratiemilieu:
code language-bash magento-cloud environment:checkout <environment-ID>
-
Synchroniseer uw lokale integratieomgeving met de externe omgeving:
code language-bash magento-cloud environment:synchronize <environment-ID>
-
Maak een momentopname van de omgeving als back-up:
code language-bash magento-cloud snapshot: create -e <environment-ID>
-
Werk de code in uw lokale vertakking naar wens bij.
-
Wijzigingen aan de omgeving toevoegen, doorvoeren en doorvoeren.
code language-bash git add -A && git commit -m "Commit message" && git push origin <environment-ID>
-
Volledige sitetests.
Stap 2: De veranderingen van de fusie in het Staging en stelt op
-
Bekijk de testomgeving:
code language-bash magento-cloud environment:checkout <environment-ID>
-
Synchroniseer uw lokale Staging-omgeving met de externe omgeving:
code language-bash magento-cloud environment:synchronize <environment-ID>
-
Maak een momentopname van de omgeving als back-up:
code language-bash magento-cloud snapshot: create -e <environment-ID>
-
Voeg de integratieomgeving samen tot Staging om te implementeren:
code language-bash magento-cloud environment:merge <integration-ID>
-
Volledige sitetests.
Stap 3: Distribueren naar productie
-
U kunt een momentopname van uw lokale productieomgeving uitchecken, synchroniseren en maken.
-
Voeg de het Staging milieu aan Productie samen om op te stellen:
code language-bash magento-cloud environment:merge <staging-ID>
-
Volledige sitetests.
Statische bestanden migreren
de Statische dossiersworden opgeslagen in mounts
. Er zijn twee methoden voor het migreren van bestanden van een bronmontagelocatie, zoals uw lokale omgeving, naar een doellocatie. Beide methoden gebruiken het hulpprogramma rsync
, maar Adobe raadt u aan de CLI van magento-cloud
te gebruiken om bestanden tussen de lokale en externe omgeving te verplaatsen. En Adobe raadt u aan de methode rsync
te gebruiken wanneer u bestanden van een externe bron naar een andere externe locatie verplaatst.
Bestanden migreren met CLI
Met de opdrachten mount:upload
en mount:download
CLI kunt u bestanden migreren tussen de lokale en externe omgeving. Beide opdrachten maken gebruik van het hulpprogramma rsync
, maar de CLI-opdrachten bieden opties en aanwijzingen die zijn afgestemd op de Adobe Commerce op de cloud-infrastructuuromgeving. Bijvoorbeeld, als u het eenvoudige bevel zonder opties gebruikt, vraagt CLI u om te selecteren welke optelling of ophangingen om te uploaden of te downloaden.
magento-cloud mount:download
Monsterrespons:
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
om dossiers van een lokale pub/media/
omslag aan de verre pub/media/
omslag voor het huidige milieu te uploaden:
magento-cloud mount:upload --source /path/to/project/pub/media/ --mount pub/media/
Monsterrespons:
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
Gebruik de optie --help
voor de opdrachten mount:upload
en mount:download
om meer opties weer te geven. Er is bijvoorbeeld een optie --delete
om tijdens de migratie andere bestanden te verwijderen.
Bestanden migreren via synchroniseren
U kunt ook het hulpprogramma rsync
gebruiken om bestanden te migreren.
rsync -azvP <source> <destination>
Voor deze opdracht worden de volgende opties gebruikt:
a
-archivez
bestanden comprimeren tijdens de migratiev
-verboseP
gedeeltelijke voortgang
Zie 🔗 hulp 0} opnieuw synchroniseren.
om statische dossiers van ver-aan-verre milieu's direct te migreren (snelle benadering):
-
Gebruik SSH om u aan te melden bij de bronomgeving. Gebruik de
magento-cloud
CLI niet. Het gebruik van de optie-A
is belangrijk omdat hiermee het doorsturen van de verbinding met de verificatieagent wordt ingeschakeld.note tip TIP Om de toegang van SSH verbinding in uw Cloud Console te vinden, selecteer het milieu en klik Plaats van de Toegang. code language-bash ssh -A <environment_ssh_link@ssh.region.magento.cloud>
-
Gebruik de opdracht
rsync
om de mappub/media
van uw bronomgeving naar een andere externe omgeving te kopiëren.code language-bash rsync -azvP pub/media/ <destination_environment_ssh_link@ssh.region.magento.cloud>:pub/media/
-
Meld u aan bij de andere externe omgeving om te controleren of de bestanden correct zijn gemigreerd.
De database migreren
Vereiste: Een gegevensbestandstortplaats (zie Stap 3) zou gegevensbestandtrekkers moeten omvatten. Voor het dumpen van hen, bevestig u het voorrechten van de TRIGGERhebt.
Voor ononderbroken integratieplaatsingen, adviseert de Adobe niet migrerende gegevens van Integratie aan het Opvoeren en de Productie. U kunt testgegevens doorgeven of belangrijke gegevens overschrijven. Om het even welke vitale configuraties worden overgegaan gebruikend het configuratiedossieren setup:upgrade
bevel tijdens bouwstijl en opstellen.
Adobe adviseert migrerend gegevens van Productie in het Opvoeren om uw plaats volledig te testen en in een dichtbij-productiemilieu met alle diensten en montages op te slaan.
Back-up maken van de database
U kunt het beste een back-up van de database maken. De volgende procedure gebruikt de begeleiding van file het gegevensbestand.
om het gegevensbestand te dumpen:
-
SSH van het Gebruik aan login aan het verre milieudat het gegevensbestand aan exemplaar bevat.
-
Maak een lijst van de omgevingsverhoudingen en neem nota van de gegevens van de gegevensbestandlogin.
code language-bash php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"]))->database);'
Voor Pro Staging en Production staat de naam van de database in de variabele
MAGENTO_CLOUD_RELATIONSHIPS
(doorgaans gelijk aan de toepassingsnaam en gebruikersnaam). -
Maak een back-up van de database. Als u een doelmap voor de DB-dump wilt kiezen, gebruikt u de optie
--dump-directory
.Voor Starter-omgevingen en Pro-integratieomgevingen gebruikt u
main
als de naam van de database:code language-bash php vendor/bin/ece-tools db-dump main
Snelopties:
--dump-directory=<dir>
- Kies een doelmap voor de databasedumpit--remove-definers
—Verwijder DEFINITIEVE instructies uit de databasedumpdump
-
Hoewel de ECE-Hulpmiddelen methode de voorkeur heeft, moet een andere methode een dossier van de gegevensbestandstortplaats creëren gebruikend inheems MySQL in formaat GZIP.
code language-bash mysqldump -h <database-host> --user=<database-username> --password=<password> --single-transaction --triggers <database-name> | gzip - > /tmp/database.sql.gz
Als u tweefelige authentificatie op het doelmilieu hebt gevormd, is het beter om verwante 2FA lijsten uit te sluiten om het te vermijden opnieuw vormend na gegevensbestandmigratie:
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
-
Typ
logout
om de SSH-verbinding te beëindigen.
De database neerzetten en opnieuw maken
Bij het importeren van gegevens moet u een database neerzetten en maken.
om het gegevensbestand te laten vallen en opnieuw te creëren:
-
Vestig een tunnel van SSHaan het verre milieu.
-
Maak verbinding met de databaseservice.
code language-bash mysql --host=127.0.0.1 --user='<database-username>' --pass='<user-password>' --database='<name>' --port='<port>'
-
Laat de database vallen bij de
MariaDB [main]>
prompt.Voor Starter- en Pro-integratie:
code language-shell drop database main;
Voor productie:
code language-shell drop database <cluster-id>;
Voor opmaken:
code language-shell drop database <cluster-ID_stg>;
-
Maak de database opnieuw.
Voor Starter- en Pro-integratie:
code language-shell create database main;
-
De database importeren.
Invoer voor productie:
code language-shell zcat <cluster-ID>.sql.gz | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | mysql -h 127.0.0.1 -p -u <database-username> <database-name>;
Importeren voor faseren:
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>;
Deze opdrachten decomprimeren het databaseddump-bestand, verwijderen de instructies
DEFINER
en importeren de database met de opgegeven referenties.