Configurare i servizi
Il file services.yaml definisce i servizi supportati e utilizzati da Adobe Commerce nell’infrastruttura cloud, ad esempio MySQL, Redis o Valkey, Elasticsearch o OpenSearch. Non è necessario iscriversi a provider di servizi esterni.
.magento/services.yaml è gestito localmente nella directory .magento del progetto. Durante la distribuzione, Adobe Commerce sull’infrastruttura cloud utilizza questa configurazione per fornire servizi supportati per l’ambiente di destinazione. La directory .magento è stata rimossa dal server remoto dopo la distribuzione, pertanto services.yaml non esiste nell'ambiente distribuito.Lo script di distribuzione utilizza i file di configurazione nella directory .magento per eseguire il provisioning dell’ambiente con i servizi configurati. Un servizio diventa disponibile per l’applicazione se è incluso nella proprietà relationships del file .magento.app.yaml. Il file services.yaml contiene i valori type e disk. Il tipo di servizio definisce il servizio name e version.
La configurazione del servizio in .magento/services.yaml è separata dalle dipendenze del pacchetto PHP e Composer definite in composer.json e bloccate in composer.lock.
Dove si applicano le modifiche al servizio
La modifica della configurazione di un servizio determina il provisioning dell’ambiente con i servizi aggiornati tramite una distribuzione che interessa i seguenti ambienti:
- Tutti gli ambienti Starter inclusa la produzione
master - Ambienti di integrazione Pro
Supporto dei servizi Pro
Per richiedere e completare un aggiornamento del servizio Pro in Staging o Produzione, effettuare le seguenti operazioni:
-
Per installare o aggiornare servizi solo negli ambienti
StagingeProduction, invia un ticket di supporto Adobe Commerce.Nel ticket, specifica le modifiche del servizio richieste, includi i file aggiornati
.magento.app.yamle.magento/services.yamle annota la versione PHP di destinazione.La versione PHP, gli aggiornamenti del Compositore, le estensioni e le impostazioni di ambiente sono modifiche self-service. Adobe potrebbe dover aggiornare l’agente New Relic per garantire la compatibilità della versione PHP. Vedi Impostazioni PHP in Configurazione applicazione.
note important IMPORTANT Quando selezioni il campo Environment nel modulo del ticket, utilizza la denominazione dell'ambiente di Adobe. Ad esempio, seleziona Staging anche se chiami l'ambiente Dev internamente. È possibile indicare il proprio nome interno nella descrizione, ma il campo Environment deve utilizzare la nomenclatura di Adobe. -
Confermare la pianificazione dell’aggiornamento tramite il processo in due parti di Adobe: confermare prima la data e l’ora richieste, quindi inviarle al team dell’infrastruttura per la conferma finale.
I cambiamenti di produzione (solo Pro) richiedono un preavviso di almeno due giorni lavorativi, esclusi i fine settimana. Ad esempio, il team di Cloud Infrastructure deve riconoscere un aggiornamento del lunedì entro il mercoledì precedente. Prevedere un lead time aggiuntivo durante il picco della domanda. Per evitare ritardi, rispondi alla richiesta iniziale almeno 48 ore prima della finestra. L’aggiornamento non viene considerato pianificato fino a quando non ricevi una conferma finale.
note NOTE Fornisci finestre di manutenzione in UTC. Gli aggiornamenti di staging non vengono pianificati in anticipo e vengono in genere completati lo stesso giorno della richiesta. Dopo un aggiornamento di RabbitMQ, ridistribuire l’ambiente per reinizializzare le code dei messaggi. -
Convalidare l’aggiornamento in un ambiente di staging o integrazione prima di pianificarlo in produzione.
I problemi causati dai moduli di terze parti, dal codice personalizzato o dalla compatibilità delle dipendenze spesso emergono durante la ridistribuzione che segue un aggiornamento del servizio. Per convalidare più aggiornamenti di servizio uno alla volta, un ordine ragionevole è Valkey o Redis, quindi RabbitMQ, OpenSearch, quindi MariaDB. Questa non è una sequenza obbligatoria. Gli aggiornamenti del database hanno il massimo impatto operativo e meritano la massima cautela.
Adobe non garantisce in anticipo la durata esatta di una finestra di manutenzione di produzione, poiché la tempistica dipende dall’ambiente e dai servizi coinvolti. Utilizza il tempo impiegato dall’aggiornamento di staging come stima pratica durante la pianificazione della finestra Produzione.
-
Ridistribuisci l’ambiente dopo che Adobe ha completato l’aggiornamento del servizio in modo che la modifica abbia effetto, anche se la versione dell’applicazione Adobe Commerce non cambia.
Se l’aggiornamento include OpenSearch, pianificare anche una reindicizzazione completa. Adobe non può garantire tempi di inattività pari a zero per un aggiornamento del servizio, pertanto pianifica una finestra di manutenzione che consenta di ridistribuire il tempo, reindicizzare se necessario e convalidare la vetrina e l’amministratore prima di riaprire il sito.
Disponibilità del cliente durante gli aggiornamenti
Un rappresentante del team o del partner di implementazione deve essere disponibile online per la durata della finestra di aggiornamento produzione pianificata. La pianificazione durante un periodo di traffico ridotto non impedisce l’esecuzione dell’aggiornamento. Adobe gestisce l’aggiornamento dell’infrastruttura cloud, ma non può convalidare il comportamento dell’applicazione, le integrazioni, il codice personalizzato o i flussi di lavoro aziendali.
Il rappresentante disponibile deve poter:
- Monitora le transazioni di storefront e le transazioni aziendali critiche durante e dopo l’aggiornamento.
- Rispondi alle domande del supporto Adobe o del team di Cloud Infrastructure.
- Verificare che integrazioni, estensioni, personalizzazioni, processi cron, code e altre funzioni specifiche del cliente funzionino come previsto.
- Convalida flussi di lavoro business-critical, ad esempio estrazione, visualizzazioni catalogo, ricerca, accesso ed elaborazione degli ordini.
- Segnala comportamenti imprevisti immediatamente, mentre il contesto di aggiornamento e i registri sono ancora disponibili.
Modalità di manutenzione
La modalità di manutenzione non sostituisce la disponibilità del cliente. La modalità di manutenzione blocca l’accesso alla vetrina, ma non convalida i servizi dell’applicazione, le integrazioni, le code, i processi cron, il pagamento o altre funzioni specifiche del cliente.
Se il lavoro pianificato richiede la modalità di manutenzione, coordinane l’utilizzo con il supporto Adobe e segui le istruzioni per l’aggiornamento. In seguito, verifica che la vetrina e i flussi di lavoro critici funzionino normalmente prima di considerare il lavoro completato.
Servizi predefiniti e supportati
Adobe Commerce su infrastruttura cloud supporta i seguenti servizi, che possono essere configurati per il progetto:
Visualizza servizi e versioni configurati
È possibile visualizzare definizioni di servizio di esempio e valori del disco nel file services.yaml del modello corrente. Le versioni predefinite e supportate effettive dipendono dalla versione di Adobe Commerce e dal modello cloud corrente.
Nell’esempio seguente vengono illustrate le definizioni dei servizi nel file di configurazione services.yaml:
mysql:
type: mysql:11.8
disk: 5120
cache:
type: valkey:9.0
opensearch:
type: opensearch:3 # minor version not required; uses latest
disk: 1024
rabbitmq:
type: rabbitmq:4.3
disk: 1024
activemq-artemis:
type: activemq-artemis:2.42
disk: 1024
Valori del servizio
Specificare l’ID servizio e la configurazione del tipo di servizio type: <name>:<version>. Se il servizio utilizza l’archiviazione permanente, è necessario specificare un valore del disco.
Utilizza il seguente formato:
<service-id>:
type: <name>:<version>
disk: <value-MB>
service-id
Il valore service-id identifica il servizio nel progetto. È possibile utilizzare solo caratteri alfanumerici minuscoli: a a z e 0 a 9, ad esempio valkey.
Il valore service-id è utilizzato nella proprietà relationships del file di configurazione .magento.app.yaml:
relationships:
valkey: "valkey:valkey"
È possibile denominare più istanze di ciascun tipo di servizio. Ad esempio, puoi utilizzare più istanze Valkey, una per la sessione e una per la cache.
valkey:
type: valkey:<version>
valkey2:
type: valkey:<version>
Ridenominazione di un servizio nel file services.yaml:
- Il servizio esistente prima di creare un servizio con il nuovo nome specificato.
- Tutti i dati esistenti per il servizio vengono rimossi. Adobe consiglia di eseguire il backup dell’ambiente Starter prima di modificare il nome di un servizio esistente.
type
Il valore type specifica il nome e la versione del servizio. Ad esempio:
mysql:
type: mysql:10.4
disk
Il valore disk specifica le dimensioni (in MB) dello spazio di archiviazione su disco persistente da allocare al servizio. I servizi che utilizzano l’archiviazione persistente, come MySQL, devono fornire un valore disco. I servizi che utilizzano la memoria invece dello storage persistente, come Valkey, non richiedono un valore del disco.
mysql:
type: mysql:10.4
disk: 5120
La quantità di memoria predefinita corrente per progetto è di 5 GB o 5120 MB. È possibile distribuire tale importo tra l’applicazione e ciascuno dei relativi servizi.
Relazioni di servizio
Nei progetti di infrastruttura cloud di Adobe Commerce, il servizio relazioni configurato nel file .magento.app.yaml determina i servizi disponibili per l’applicazione.
È possibile recuperare i dati di configurazione per tutte le relazioni di servizio dalla variabile di ambiente $MAGENTO_CLOUD_RELATIONSHIPS. I dati di configurazione includono il nome del servizio, il tipo e la versione insieme a tutti i dettagli di connessione richiesti, ad esempio il numero di porta e le credenziali di accesso.
Verifica delle relazioni dall’ambiente di sviluppo locale
-
Dall’ambiente di sviluppo locale, mostra le relazioni per l’ambiente attivo.
code language-bash magento-cloud relationships -
Conferma
serviceetypedalla risposta. La risposta fornisce informazioni sulla connessione, ad esempio l’indirizzo IP e il numero di porta.Risposta del campione abbreviata
code language-yaml valkey: - ... type: 'valkey:8.0' port: 6379 opensearch: - ... type: 'opensearch:3' port: 9200 database: - ... type: 'mysql:11.8' port: 3306
Verifica delle relazioni negli ambienti remoti
-
Utilizza SSH per accedere all’ambiente remoto.
-
Elenca i dati di configurazione delle relazioni per tutti i servizi configurati nell’ambiente.
code language-bash echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_ppin alternativa, utilizzare il comando
ece-toolsseguente per visualizzare le relazioni:code language-bash php ./vendor/bin/ece-tools env:config:show services -
Conferma
serviceetypedalla risposta. La risposta fornisce informazioni sulla connessione, ad esempio l’indirizzo IP, il numero di porta e le credenziali richieste per nome utente e password.
Versioni del servizio
Le versioni distribuite e testate nell’infrastruttura cloud determinano il supporto per la versione del servizio e la compatibilità per Adobe Commerce sull’infrastruttura cloud, che a volte differisce dalle versioni supportate dalle distribuzioni Adobe Commerce on-premise. Consulta Requisiti di sistema nella guida Installazione per un elenco delle dipendenze software di terze parti testate da Adobe con specifiche versioni di Adobe Commerce e Magento Open Source.
Controlli di fine del ciclo di vita del software
Durante il processo di distribuzione, il pacchetto ece-tools controlla le versioni del servizio installate rispetto alle date di fine del ciclo di vita (EOL) per ogni servizio.
- Se la versione di un servizio rientra nei tre mesi successivi alla data di fine del ciclo di vita, nel registro di distribuzione viene visualizzata una notifica.
- Se la data fine del ciclo di vita è nel passato, viene visualizzata una notifica di avviso.
Per mantenere la sicurezza dello store, aggiornare le versioni del software installato prima che raggiungano la fine del ciclo di vita. È possibile rivedere le date di fine del ciclo di vita nel file eol.yaml di ece-tools’.
Migra a OpenSearch
Per Adobe Commerce versione 2.4.4 e successive, vedere Configurazione del servizio OpenSearch.
Modifica versione del servizio
Puoi aggiornare la versione del servizio installata per renderla compatibile con la versione di Adobe Commerce implementata nell’ambiente Cloud.
Non è possibile eseguire direttamente il downgrade della versione del servizio per un servizio installato. Tuttavia, puoi creare un servizio con la versione richiesta. Vedi Versione servizio di downgrade.
Aggiorna versione del servizio installata
È possibile aggiornare la versione del servizio installata aggiornando la configurazione del servizio nel file services.yaml.
-
Modificare il valore
typeper il servizio nel file.magento/services.yaml:Definizione del servizio originale
code language-yaml mysql: type: mysql:11.8 disk: 2048Definizione del servizio aggiornata
code language-yaml mysql: type: mysql:12.3 disk: 5120 -
Aggiungi, esegui il commit e invia le modifiche al codice.
code language-bash git add .magento/services.yamlcode language-bash git commit -m "Upgrade MySQL from MariaDB 11.8 to 12.3."code language-bash git push origin <branch-name>
Versione di downgrade
Non è possibile eseguire direttamente il downgrade di un servizio installato. Sono disponibili due opzioni:
-
Rinomina un servizio esistente con la nuova versione, che rimuove il servizio e i dati esistenti e ne aggiunge uno nuovo.
-
Crea un servizio e salva i dati dal servizio esistente.
Quando si modifica la versione del servizio, è necessario aggiornare la configurazione del servizio nel file services.yaml e aggiornare le relazioni nel file .magento.app.yaml.
Eseguire il downgrade di una versione del servizio rinominando un servizio esistente
-
Rinominare il servizio esistente nel file
.magento/services.yamle modificare la versione.note warning WARNING La ridenominazione di un servizio esistente lo sostituisce ed elimina tutti i dati. Se devi conservare i dati, crea un servizio invece di rinominare quello esistente. Ad esempio, per eseguire il downgrade della versione di MariaDB per il servizio mysql dalla versione 10.4 alla versione 10.3, modificare la configurazione esistente di service-id e type.
Definizione
services.yamloriginalecode language-yaml mysql: type: mysql:10.4 disk: 5120Nuova definizione
services.yamlcode language-yaml mysql2: type: mysql:10.3 disk: 5120 -
Aggiornare le relazioni nel file
.magento.app.yaml.Configurazione
.magento.app.yamloriginalecode language-yaml relationships: database: "mysql:mysql"Aggiornamento della configurazione di
.magento.app.yamlcode language-yaml relationships: database: "mysql2:mysql" -
Aggiungi, esegui il commit e invia le modifiche al codice.
Eseguire il downgrade di un servizio creando un servizio
-
Aggiungere una definizione di servizio al file
services.yamlper il progetto con la specifica della versione ridotta. Vedi mysql2 nell’esempio seguente:services.yaml
code language-yaml mysql: type: mysql:10.4 disk: 5120 mysql2: type: mysql:10.3 disk: 5120 -
Per utilizzare il nuovo servizio, modificare la configurazione delle relazioni nel file
.magento.app.yaml.Configurazione
.magento.app.yamloriginalecode language-yaml relationships: database: "mysql:mysql"Nuova configurazione di
.magento.app.yamlcode language-yaml relationships: database: "mysql2:mysql" -
Aggiungi, esegui il commit e invia le modifiche al codice.