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.

NOTE
Il file .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:

  1. Per installare o aggiornare servizi solo negli ambienti Staging e Production, invia un ticket di supporto Adobe Commerce.

    Nel ticket, specifica le modifiche del servizio richieste, includi i file aggiornati .magento.app.yaml e .magento/services.yaml e 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.
  2. 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.
  3. 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.

  4. 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.
TIP
Per i progetti Pro, gli aggiornamenti dei servizi in produzione richiedono anche una pianificazione anticipata e un processo di conferma in due parti con il supporto Adobe. Consulta il supporto per Pro Services.

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:

NOTE
Aggiornare RabbitMQ in sequenza tra le versioni disponibili. Ad esempio, non eseguire l’aggiornamento direttamente da 3.9 a 4.1.
Per garantire che le code di messaggi personalizzate vengano ricreate in RabbitMQ dopo l’aggiornamento a una nuova versione, attiva una distribuzione completa.

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

  1. Dall’ambiente di sviluppo locale, mostra le relazioni per l’ambiente attivo.

    code language-bash
    magento-cloud relationships
    
  2. Conferma service e type dalla 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

  1. Utilizza SSH per accedere all’ambiente remoto.

  2. Elenca i dati di configurazione delle relazioni per tutti i servizi configurati nell’ambiente.

    code language-bash
    echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
    

    in alternativa, utilizzare il comando ece-tools seguente per visualizzare le relazioni:

    code language-bash
    php ./vendor/bin/ece-tools env:config:show services
    
  3. Conferma service e type dalla 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

WARNING
Elasticsearch 7 e versioni successive non è supportato per Adobe Commerce sull’infrastruttura cloud. Adobe Commerce 2.4.4 e versioni successive supportano il servizio 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.

  1. Modificare il valore type per il servizio nel file .magento/services.yaml:

    Definizione del servizio originale

    code language-yaml
    mysql:
        type: mysql:11.8
        disk: 2048
    

    Definizione del servizio aggiornata

    code language-yaml
    mysql:
        type: mysql:12.3
        disk: 5120
    
  2. Aggiungi, esegui il commit e invia le modifiche al codice.

    code language-bash
    git add .magento/services.yaml
    
    code 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:

  1. Rinomina un servizio esistente con la nuova versione, che rimuove il servizio e i dati esistenti e ne aggiunge uno nuovo.

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

  1. Rinominare il servizio esistente nel file .magento/services.yaml e 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.yaml originale

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    

    Nuova definizione services.yaml

    code language-yaml
    mysql2:
         type: mysql:10.3
         disk: 5120
    
  2. Aggiornare le relazioni nel file .magento.app.yaml.

    Configurazione .magento.app.yaml originale

    code language-yaml
    relationships:
        database: "mysql:mysql"
    

    Aggiornamento della configurazione di .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. Aggiungi, esegui il commit e invia le modifiche al codice.

Eseguire il downgrade di un servizio creando un servizio

  1. Aggiungere una definizione di servizio al file services.yaml per 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
    
  2. Per utilizzare il nuovo servizio, modificare la configurazione delle relazioni nel file .magento.app.yaml.

    Configurazione .magento.app.yaml originale

    code language-yaml
    relationships:
        database: "mysql:mysql"
    

    Nuova configurazione di .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. Aggiungi, esegui il commit e invia le modifiche al codice.

recommendation-more-help
commerce-on-cloud-help-cloud-guide