Distribuera till mellanlagring och produktion
Processen för att distribuera och publicera börjar med utveckling, fortsätter till Förproduktion och slutar med att publicera i Produktion. Adobe är en totallösning för hela miljön som ger enhetliga konfigurationer. Alla miljöer har stöd för direkt URL-åtkomst till butiken och administratörs- och SSH-åtkomst för CLI-kommandon.
När du är redo att distribuera din butik måste du slutföra distributionen och testningen i mellanlagringsmiljön innan du distribuerar till Production. I det här avsnittet finns detaljerade anvisningar och information om bygg- och distributionsprocessen, migrering av data och innehåll samt testning.
Du kan även aktivera Spåra distributioner med New Relic för att övervaka distributionshändelser och hjälpa dig att analysera prestanda mellan distributioner.
Startdistributionsflöde
Adobe rekommenderar att du skapar en staging
-gren från master
-grenen för att få bästa möjliga stöd för utveckling och distribution av Starter-planen. Sedan har du två av dina fyra aktiva miljöer klara: master
för produktion och staging
för mellanlagring.
Mer information om processen finns i Arbetsflöde för att utveckla och distribuera start.
Driftsättningsflöde
Pro levereras med en stor integreringsmiljö med två aktiva grenar, en global master
-gren, mellanlagring och produktionsgrenar. När du skapar ditt projekt är koden redo att förgrena, utveckla och pusha för att bygga och driftsätta din webbplats. Även om integreringsmiljön kan ha många grenar har Förproduktion och Produktion bara en gren för varje miljö.
Mer information om processen finns i Arbetsflödet Framkalla och distribuera i Pro.
Distribuera kod till mellanlagring
I mellanlagringsmiljön finns en nästan produktionsmiljö som innehåller en databas, webbserver och alla tjänster, inklusive Fastly och New Relic. Du kan överföra, sammanfoga och distribuera fullständigt via Cloud Console- eller Cloud CLI-kommandona via ett terminalprogram.
Distribuera kod med Cloud Console
Cloud Console innehåller funktioner för att skapa, hantera och distribuera kod i integrerings-, mellanlagrings- och produktionsmiljöer för Starter- och Pro-planer.
För Pro-projekt distribuerar du integrationsgrenen till mellanlagring:
Distribuera utvecklingsgrenen till mellanlagring för Starter:
Distribuera kod med kommandoraden
Cloud CLI innehåller kommandon för att distribuera kod. Du behöver SSH- och Git-åtkomst till ditt projekt.
Steg 1: Distribuera och testa integreringsmiljön
-
När du har loggat in i projektet ska du ta en titt på integreringsmiljön:
code language-bash magento-cloud environment:checkout <environment-ID>
-
Synkronisera den lokala integreringsmiljön med fjärrmiljön:
code language-bash magento-cloud environment:synchronize <environment-ID>
-
Skapa en ögonblicksbild av miljön som en säkerhetskopia:
code language-bash magento-cloud snapshot: create -e <environment-ID>
-
Uppdatera kod i din lokala gren efter behov.
-
Lägg till, implementera och skicka ändringar till miljön.
code language-bash git add -A && git commit -m "Commit message" && git push origin <environment-ID>
-
Komplett testning.
Steg 2: Sammanfoga ändringar i Förproduktion och distribuera
-
Ta en titt på Mellanlagringsmiljön:
code language-bash magento-cloud environment:checkout <environment-ID>
-
Synkronisera din lokala mellanlagringsmiljö med fjärrmiljön:
code language-bash magento-cloud environment:synchronize <environment-ID>
-
Skapa en ögonblicksbild av miljön som en säkerhetskopia:
code language-bash magento-cloud snapshot: create -e <environment-ID>
-
Koppla integreringsmiljön till mellanlagring för att distribuera:
code language-bash magento-cloud environment:merge <integration-ID>
-
Komplett testning.
Steg 3: Distribuera till produktion
-
Kolla in, synkronisera och skapa en ögonblicksbild av din lokala produktionsmiljö.
-
Koppla mellanlagringsmiljön till produktionen för att distribuera:
code language-bash magento-cloud environment:merge <staging-ID>
-
Komplett testning.
Migrera statiska filer
Statiska filer lagras i mounts
. Det finns två metoder för att migrera filer från en källmonteringsplats, till exempel din lokala miljö, till en målmonteringsplats. Båda metoderna använder verktyget rsync
, men Adobe rekommenderar att du använder CLI magento-cloud
för att flytta filer mellan den lokala miljön och fjärrmiljön. Och Adobe rekommenderar att du använder metoden rsync
när du flyttar filer från en fjärrkälla till en annan fjärrplats.
Migrera filer med CLI
Du kan använda kommandona mount:upload
och mount:download
CLI för att migrera filer mellan den lokala miljön och fjärrmiljön. Båda kommandona använder verktyget rsync
, men CLI-kommandona innehåller alternativ och uppmaningar som är anpassade till Adobe Commerce i molninfrastrukturmiljön. Om du till exempel använder det enkla kommandot utan alternativ uppmanas du att välja vilka monteringar som ska laddas upp eller laddas ned.
magento-cloud mount:download
Exempelsvar:
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
Så här överför du filer från en lokal pub/media/
-mapp till fjärrmappen pub/media/
för den aktuella miljön:
magento-cloud mount:upload --source /path/to/project/pub/media/ --mount pub/media/
Exempelsvar:
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
Använd alternativet --help
för kommandona mount:upload
och mount:download
om du vill se fler alternativ. Det finns till exempel ett --delete
-alternativ för att ta bort överflödiga filer under migreringen.
Migrera filer med hjälp av synkronisering
Du kan också använda verktyget rsync
för att migrera filer.
rsync -azvP <source> <destination>
Det här kommandot använder följande alternativ:
a
-arkivz
-komprimera filer under migreringenv
- utförligP
-partiella förlopp
Se hjälpen för rsync.
Så här migrerar du statiska filer från fjärr-till-fjärr-miljöer direkt (snabb hantering):
-
Använd SSH för att logga in i källmiljön. Använd inte CLI:n för
magento-cloud
. Det är viktigt att använda alternativet-A
eftersom det möjliggör vidarebefordran av autentiseringsagentanslutningen.note tip TIP Om du vill hitta länken SSH-åtkomst i Cloud Console markerar du miljön och klickar på Åtkomstplats. code language-bash ssh -A <environment_ssh_link@ssh.region.magento.cloud>
-
Använd kommandot
rsync
för att kopiera katalogenpub/media
från källmiljön till en annan fjärrmiljö.code language-bash rsync -azvP pub/media/ <destination_environment_ssh_link@ssh.region.magento.cloud>:pub/media/
-
Logga in på den andra fjärrmiljön för att verifiera att filerna har migrerats.
Migrera databasen
Förutsättning: En databasdump (se steg 3) ska innehålla databasutlösare. Bekräfta att du har privilegiet TRIGGER om du vill dumpa dem.
Adobe rekommenderar inte att migrera data från integrering till mellanlagring och produktion för kontinuerlig integrering. Du kan skicka testdata eller skriva över viktiga data. Viktiga konfigurationer skickas med kommandot konfigurationsfilen och setup:upgrade
under bygget och distributionen.
Adobe rekommenderar att du migrerar data från Production till Staging för att fullständigt testa din webbplats och lagra den i en närproduktionsmiljö med alla tjänster och inställningar.
Säkerhetskopiera databasen
Det är en god vana att skapa en säkerhetskopia av databasen. Följande procedur använder vägledningen från Säkerhetskopiera databasen.
Så här dumpar du databasen:
-
Använd SSH för att logga in i fjärrmiljön som innehåller den databas som ska kopieras.
-
Visa en lista över miljörelationerna och notera databasinloggningsinformationen.
code language-bash php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"]))->database);'
För Pro Staging and Production finns databasens namn i variabeln
MAGENTO_CLOUD_RELATIONSHIPS
(vanligtvis samma som programnamnet och användarnamnet). -
Skapa en säkerhetskopia av databasen. Om du vill välja en målkatalog för DB-dumpen använder du alternativet
--dump-directory
.För Starter-miljöer och Pro-integreringsmiljöer använder du
main
som namn på databasen:code language-bash php vendor/bin/ece-tools db-dump main
Dumpa alternativ:
--dump-directory=<dir>
- Välj en målkatalog för databasdumpen--remove-definers
- Ta bort DEFINER-satser från databasdumpen
-
Även om metoden ECE-Tools är att föredra är en annan metod att skapa en databasdumpfil med hjälp av MySQL i GZIP-format.
code language-bash mysqldump -h <database-host> --user=<database-username> --password=<password> --single-transaction --triggers <database-name> | gzip - > /tmp/database.sql.gz
Om du har konfigurerat tvåfaktorsautentisering i målmiljön är det bättre att exkludera relaterade 2FA-tabeller för att undvika att konfigurera om den efter databasmigrering:
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
-
Skriv
logout
för att avsluta SSH-anslutningen.
Släpp och återskapa databasen
När du importerar data måste du släppa och skapa en databas.
Så här släpper och återskapar du databasen:
-
Upprätta en SSH-tunnel till fjärrmiljön.
-
Anslut till databastjänsten.
code language-bash mysql --host=127.0.0.1 --user='<database-username>' --pass='<user-password>' --database='<name>' --port='<port>'
-
Släpp databasen vid
MariaDB [main]>
-prompten.För integrering med Starter och Pro:
code language-shell drop database main;
För produktion:
code language-shell drop database <cluster-id>;
För mellanlagring:
code language-shell drop database <cluster-ID_stg>;
-
Återskapa databasen.
För integrering med Starter och Pro:
code language-shell create database main;
-
Importera databasen.
Import för produktion:
code language-shell zcat <cluster-ID>.sql.gz | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | mysql -h 127.0.0.1 -p -u <database-username> <database-name>;
Import för mellanlagring:
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>;
Dessa kommandon expanderar databasdumpfilen, tar bort
DEFINER
-programsatserna och importerar databasen med de angivna autentiseringsuppgifterna.