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.

TIP
De Adobe adviseert het creëren van a steunvan het milieu vóór plaatsingen.

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:

  1. Loginaan uw project.

  2. Selecteer de integration -vertakking.

  3. Selecteer de optie van de Fusie om aan het Opvoeren op te stellen.

    Fusie {width="150"}

  4. Voltooi al het testenin het milieu van het Staging.

  5. 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:

  1. Loginaan uw project.

  2. Selecteer de voorbereide codevertakking.

  3. Selecteer de optie van de Fusie om aan het Opvoeren op te stellen.

    Fusie {width="150"}

  4. Voltooi al het testenin het milieu van het Staging.

  5. 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

  1. Na het registreren in het project, controleer het integratiemilieu:

    code language-bash
    magento-cloud environment:checkout <environment-ID>
    
  2. Synchroniseer uw lokale integratieomgeving met de externe omgeving:

    code language-bash
    magento-cloud environment:synchronize <environment-ID>
    
  3. Maak een momentopname van de omgeving als back-up:

    code language-bash
    magento-cloud snapshot: create -e <environment-ID>
    
  4. Werk de code in uw lokale vertakking naar wens bij.

  5. Wijzigingen aan de omgeving toevoegen, doorvoeren en doorvoeren.

    code language-bash
    git add -A && git commit -m "Commit message" && git push origin <environment-ID>
    
  6. Volledige sitetests.

Stap 2: De veranderingen van de fusie in het Staging en stelt op

  1. Bekijk de testomgeving:

    code language-bash
    magento-cloud environment:checkout <environment-ID>
    
  2. Synchroniseer uw lokale Staging-omgeving met de externe omgeving:

    code language-bash
    magento-cloud environment:synchronize <environment-ID>
    
  3. Maak een momentopname van de omgeving als back-up:

    code language-bash
    magento-cloud snapshot: create -e <environment-ID>
    
  4. Voeg de integratieomgeving samen tot Staging om te implementeren:

    code language-bash
    magento-cloud environment:merge <integration-ID>
    
  5. Volledige sitetests.

Stap 3: Distribueren naar productie

  1. U kunt een momentopname van uw lokale productieomgeving uitchecken, synchroniseren en maken.

  2. Voeg de het Staging milieu aan Productie samen om op te stellen:

    code language-bash
    magento-cloud environment:merge <staging-ID>
    
  3. 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-archive
  • z bestanden comprimeren tijdens de migratie
  • v-verbose
  • P gedeeltelijke voortgang

Zie 🔗 hulp 0} opnieuw synchroniseren.

NOTE
Om media van ver-aan-verre milieu's direct over te brengen, moet u de agent van SSH toelaten door:sturen, zie {de begeleiding van 0} GitHub 🔗.

om statische dossiers van ver-aan-verre milieu's direct te migreren (snelle benadering):

  1. 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>
    
  2. Gebruik de opdracht rsync om de map pub/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/
    
  3. Meld u aan bij de andere externe omgeving om te controleren of de bestanden correct zijn gemigreerd.

De database migreren

WARNING
Het importeren en exporteren van databases kan veel tijd in beslag nemen. Dit kan de prestaties en beschikbaarheid van de site beïnvloeden. Plan de invoer en de uitvoerverrichtingen tijdens off-piekuren om langzame prestaties of stroomonderbrekingen op de plaatsen van de Productie te verhinderen.
recommendation-more-help

Vereiste: Een gegevensbestandstortplaats (zie Stap 3) zou gegevensbestandtrekkers moeten omvatten. Voor het dumpen van hen, bevestig u het voorrechten van de TRIGGERhebt.

IMPORTANT
De gegevensbank van het integratiemilieu is strikt voor ontwikkelingstests en kan gegevens omvatten die u niet in het Opvoeren en Productie wilt migreren.

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.

NOTE
Om media van ver-aan-verre milieu's rechtstreeks over te brengen moet u de agent toelaten door:sturen, zie {de begeleiding van 0} GitHub 🔗.

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:

  1. SSH van het Gebruik aan login aan het verre milieudat het gegevensbestand aan exemplaar bevat.

  2. 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).

  3. 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
  4. 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
    
  5. 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:

  1. Vestig een tunnel van SSHaan het verre milieu.

  2. Maak verbinding met de databaseservice.

    code language-bash
    mysql --host=127.0.0.1 --user='<database-username>' --pass='<user-password>' --database='<name>' --port='<port>'
    
  3. 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>;
    
  4. Maak de database opnieuw.

    Voor Starter- en Pro-integratie:

    code language-shell
    create database main;
    
  5. 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.

05f2f56e-ac5d-4931-8cdb-764e60e16f26