Aanbevolen werkwijzen voor implementatie
Scripts maken en implementeren die worden geactiveerd wanneer u code samenvoegt in een externe omgeving. Deze manuscripten gebruiken milieu configuratiedossiersen toepassingscode aan voorziening wolkeninfrastructuur met aangewezen gegevens en de diensten. Deze scripts worden ook gebruikt om de Adobe Commerce-toepassing, services van derden en aangepaste extensies in de cloud te installeren of bij te werken.
Het bouwstijl en opstellen proces is lichtjes verschillend voor elk plan:
-
de plannen van de Aanzet - voor het integratiemilieu, bouwt elke actieve tak en stelt aan een volledig milieu voor toegang en het testen op. Test de code na het samenvoegen tot de
staging
-vertakking volledig. Als u uw site wilt starten, drukt u opstaging
naarmaster
om deze te implementeren in de productieomgeving. U hebt volledige toegang tot alle takken door Cloud Console en CLI bevelen. -
Pro plannen - voor het integratiemilieu, bouwt elke actieve tak en stelt aan een volledig milieu voor toegang en het testen op. Voeg uw code samen met de
integration
-vertakking voordat u deze samenvoegt tot de omgevingen voor Staging en Productie. U kunt samenvoegen met de instellingen voor Staging en Productie met behulp van de opdrachten Cloud Console of SSH enmagento-cloud
CLI.
Het proces volgen
U kunt bouw volgen en acties in echt - tijd opstellen gebruikend de terminal of Cloud Console berichten van de Status— in-progress
, pending
, success
, of failed
- vertoning tijdens het plaatsingsproces. U kunt details in de logboekdossiers bekijken. Zie Logboeken van de Mening.
Als u externe bewaarplaatsen GitHub gebruikt, toont het logboek van verrichtingen niet in de zitting GitHub. U kunt echter wel de activiteit in de interface voor de externe gegevensopslagruimte en de Cloud Console volgen. Zie Integraties.
U kunt plaatsingen van het Spoor met New Relictoelaten om plaatsingsgebeurtenissen te controleren en prestaties tussen plaatsingen te analyseren.
Aanbevolen werkwijzen voor builds en implementatie
Bekijk deze best practices en overwegingen voor uw implementatieproces:
-
zorg ervoor dat u de huidigste versie van het
ece-tools
pakket in werking steltZie {de nota's van de Versie voor ECE-Hulpmiddelen 🔗.
-
volg het bouwstijl en stel proces op
Zorg ervoor dat u de juiste code in elke omgeving hebt om te voorkomen dat configuraties worden overschreven wanneer u code samenvoegt tussen omgevingen. Bijvoorbeeld, om configuratieveranderingen op alle milieu's toe te passen, wijzig en test de veranderingen in het lokale milieu alvorens aan het verre integratiemilieu op te stellen. Dan, stel en test de veranderingen in het het Opvoeren milieu op alvorens aan Productie op te stellen. Wanneer u van één milieu aan een andere samenvoegt, beschrijft de plaatsing al code in het milieu, behalve milieu-specifieke configuratie en montages.
-
Gebruik de zelfde variabelen over milieu's
De waarden voor deze variabelen kunnen in verschillende omgevingen verschillen, maar meestal hebt u in elke omgeving dezelfde variabelen nodig. Zie beheer van de Configuratie voor opslagmontages.
-
houd gevoelige configuratiewaarden en gegevens in milieu-specifieke variabelen
Deze waarden zijn onder andere variabelen die zijn opgegeven met de CLI van de cloud, de Cloud Console , of die zijn toegevoegd aan het
env.php
-bestand. Zie Variabele niveaus. -
zorg ervoor dat al code in de milieu tak beschikbaar is
Verwijzen naar code van andere takken, zoals een privé tak, kan problemen tijdens het bouwstijl veroorzaken en proces opstellen. Als u bijvoorbeeld naar een thema van een privé-vertakking verwijst, is het thema niet toegankelijk en kan het niet worden samengesteld met de toepassingscode.
-
voegt uitbreidingen, integratie, en code in herhaalde takken toe
Breng lokale wijzigingen aan en test deze. Druk vervolgens op
integration
en opstaging
enproduction
. Test en los problemen in elke omgeving op voordat u de updates samenvoegt tot de volgende omgeving. Sommige uitbreidingen en integratie moeten in een specifieke orde wegens gebiedsdelen worden toegelaten en worden gevormd. Door het toevoegen en testen in groepen kunt u uw ontwikkelings- en implementatieproces veel eenvoudiger maken en bepalen waar zich problemen voordoen. -
verifieer de dienstversies en verhoudingen en de capaciteit om te verbinden
Controleer welke services beschikbaar zijn voor uw toepassing en zorg ervoor dat u de meest actuele, compatibele versie gebruikt. Zie {de verhoudingen van de Dienst 🔗 en vereisten van het Systeemin de gids van de Installatie voor geadviseerde versies.
-
Test plaatselijk en in het integratiemilieu alvorens aan het Opvoeren en Productie op te stellen
Identificeer en los kwesties in uw lokale en integratiemilieu's op om uitgebreide onderbreking te verhinderen wanneer u aan het Opvoeren van Staging en Productiemilieu's opstelt.
note tip TIP Er zijn slimme tovenaarbevelen die u kunt gebruiken om te verifiëren dat uw configuratie van het wolkenproject beste praktijken voor bouwstijl en plaatsingsconfiguratie volgt, met inbegrip van de statische strategie van de inhoudsplaatsing (SCD). -
na het voltooien van het testen in lokale en integratiemilieu's, stel en test in het het Opvoeren milieu op
-
het omgevingsconfiguratie van de Productie van de Controle
Voordat u gaat implementeren in Productie, moet u de volgende taken uitvoeren:
-
Zorg ervoor dat u met alle drie knopen in het milieu van de Productie kunt verbinden gebruikend SSH.
-
Verifieer dat de Indexers aan Update op Programma worden geplaatst. Zie Indexerende wijzenin de Gids van de Ontwikkelaar van de Uitbreiding.
-
Bereid het milieu door om het even welke milieu-specifieke variabelen in de code van de Productie voor te werken, de beschikbaarheid en verenigbaarheid van de dienst te verifiëren, en om het even welke andere vereiste configuratieveranderingen aan te brengen.
-
-
Monitor het opstellen proces
Herzie de berichten van de plaatsingsstatus en verminder kwesties zoals nodig. Herzie de Logboeken van de Wolk 🔗 voor gedetailleerde logboekberichten.
Vijf fasen van integratie bouwen en plaatsing
De volgende fasen komen in uw lokale ontwikkelomgeving en integratieomgeving voor. Voor Pro plannen, wordt de code niet opgesteld aan de het Staging of milieu's van de Productie in deze aanvankelijke fasen.
Fase 1: Validatie van code en configuratie
Wanneer u aanvankelijk opstelling een project, het malplaatje van de wolkeninfrastructuureen basis voor de codedossiers verstrekt. Deze codereeks wordt gekloond aan uw project als master
tak.
- voor Startpagina -
master
tak is uw milieu van de Productie. - voor Pro -
master
begint als oorsprongstak voor het integratiemilieu.
Maak een vertakking vanuit master
voor uw aangepaste code, extensies en modules en integratie van derden. Er is een externe integratieomgeving voor het testen van uw code in de cloud.
Wanneer u uw code van uw lokale werkruimte aan de verre bewaarplaats duwt, voltooit een reeks controles en codebevestigingen alvorens manuscripten te bouwen en op te stellen beginnen. De ingebouwde server van de Git bevestigt wat u duwt en veranderingen aanbrengt. Bijvoorbeeld, als u de dienst OpenSearch toevoegt, verifieert de ingebouwde server van het Git dat de topologie van uw cluster dienovereenkomstig wordt gewijzigd.
Als een configuratiebestand een syntaxisfout bevat, wijst de Git-server de push af. Zie Beschermend Blok.
In deze fase wordt ook composer install
uitgevoerd om afhankelijkheden op te halen.
Fase 2: Genereren
Deze fase bouwt de codebase en voert haken in de build
sectie van .magento.app.yaml
uit. De standaardbuild-haak is de opdracht php ./vendor/bin/ece-tools
en voert het volgende uit:
- Past patches toe in
vendor/magento/ece-patches
en optionele, projectspecifieke patches inm2-hotfixes
- Regenereert code en de configuratie van de gebiedsdeelinjectie(namelijk de
generated/
folder, diegenerated/code
engenerated/metapackage
omvat) gebruikendbin/magento setup:di:compile
. - Controleert of het
app/etc/config.php
-bestand in de codebase bestaat. Adobe Commerce genereert dit bestand automatisch als het tijdens de constructiefase niet wordt gedetecteerd en bevat een lijst met modules en extensies. Als het bestaat, gaat de bouwstijlfase als normaal verder, comprimeert statische dossiers gebruikend GZIP, en stelt op, die onderbreking in de plaatsingsfase vermindert. Verwijs naar bouwt optiesom over het aanpassen van of het onbruikbaar maken van dossiercompressie te leren.
Nadat de toepassing bouwt, wordt het opgezet op a read-only dossiersysteem. U kunt specifieke koppelpunten vormen die zullen worden gelezen/schrijven. U kunt geen FTP aan de server en modules toevoegen. In plaats daarvan moet u code aan uw lokale opslagplaats toevoegen en git push
uitvoeren, die bouwt en het milieu opstelt. Voor de projectstructuur, zie de Lokale structuur van de projectfolder.
Fase 3: De witruimte voorbereiden
Het resultaat van de bouwstijlfase is een read-only dossiersysteem dat als a schuine streep wordt bedoeld. In deze fase wordt een archief gemaakt en wordt de witruimte permanent opgeslagen. De volgende keer dat u code indrukt, wordt de witruimte uit het archief gebruikt als de service niet is gewijzigd.
- Maakt continue integratie sneller opbouwen door ongewijzigde code opnieuw te gebruiken
- Als de code verandert, werkt de schuine streep voor volgende bouwstijl aan hergebruik bij
- Staat voor onmiddellijk het terugkeren van een plaatsing toe, indien nodig
- Bevat statische bestanden als het
app/etc/config.php
-bestand bestaat in de codebase
De schuine streep omvat alle dossiers en omslagen exclusief de volgende in magento.app.yaml
gevormde steunen:
"var": "shared:files/var"
"app/etc": "shared:files/etc"
"pub/media": "shared:files/media"
"pub/static": "shared:files/static"
Fase 4: Slakken en cluster implementeren
Uw toepassingen en alle achterstede dienstvoorziening als volgt:
- Elke service in een container koppelen, zoals een webserver, OpenSearch, RabbitMQ
- Hiermee wordt het lees-schrijfbestandssysteem gemonteerd (op een opslagraster met hoge beschikbaarheid)
- Vormt het netwerk zodat kunnen de diensten "zien"elkaar (en slechts elkaar)
Fase 5: implementatiehaken
De laatste stap stelt een plaatsingsmanuscript in werking, dat u kunt gebruiken om gegevens in ontwikkelomgevingen, duidelijke geheime voorgeheugens, en vraagexterne ononderbroken-integratiegereedschappen anoniem te maken. Wanneer dit manuscript loopt, hebt u toegang tot alle diensten in uw milieu, zoals Redis.
Als het app/etc/config.php
-bestand niet bestaat in de codebase, worden statische bestanden gecomprimeerd met gzip
en geïmplementeerd tijdens deze fase, waardoor de implementatiefase en het siteonderhoud langer worden.
Er zijn twee implementatiehaken. De pre-deploy.php
haak voltooit noodzakelijke schoonmaak en terugwinning van middelen en code die in de bouwstijlhaak wordt geproduceerd. Met de php ./vendor/bin/ece-tools deploy
-haak wordt een reeks opdrachten en scripts uitgevoerd:
-
Als Adobe Commerce niet geïnstalleerd is, installeert het met
bin/magento setup:install
, werkt de plaatsingsconfiguratie,app/etc/env.php
, en het gegevensbestand voor uw gespecificeerde milieu, zoals Redis en website URLs bij. Belangrijk: toen u de Eerste plaatsingtijdens opstelling voltooide, werd Adobe Commerce geïnstalleerd en over alle milieu's opgesteld. -
Als Adobe Commerce geïnstalleerd is, voer om het even welke noodzakelijke verbeteringen uit. Het plaatsingsmanuscript stelt
bin/magento setup:upgrade
in werking om het gegevensbestandschema en de gegevens (die na uitbreiding of kerncode updates noodzakelijk is) bij te werken, en werkt ook de plaatsingsconfiguratie,app/etc/env.php
, en het gegevensbestand voor uw milieu bij. Tot slot wist het plaatsingsmanuscript het geheime voorgeheugen van Adobe Commerce. -
Het script genereert optioneel statische webinhoud met de opdracht
magento setup:static-content:deploy
. -
Gebruikt werkingsgebied (
-s
vlag in bouwstijlmanuscripten) met het gebrek dat vanquick
voor de statische strategie van de inhoudsplaatsing plaatst. U kunt de strategie aanpassen met de omgevingsvariabeleSCD_STRATEGY
. Voor details op deze opties en eigenschappen, zie Statische strategieën van de dossierplaatsingen de-s
vlag voor Statische meningsdossiersopstellen.
.magento
zijn gedefinieerd. Vervolgens verwijdert het script de map en de inhoud ervan. Dit heeft geen invloed op uw lokale ontwikkelomgeving.Post-implementatie: routeringen configureren
Terwijl de plaatsing loopt, stopt het proces inkomend verkeer op het ingangspunt voor 60 seconden en past het verpletteren aan zodat uw Webverkeer bij uw pas gecreëerde cluster aankomt.
Bij een geslaagde implementatie wordt de onderhoudsmodus verwijderd, zodat normale toegang mogelijk is en worden back-upbestanden (BAK-bestanden) gemaakt voor de app/etc/env.php
- en app/etc/config.php
-configuratiebestanden.
Laat statische inhoudsgeneratie toe gebruikend de SCD_ON_DEMAND
variabele en vorm post_deploy
haakzodat het het geheime voorgeheugen ontruimt en (oorlogen) het geheime voorgeheugen na de container begint goedkeurend verbindingen en tijdens normaal, inkomend verkeer.
Om logboeken te herzien bouwen en op te stellen, zie Logboeken van de Mening.