Bästa praxis för driftsättning
Bygg och distribuera skript som aktiveras när du sammanfogar kod till en fjärrmiljö. Dessa skript använder konfigurationsfiler för miljön och programkod för att tillhandahålla molninfrastruktur med lämpliga data och tjänster. Dessa skript används också för att installera eller uppdatera Adobe Commerce-programmet, tredjepartstjänster och anpassade tillägg i molnmiljön.
Processen för att skapa och distribuera skiljer sig något åt för varje plan:
-
Starter-planer - För integreringsmiljön byggs och distribueras alla aktiva grenar till en fullständig miljö för åtkomst och testning. Testa koden fullständigt efter sammanslagning med grenen
staging
. Om du vill starta webbplatsen trycker du påstaging
tillmaster
för att distribuera till produktionsmiljön. Du har fullständig åtkomst till alla grenar via kommandona Cloud Console och CLI. -
Pro-planer - För integreringsmiljön byggs och distribueras alla aktiva grenar till en fullständig miljö för åtkomst och testning. Koppla koden till grenen
integration
innan du sammanfogar den med miljöerna Förproduktion och Förproduktion. Du kan sammanfoga till miljö för förproduktion och produktion med hjälp av kommandona Cloud Console eller SSH ochmagento-cloud
CLI.
Spåra processen
Du kan spåra bygg- och distributionsåtgärder i realtid med terminalen eller statusmeddelandena Cloud Console - in-progress
, pending
, success
eller failed
- som visas under distributionsprocessen. Du kan visa information i loggfilerna. Se Visa loggar.
Om du använder externa GitHub-databaser visas inte åtgärdsloggen i GitHub-sessionen. Du kan dock fortfarande följa aktiviteten i gränssnittet för den externa databasen och Cloud Console. Se Integrationer.
Du kan aktivera Spåra distributioner med New Relic för att övervaka distributionshändelser och analysera prestanda mellan distributioner.
Bästa tillvägagångssätt för byggen och driftsättningen
Granska de bästa metoderna och övervägandena för din distributionsprocess:
-
Kontrollera att du kör den senaste versionen av
ece-tools
package -
Följ processen för att skapa och distribuera
Se till att du har rätt kod i varje miljö för att undvika att skriva över konfigurationer när du sammanfogar kod mellan miljöer. Om du till exempel vill använda konfigurationsändringar i alla miljöer ändrar och testar du ändringarna i den lokala miljön innan du distribuerar till fjärrintegreringsmiljön. Distribuera och testa sedan ändringarna i mellanlagringsmiljön innan du distribuerar till Production. När du sammanfogar från en miljö till en annan skrivs all kod i miljön över, förutom miljöspecifik konfiguration och inställningar.
-
Använd samma variabler i olika miljöer
Värdena för dessa variabler kan variera mellan olika miljöer, men du behöver vanligtvis samma variabler i varje miljö. Se Konfigurationshantering för lagringsinställningar.
-
Behåll känsliga konfigurationsvärden och data i miljöspecifika variabler
Dessa värden innehåller variabler som anges med Cloud CLI, Cloud Console eller som läggs till i filen
env.php
. Se Variabelnivåer. -
Kontrollera att all kod är tillgänglig i miljögrenen
Att referera till kod från andra grenar, till exempel en privat gren, kan orsaka problem under bygg- och distributionsprocessen. Om du till exempel refererar till ett tema från en privat gren är temat inte tillgängligt och kan inte byggas med programkoden.
-
Lägg till tillägg, integreringar och kod i itererade grenar
Gör och testa ändringar lokalt, skicka till
integration
, sedan tillstaging
ochproduction
. Testa och åtgärda problem i varje miljö innan du sammanfogar uppdateringarna med nästa miljö. Vissa tillägg och integreringar måste aktiveras och konfigureras i en viss ordning på grund av beroenden. Om du lägger till och testar i grupper kan det göra bygg- och driftsättningsprocessen mycket enklare och hjälpa till att avgöra var problemen uppstår. -
Verifiera tjänstversioner och relationer och möjligheten att ansluta
Kontrollera vilka tjänster som är tillgängliga för ditt program och se till att du använder den senaste kompatibla versionen. Se Servicerelationer och Systemkrav i installationshandboken för rekommenderade versioner.
-
Testa lokalt och i integreringsmiljön innan du distribuerar till Förproduktion och Produktion
Identifiera och åtgärda problem i den lokala miljön och integreringsmiljön för att förhindra längre driftstopp när du distribuerar till förproduktionsmiljöer.
note tip TIP Det finns smarta guidekommandon som du kan använda för att verifiera att din molnprojektskonfiguration följer bästa praxis för bygg- och distributionskonfiguration, inklusive strategi för statisk innehållsdistribution (SCD). -
När du har slutfört testningen i lokala miljöer och integreringsmiljöer distribuerar och testar du i mellanlagringsmiljön
-
Kontrollera konfigurationen för produktionsmiljön
Utför följande uppgifter innan du distribuerar till Production:
-
Kontrollera att du kan ansluta till alla tre noderna i produktionsmiljön med SSH.
-
Kontrollera att indexerare är inställda på Uppdatera i schema. Se Indexeringslägen i Utvecklarhandbok för tillägg.
-
Förbered miljön genom att uppdatera alla miljöspecifika variabler i produktionskoden, verifiera tjänstens tillgänglighet och kompatibilitet samt göra andra nödvändiga konfigurationsändringar.
-
-
Övervaka distributionsprocessen
Granska distributionsstatusmeddelandena och åtgärda problemen efter behov. Granska loggarna i molnet för detaljerade loggmeddelanden.
Fem faser av integration, skapande och driftsättning
Följande faser utförs i den lokala utvecklingsmiljön och i integreringsmiljön. För Pro-planer distribueras koden inte till förproduktionsmiljöer eller produktionsmiljöer i dessa initiala faser.
Fas 1: Validering av kod och konfiguration
När du först konfigurerade ett projekt utgör molninfrastrukturmallen en grund för kodfilerna. Den här kodrapporten klonas till ditt projekt som grenen master
.
- För Starter—
master
-grenen är din produktionsmiljö. - För Pro—
master
börjar som ursprunglig gren för integreringsmiljön.
Skapa en gren från master
för din anpassade kod, tillägg och moduler samt tredjepartsintegreringar. Det finns en fjärrintegrerad miljö för att testa koden i molnet.
När du skickar koden från den lokala arbetsytan till fjärrdatabasen slutförs en serie kontroller och kodvalideringar innan skripten byggs och distribueras. Den inbyggda Git-servern validerar det du gör och gör ändringar. Om du till exempel lägger till en OpenSearch-tjänst verifierar den inbyggda Git-servern att topologin för ditt kluster ändras i enlighet med detta.
Om du har ett syntaxfel i en konfigurationsfil avvisar Git-servern push-åtgärden. Se Skyddsblock.
Den här fasen kör även composer install
för att hämta beroenden.
Fas 2: Bygge
Den här fasen skapar kodbasen och kör kopplingar i avsnittet build
i .magento.app.yaml
. Standardbyggkroken är kommandot php ./vendor/bin/ece-tools
och utför följande:
- Tillämpar korrigeringar i
vendor/magento/ece-patches
och valfria, projektspecifika korrigeringar im2-hotfixes
- Återskapar kod och konfigurationen för beroendeinjektionen (d.v.s. katalogen
generated/
som innehållergenerated/code
ochgenerated/metapackage
) medbin/magento setup:di:compile
. - Kontrollerar om filen
app/etc/config.php
finns i kodbasen. Adobe Commerce genererar automatiskt den här filen om den inte upptäcks under byggfasen och innehåller en lista med moduler och tillägg. Om den finns fortsätter byggfasen som vanligt, statiska filer komprimeras med GZIP och distribueras, vilket minskar driftstoppen i distributionsfasen. Mer information om hur du anpassar eller inaktiverar filkomprimering finns i byggalternativ.
När programmet har byggts monteras det i ett skrivskyddat filsystem. Du kan konfigurera specifika monteringspunkter som ska läsas/skrivas. Du kan inte använda FTP på servern och lägga till moduler. I stället måste du lägga till kod i din lokala databas och köra git push
, som skapar och distribuerar miljön. Information om projektstrukturen finns i Lokal projektkatalogstruktur.
Fas 3: Förbered instruktionsmarginalen
Resultatet av byggfasen är ett skrivskyddat filsystem som kallas instruktionsmarginal. Den här fasen skapar ett arkiv och placerar instruktionsmarginalen i permanent förvaring. Nästa gång du trycker på kod används instruktionsmarginalen från arkivet om tjänsten inte ändrades.
- Gör att integrationen går fortare genom att återanvända oförändrad kod
- Om koden ändras uppdateras instruktionsmarginalen för nästa version så att den återanvänds
- Möjliggör omedelbar återställning av en distribution vid behov
- Inkluderar statiska filer om filen
app/etc/config.php
finns i kodbasen
Instruktionsmarginalen innehåller alla filer och mappar förutom följande monteringar som konfigurerats i magento.app.yaml
:
"var": "shared:files/var"
"app/etc": "shared:files/etc"
"pub/media": "shared:files/media"
"pub/static": "shared:files/static"
Fas 4: Distribuera instruktionsmarginaler och kluster
Dina program och alla backend-tjänster tillhandahålls enligt följande:
- Monterar varje tjänst i en behållare, till exempel webbserver, OpenSearch, RabbitMQ
- Monterar filsystemet för läsbehörighet (monterat på ett distribuerat lagringsrutnät med hög tillgänglighet)
- Konfigurerar nätverket så att tjänsterna kan "se" varandra (och bara varandra)
Fas 5: Distributionsnätverk
I det sista steget körs ett distributionsskript som du kan använda för att anonymisera data i utvecklingsmiljöer, rensa cacheminnen och fråga efter externa verktyg för kontinuerlig integrering. När det här skriptet körs har du tillgång till alla tjänster i din miljö, till exempel Redis.
Om filen app/etc/config.php
inte finns i kodbasen komprimeras statiska filer med gzip
och distribueras under den här fasen, vilket ökar längden på distributionsfasen och platsunderhållet.
Det finns två driftsättningskrokar. pre-deploy.php
-kroken slutför nödvändig rensning och hämtning av resurser och kod som genererats i byggkroken. Haken php ./vendor/bin/ece-tools deploy
kör en serie kommandon och skript:
-
Om Adobe Commerce inte är installerat installeras det med
bin/magento setup:install
, distributionskonfigurationenapp/etc/env.php
och databasen för den angivna miljön, till exempel Redis och URL-adresser för webbplatser, uppdateras. Viktigt! När du slutförde Första distributionen under installationen installerades Adobe Commerce och distribuerades i alla miljöer. -
Om Adobe Commerce är installerat utför du alla nödvändiga uppgraderingar. Distributionsskriptet kör
bin/magento setup:upgrade
för att uppdatera databasschemat och data (vilket är nödvändigt efter tilläggs- eller kärnkodsuppdateringar) och även uppdaterar distributionskonfigurationen,app/etc/env.php
, och databasen för din miljö. Distributionsskriptet rensar slutligen cacheminnet för Adobe Commerce. -
Skriptet genererar eventuellt statiskt webbinnehåll med kommandot
magento setup:static-content:deploy
. -
Använder omfattningar (
-s
-flagga i byggskript) med standardinställningenquick
för statisk innehållsdistributionsstrategi. Du kan anpassa strategin med miljövariabelnSCD_STRATEGY
. Mer information om dessa alternativ och funktioner finns i Distributionsstrategier för statiska filer och flaggan-s
för Distribuera statiska visningsfiler.
.magento
, och skriptet tar sedan bort katalogen och dess innehåll. Din lokala utvecklingsmiljö påverkas inte.Post-distribution: konfigurera routning
När distributionen körs stoppas inkommande trafik vid startpunkten i 60 sekunder och routningen konfigureras om så att webbtrafiken kommer till det nyligen skapade klustret.
Distributionen har slutförts. Underhållsläget tas bort så att normal åtkomst tillåts och säkerhetskopierade (BAK) filer skapas för app/etc/env.php
och app/etc/config.php
-konfigurationsfilerna.
Aktivera generering av statiskt innehåll med variabeln SCD_ON_DEMAND
och konfigurera post_deploy
kroken så att den rensar cachen och läser in cacheminnet efter att behållaren börjar acceptera anslutningar och under normal, inkommande trafik.
Mer information om hur du granskar bygg- och distributionsloggar finns i Visa loggar.