Questo testo è stato tradotto utilizzando il sistema di traduzione automatica di Salesforce. Partecipa al nostro sondaggio per fornire un feedback su questo contenuto e dirci cosa vorresti vedere dopo.

Leggi qui le nostre pianificazioni degli aggiornamenti.

Soluzioni affidabili funzionano in modo efficace e affidabile. Sono disponibili, funzionano in modo coerente e scalabile per supportare le aziende in crescita.

Un sistema affidabile non è soggetto a errori, si comporta come previsto e fornisce risultati in modo tempestivo. Al contrario, un sistema inaffidabile è lento, non funziona come previsto o si guasta in momenti critici. I sistemi inaffidabili forniscono informazioni imprecise, quindi gli stakeholder non possono Trust per le decisioni aziendali.

L'affidabilità del sistema non è costante. Un sistema affidabile oggi può diventare inaffidabile se non progettato per la crescita. Un sistema inaffidabile può richiedere costose operazioni di manutenzione, refactoring o reimplementazione, sottraendo fondi a progetti strategici.

Migliorare l'affidabilità delle soluzioni Salesforce concentrandosi su tre principi: disponibilità, prestazioni e scalabilità. La suite Salesforce offre funzionalità native per aiutare gli architetti a rendere operative implementazioni affidabili.

La disponibilità è una misura della percentuale di tempo in cui il sistema è operativo. Salesforce Platform gestisce la maggior parte dei problemi di disponibilità a livello di infrastruttura. Tuttavia, la disponibilità delle soluzioni create sulla piattaforma e sperimentate dai clienti è una responsabilità condivisa. È importante capire che anche con l'alta disponibilità di Salesforce, il rischio di interruzione del servizio non è mai zero.

Gli architetti devono prepararsi a eventuali interruzioni del servizio Salesforce, come la manutenzione pianificata o circostanze impreviste. Oltre alle interruzioni del servizio, valutare come mantenere prestazioni elevate e crescere con l'azienda. Scelte architettoniche limitate possono causare problemi di disponibilità a lungo termine.

Pensare alla disponibilità durante la fase di progettazione, prima di creare la soluzione. Più a lungo si rinvia l'architettura per la disponibilità, più alto sarà il costo effettivo dei problemi di disponibilità nel lungo periodo. Per ridurre i rischi potenziali, utilizzare Test di scalabilità Salesforce nell'ambiente di test. In questo ambiente, è possibile eseguire test su larga scala in produzione prima di distribuire il codice in produzione.

Gli architetti utilizzano il linguaggio dell'azienda, formulando le preoccupazioni tecniche per gli stakeholder aziendali per ottenere il consenso e assegnare la priorità al lavoro di disponibilità. Per ridurre i rischi potenziali, utilizzare Test di scalabilità Salesforce nell'ambiente di test. In questo ambiente, è possibile eseguire test su larga scala in produzione prima di distribuire il codice in produzione.

È possibile progettare per una maggiore disponibilità delle soluzioni Salesforce attraverso la gestione dei rischi e la riduzione dei guasti.

La gestione dei rischi nel contesto dell'architettura Salesforce prevede l'identificazione dei potenziali pericoli per il funzionamento del sistema, per i suoi utenti, inclusi dipendenti, partner e clienti, e per i processi aziendali. Spesso, il processo formale di esecuzione dell'analisi del rischio rientra nelle responsabilità dei responsabili di progetto. In qualità di architetto, assicurarsi che l'analisi dei rischi rappresenti adeguatamente le preoccupazioni degli stakeholder tecnici e aziendali. È anche responsabilità dell'utente identificare i casi d'uso critici per l'azienda per i quali è necessario eseguire il test su larga scala in base ai punti caldi di picco della produzione.

Alcune delle insidie più grandi nella gestione del rischio derivano dal non dedicarvi abbastanza tempo e riflessione. I team spesso saltano la valutazione del rischio o confondono la risoluzione del backup e ripristino, una parte importante della riduzione dei rischi per l'integrità dei dati, con una valutazione e una riduzione complete del rischio.

Per valutare il rischio per le soluzioni Salesforce, utilizzare questi metodi:

  • Utilizzare un framework di valutazione del rischio. Alcune grandi imprese possono già disporre di matrici di rischio pertinenti. In tal caso, utilizzarli per determinare come classificare i pericoli, quali tipi di informazioni raccogliere, quali misure adottare per porvi rimedio e altro ancora. Se non si dispone già di un framework di valutazione del rischio, trovarne uno da una fonte affidabile e utilizzarlo.
  • Valutare la gravità dell'impatto e le categorie di rischio dal punto di vista dei clienti. Proactive Monitoring e Scale Center offrono avvisi e cruscotti digitali configurabili. Valutano continuamente i rischi di prestazioni e scalabilità e riducono la dipendenza dagli elenchi di controllo manuali. Trust e percezione del cliente sono fondamentali per ogni azienda. In termini di impatto sul business, i rischi per i problemi che raggiungono i clienti di solito superano i rischi per i problemi che non li raggiungono. I clienti potrebbero non pensare o percepire i rischi allo stesso modo dei team interni. Se un cliente non riesce ad accedere al proprio account, probabilmente non si preoccupa della causa principale del problema. Hanno più a cuore la loro esperienza immediata.
  • Dare priorità ai rischi. L'ideale è che ogni rischio sia legato a un solido piano di mitigazione e risposta. In realtà, avrai lacune che dovrai colmare nel tempo. È importante adottare un approccio "consegna valore in anticipo e ripeti". L'utente e i suoi team di consegna e manutenzione possono svolgere solo una quantità di lavoro in un dato momento. In Salesforce, un'espressione comune è "Se tutto è importante, niente è importante". Utilizziamo i V2MOM per definire le priorità e allineare il lavoro in tutta l'azienda, in tutti i team e fino a ogni singolo individuo. (Puoi saperne di più su V2MOMs su Trailhead.) Utilizzare le valutazioni del rischio, che offrono la possibilità di collaborare con gli stakeholder per definire le priorità e impegnarsi nelle attività di gestione del rischio più importanti. Utilizzare Test di scalabilità - Creazione del piano di test per identificare i rischi da assegnare alle priorità e per mitigarli utilizzando i test di scala.

Utilizzare Proactive Monitoring per rilevare i rischi di disponibilità precoce. Mette in evidenza anomalie come picchi di limite delle richieste API, errori di blocco delle righe o errori Apex simultanei, fornendo approfondimenti concreti prima che i problemi degenerino in interruzioni del servizio.

Gli schemi e gli schemi di disponibilità mostrano una gestione del rischio corretta e scarsa all'interno di una soluzione Salesforce. Utilizzare gli schemi per convalidare i progetti prima di creare o per identificare le aree di refactoring nel sistema.

Per ulteriori informazioni sugli strumenti Salesforce relativi alla gestione del rischio, vedere Salesforce Tools For Reliability.

Un punto di errore è una vulnerabilità che rende un sistema inaffidabile. Una buona mitigazione degli errori non consiste nell'individuare ogni potenziale punto di errore. Si tratta invece di classificare e assegnare priorità ai punti di errore in modo che i team di manutenzione e assistenza possano rispondere in modo efficace. Vedere Risposta all'incidente.

Per sviluppare strategie di mitigazione degli errori migliori:

  • Classificare i trigger per i punti di errore in termini di persone, processi e tecnologia. Così come si classificano i rischi in termini di persone, processi e tecnologia, applicare lo stesso pensiero al modo in cui vengono attivati i punti di errore con priorità alta. Questo approccio consente di identificare potenziali trigger di errore e di sviluppare e organizzare le risposte. A volte è possibile mitigare trigger di errore apparentemente divergenti con approcci di mitigazione simili, in base al modo in cui vengono classificati.
Classificazione/tipo di trigger Attenuazione
Persone Policy
Processo Playbook, piani di continuità
Tecnologia Ridondanza
  • Identificare l'aspetto della mitigazione di base, intermedia e matura. Ci vorrà tempo per definire le strategie di mitigazione. Definire i livelli di mitigazione per aiutare l'utente e il suo team a vedere dove è possibile implementare immediatamente i controlli e come concentrare gli sforzi nel tempo. Cercare sempre opportunità per utilizzare l'automazione negli approcci di mitigazione, non appena possibile. Per illustrare l'aspetto pratico di questo approccio, questo esempio mostra un trigger orientato alle persone e la mitigazione basata sulle policy a livello di base, intermedio e maturo.
Trigger Attenuazione Base Intermedio Maturo
Modifica dell'accesso utente per un dipendente nuovo o in partenza Contratto sul livello di servizio (SLA) e requisiti per il provisioning o l'annullamento del provisioning degli utenti Eseguire manualmente il provisioning e l'annullamento del provisioning degli utenti, in base agli SLA per le modifiche manuali. Elaborare le modifiche degli utenti tramite processi pianificati, in base agli SLA per le modifiche pianificate. Automatizzare il provisioning e il deprovisioning degli utenti tramite una soluzione SSO/IDM.

Oltre a utilizzare i playbook architettonici e la pianificazione della continuità, utilizzare Proactive Monitoring. Con Proactive Monitoring è possibile impostare avvisi in tempo reale sui trigger di errore, ad esempio errori di accesso, eccezioni di timeout della CPU o errori simultanei delle richieste API. Questo approccio all'avviso migliora la mitigazione dei guasti assicurando che gli stakeholder tecnici e aziendali siano informati in tempo utile per ridurre l'impatto dei guasti.

Gli schemi e anti-schemi di disponibilità mostrano l'aspetto della corretta e scarsa mitigazione degli errori in una soluzione Salesforce. Utilizzarli per convalidare i progetti prima di crearli o per identificare le aree del sistema da rifattorizzare.

Per ulteriori informazioni sugli strumenti Salesforce per la risoluzione degli errori, vedere Strumenti rilevanti per l'affidabilità.

Questa tabella mostra una selezione di schemi da cercare o creare nell'organizzazione e di schemi anti-schemi da evitare o a cui indirizzare la riparazione.

✨ Scopri altri schemi per la disponibilità in Pattern & Anti-Pattern Explorer.

Schemi Anti-schemi
Gestione dei rischi Nel tuo business:
- È in uso un quadro di valutazione del rischio consolidato.
- I rischi sono classificati in persone, processi e aree tecnologiche.
Nel tuo business:
- Il framework di valutazione del rischio per Salesforce è ad hoc.
- I rischi non sono chiaramente identificati.
Nella documentazione:
La gravità del rischio viene classificata e valutata in base all'impatto sul cliente.
- I piani di mitigazione del rischio e di risposta hanno la priorità.
Nella documentazione:
La prospettiva del cliente non viene considerata quando si valuta la gravità del rischio o la categoria.
- I piani di mitigazione del rischio e di risposta cercano di catturare ogni rischio immaginabile.
Mitigazione degli errori Nella propria organizzazione:
- I trigger di punti di errore e i relativi piani di mitigazione sono classificati in base alle persone, ai processi e alla tecnologia.
I controlli di mitigazione vengono implementati immediatamente, maturano nel tempo e incorporano l'automazione il prima possibile.
- Per garantire una scalabilità ottimale, vengono completati test e ottimizzazioni completi prima che le modifiche vengano rilasciate in produzione.
- Prima degli eventi critici per l'azienda, vengono eseguiti test e ottimizzazione della scala, in base agli SLA.
Nella propria organizzazione:
- I trigger punto di errore non sono classificati. Gli approcci di mitigazione non esistono o vengono utilizzati solo ad hoc.
- I controlli di mitigazione non vengono rivisti o migliorati.
- L'automazione non viene utilizzata nella mitigazione.
Monitoraggio e osservabilità Nella propria organizzazione:
- Per i controlli e il rilevamento delle anomalie, è abilitato Proactive Monitoring.
- Per una visibilità continua, gli avvisi Proactive Monitoring sono integrati con Scale Center.
Nella propria organizzazione:
- Vengono eseguiti solo controlli manuali dello stato e non è in atto alcun monitoraggio continuo.

Le prestazioni dell'architettura di sistema sono una misura di quanto un sistema elabora (throughput) e quanto velocemente risponde (latenza). In genere si comprendono le prestazioni del sistema attraverso i test e il monitoraggio in produzione.

Un sistema efficiente completa i processi in modo tempestivo a ogni livello di domanda previsto.

Le scarse prestazioni vanno di pari passo con una latenza più elevata e una produttività più bassa, che portano a una minore produttività e a una maggiore frustrazione degli utenti. Correggere i problemi di prestazioni è urgente perché possono causare una perdita di Customer Trust e perdite finanziarie.

È possibile migliorare le prestazioni delle soluzioni ottimizzando la produttività e la latenza.

Nota: L'ottimizzazione della produttività e della latenza sono aspetti essenziali per migliorare l'elaborazione e la reattività del sistema. È importante ricordare, tuttavia, che le prestazioni complessive del sistema dipendono anche dalla qualità dell'architettura in scala. È necessario considerare entrambe le dimensioni nei progetti.

Nel contesto dell'architettura Salesforce, la produttività è il numero di richieste simultanee che un sistema può completare in un determinato intervallo di tempo. Le soluzioni Salesforce dei clienti progettate e ottimizzate per la produttività funzionano meglio entro i limiti predefiniti di Salesforce Platform.

L'ottimizzazione della produttività in Salesforce inizia con il calcolo preciso dei carichi di lavoro nel sistema e la pianificazione della loro crescita. Senza proiezioni accurate per le esigenze che verranno poste al sistema, non è possibile individuare potenziali problemi con le capacità di produzione del sistema.

Quando si pensa ai carichi di lavoro, considerare le tre dimensioni seguenti.

  • Numero di transazioni che il sistema deve elaborare in un determinato periodo di tempo
  • Numero di utenti che devono accedere contemporaneamente al sistema
  • Complessità complessiva della logica delle transazioni nel sistema

Quando si pensa alle prestazioni, i team a volte si concentrano troppo sull'elaborazione e sui vincoli relativi al tempo CPU massimo, che sono tra i limiti del governor della piattaforma. I team con un focus ristretto sul tempo CPU trascurano altri metodi per ottimizzare la produttività. Espandere l'attenzione e applicare questi metodi migliora la produttività complessiva e l'efficienza dell'architettura Salesforce. Questi miglioramenti, a loro volta, contribuiranno a ridurre la latenza e ad aumentare le prestazioni complessive del sistema. ApexGuru rileva in modo proattivo gli schemi anti-limitazione della produttività come SOQL nei loop, DML nei loop, chiamate GGD inefficienti e metodi costosi. Questi approfondimenti aiutano i team a eliminare i rischi del governor limit che limitano la produttività.

Per ottimizzare la produttività nel sistema:

  • Favorire l'elaborazione asincrona. Salesforce Platform utilizza i contesti delle transazioni per controllare l'integrità dei dati e limitare il codice in fuga. Vedere le transazioni in Architecture Basics in Architecture Basics. Per questo motivo, l'uso dell'elaborazione asincrona (asincrona), ove possibile, può contribuire a ridurre al minimo i potenziali colli di bottiglia nei contesti di esecuzione sincrona. Vedere Gestione dei dati. L'uso del calcolo asincrono non è una cura per ogni tipo di problema di prestazioni e sarà necessario tenere in considerazione la latenza quando si incorporano i processi asincroni. Alcune funzionalità della piattaforma, ad esempio Apex in area di attesa, possono aumentare la latenza durante i picchi di traffico perché causano una maggiore attesa dei messaggi in un'area di attesa. A seconda del caso d'uso, è possibile decidere di tollerare una potenziale diminuzione della reattività per mantenere o migliorare la produttività. In altri casi, si può decidere che una latenza maggiore non è accettabile. Con il Test di scalabilità, è possibile convalidare questi compromessi simulando i picchi di traffico in un Sandbox Completo. Qui è possibile misurare in che modo i processi influiscono su produttività e latenza.
  • Utilizzare sempre bulking. Ad alto livello, la messa in blocco significa eseguire operazioni contro le raccolte. Spesso, i team che discutono dell'esecuzione in blocco delle loro soluzioni Salesforce si concentrano sulla semplificazione delle operazioni sui dati rispetto alle raccolte. Vedere Logica operativa. Tuttavia, l'esecuzione in blocco a livello di sistema non riguarda solo le operazioni sui dati. Considerare anche alcune operazioni, ad esempio chiamate o calcoli complessi, come candidati per l'esecuzione in blocco. Un corretto ingombro riduce il sovraccarico. Esegue più operazioni con una sola richiesta anziché con una sola richiesta per operazione. ApexGuru mette in evidenza schemi anti-bulkification come DML o SOQL all'interno dei loop, che è possibile correggere prima di scalare in produzione. Vedere Operazioni in blocco.
  • Utilizzare SOSL per le ricerche e trattare SOQL come un'operazione dati. Può sembrare ovvio che l'uso di istruzioni SOQL eccessivamente complesse aumenterà la quantità di tempo necessaria al sistema per recuperare i record. SOQL aggiunge un sovraccarico al database relazionale sottostante, rallentando l'elaborazione. Quando si utilizzano criteri di testo o caratteri jolly, SOSL è più performante. SOSL utilizza il motore di ricerca della piattaforma, ottimizzato per l'indicizzazione full-text e le ricerche universali. Per ottimizzare gli schemi di recupero dei record, assicurarsi che gli standard di progettazione specifichino quando utilizzare SOSL per trovare i dati nel sistema. Assicurarsi inoltre che specifichino come utilizzare SOQL per operazioni sui dati efficienti. Vedere Logica operativa).
  • Utilizzare Cache piattaforma e ApexGuru. Il livello Lightning Platform Cache offre prestazioni più rapide e una migliore affidabilità durante il caching dei dati delle sessioni e dell'organizzazione Salesforce. La cache piattaforma migliora le prestazioni distribuendo lo spazio della cache in modo che alcune applicazioni o operazioni non rubino capacità ad altre. ApexGuru rileva le opportunità mancate per memorizzare nella cache query ripetute (ad esempio, Platform Cache for SOQL Results), il che migliora la produttività in ambienti su larga scala.

Gli schemi e antischemi per le prestazioni mostrano l'aspetto corretto e scarso della produttività in un'organizzazione Salesforce. Utilizzarli per convalidare i progetti prima di crearli o per identificare opportunità di ulteriore ottimizzazione.

Per ulteriori informazioni sugli strumenti Salesforce per l'ottimizzazione della produttività, vedere Salesforce Tools For Reliability.

La latenza è una misura della velocità con cui un sistema completa un percorso di esecuzione. L'ottimizzazione della produttività del sistema contribuirà a migliorare la latenza. Un'altra dimensione della latenza è la percezione delle prestazioni, ovvero la reattività del sistema agli utenti.

Le persone non vogliono attendere il caricamento delle pagine o il completamento dei processi. Gli utenti del sistema si sentiranno frustrati se sperimenteranno spesso lunghi tempi di caricamento quando proveranno a navigare nelle visualizzazioni elenco, nelle pagine dei record, nei rapporti e così via. Quando ciò accade, i clienti o i partner possono decidere di spostare la propria attività altrove anziché occuparsi di sistemi con prestazioni scadenti. Internamente, i dipendenti possono creare soluzioni per evitare di utilizzare il sistema come progettato, il che può causare problemi a valle per la sicurezza e l'integrità dei dati.

Le prestazioni percepite possono essere difficili da diagnosticare. Quando un utente segnala prestazioni lente, i team di assistenza potrebbero non essere in grado di riprodurre il problema. L'aumento della latenza è spesso il risultato di una combinazione di problemi più piccoli che si basano l'uno sull'altro, il che può rendere difficile diagnosticare la causa esatta dei problemi di prestazioni percepiti.

Per ridurre la latenza e migliorare la reattività nel sistema Salesforce:

  • Ottimizzare i rapporti. Assicurarsi che ogni rapporto abbia un unico scopo specifico. Identificare chiaramente il pubblico e lo scopo di ogni rapporto nel sistema. Includere nei rapporti solo la quantità minima di dati necessaria ai membri del pubblico per prendere decisioni. La rimozione delle colonne non allineate allo scopo di un rapporto migliorerà le prestazioni del rapporto riducendo la quantità di dati che devono essere recuperati e visualizzati.
  • Ottimizzare i filtri. Filtri efficaci velocizzano le prestazioni dei rapporti e delle visualizzazioni elenco definendo con precisione gli ambiti del numero di righe recuperate dal database. In generale, più specifica è la logica dei filtri, più efficiente sarà la query sottostante per i dati. I metodi per ottimizzare i filtri includono:
    • Utilizzo di "uguale a" e "non uguale a" anziché "contiene" e "non contiene"
    • Evitare di filtrare in base ai campi formula
  • Semplificare il modello di condivisione. Un modello di condivisione eccessivamente complesso può rallentare una varietà di processi perché il sistema deve controllare il modello di condivisione e visibilità per determinare se un utente ha accesso ai dati da visualizzare o elaborare. I calcoli di condivisione complessi possono aumentare la latenza nei rapporti, nelle visualizzazioni elenco e nell'automazione eseguiti nel contesto dell'utente. Vedere Condivisione e visibilità.
  • Ottimizzare componenti interfaccia utente personalizzati. I componenti dell'interfaccia utente (UI) personalizzati possono aumentare la latenza. Per ottimizzare le prestazioni nei componenti dell'interfaccia utente personalizzati, valutare le seguenti operazioni.
    • Utilizzare Componenti Web Lightning (LWC). Il framework LWC è strettamente allineato ai moderni standard Web. I componenti personalizzati scritti in LWC vengono visualizzati in modo più efficiente nei browser Web e consentono agli sviluppatori di utilizzare metodi JavaScript più efficaci. Cercare sempre di utilizzare LWC anziché le tecnologie dell'interfaccia utente più datate, come Aura o Visualforce.
    • Utilizzare Lightning Data Service. Lightning Data Service gestisce la creazione e la manutenzione di caching protetti, performanti e condivisi tra i componenti. Utilizzarlo per evitare inutili viaggi di andata e ritorno al server per i dati e per aumentare la reattività complessiva delle applicazioni.
    • Utilizzare l'ordinamento e i filtri lato client per i dati degli elenchi. Sia per i componenti LWC (preferiti) che per i componenti Aura (altrimenti), gli sviluppatori possono utilizzare la funzionalità standard della matrice JavaScript per ordinare, filtrare e selezionare i valori sul lato client, riducendo il numero di viaggi necessari al server.

Gli schemi e antischemi mostrano l'aspetto della latenza corretta e scarsa in un'organizzazione Salesforce. Utilizzarli per convalidare i progetti prima di crearli o per identificare opportunità di ulteriore ottimizzazione.

Per ulteriori informazioni sugli strumenti Salesforce per l'ottimizzazione della latenza, vedere Salesforce Tools For Reliability.

Questa tabella mostra una selezione di schemi da cercare o creare nell'organizzazione e di schemi anti-schemi da evitare o a cui indirizzare la riparazione.

✨ Scopri altri modelli per le prestazioni in Pattern & Anti-Pattern Explorer.

Schemi Anti-schemi
Portata Negli standard di progettazione:
- Guida per l'utilizzo della cache piattaforma aderisce alle best practice della cache piattaforma
Negli standard di progettazione:
- Se sono presenti indicazioni per l'utilizzo della cache piattaforma, non sono chiare o non sono in linea con le procedure consigliate.
Nella propria organizzazione:
- Bulkification è utilizzato per le operazioni di dati e di sistema.
- I metodi DML o di database operano sempre contro le raccolte in Apex.
- I campi utilizzati durante DML per un tempo trascorso più breve nel database sono limitati.
- Tutti i criteri dei caratteri jolly vengono utilizzati in SOSL.
- Le istruzioni SOQL sono selettive.:
-- Non utilizzano confronti LIKE o confronti di testo parziale.
-- Gli operatori di confronto utilizzano la logica positiva (in altre parole INCLUDE o IN) come logica principale o solo logica.
-- = NULL e != NULL vengono utilizzati solo raramente segue sempre un operatore di confronto positivo.
Per ridurre al minimo il carico di dati e ottimizzare le prestazioni, vengono recuperati solo i campi necessari nelle query SOQL.
-- Non vengono utilizzate istruzioni LIMIT 1.
-- La parola chiave ALL ROWS non viene utilizzata.
- L'elaborazione asincrona è favorita ove possibile.
- Le partizioni cache piattaforma sono configurate.
Nella propria organizzazione:
- Le istruzioni DML non sono in blocco.
- I metodi DML o di database operano su singoli record in Apex.
SOSL è raramente o non in modo coerente utilizzato per i criteri di selezione dei caratteri jolly.
- Le istruzioni SOQL non sono selettive:
-- Includono criteri di filtro LIKE e caratteri jolly.
-- I confronti che utilizzano i criteri !=, NOT o NOT IN vengono utilizzati come operatore di confronto principale o unico.
-- Utilizza = NULL e != NULL come operatori di confronto principali o unici.
-- Vengono utilizzate le istruzioni LIMIT 1.
-- Viene utilizzata la parola chiave ALL ROWS.
- SOQL viene visualizzato all'interno dei loop.
- I processi sincroni sono favoriti.
Latenza Nella propria organizzazione:
I rapporti hanno un unico scopo specifico e contengono il numero minimo di righe e colonne necessarie per prendere decisioni.
- I filtri utilizzano "uguale a" e "non uguale a".
- I filtri non contengono campi formula.
- I modelli di condivisione sono semplificati il più possibile.
- I componenti dell'interfaccia utente personalizzati utilizzano componenti Web Lightning (LWC).
- LWC utilizza Lightning Data Service per le operazioni sui dati.
- L'ordinamento e il filtraggio dei dati degli elenchi viene gestito sul lato client in JavaScript.
Salesforce Edge è abilitato.
Nella propria organizzazione:
- I rapporti hanno più scopi o contengono righe e colonne aggiuntive che non sono necessarie per prendere decisioni.
- I filtri utilizzano "contiene" e "non contiene".
- I filtri contengono campi formula.
- I modelli di condivisione sono complessi.
- I componenti dell'interfaccia utente personalizzati utilizzano framework che possono risultare in un rendering meno efficiente di LWC (ad esempio Aura o Visualforce).
- LWC utilizza Apex per le operazioni sui dati.
- L'ordinamento e il filtraggio dei dati degli elenchi viene gestito sul lato server utilizzando Apex.
Salesforce Edge non è abilitato.

La scalabilità è la capacità di un sistema di funzionare in modo coerente mentre si evolve e cresce. Un sistema scalabile gestisce grandi aumenti dei volumi delle transazioni o l'accesso simultaneo senza modifiche sostanziali. I servizi piattaforma di Salesforce sono progettati per supportare la scalabilità delle applicazioni. Vedere Elaborazione interna piattaforma. Detto questo, man mano che l'organizzazione cresce e la domanda di prodotti e servizi aumenta, si è responsabili della creazione di un sistema in grado di funzionare in modo efficace e come previsto. L'architettura per la scalabilità fin dall'inizio si traduce in una consegna più rapida delle nuove funzioni e in un minor numero di interruzioni del servizio man mano che il traffico degli utenti aumenta. All'inizio della fase di progettazione, prima di distribuire nuove funzioni alla produzione, utilizzare Test di scalabilità per simulare i carichi di lavoro previsti e confermare che l'architettura può scalare per supportarli.

I sistemi non progettati per la scalabilità richiedono la risoluzione dei problemi, la riprogettazione e il refactoring costanti e costosi. I problemi di scalabilità si aggravano nel tempo, peggiorando le prestazioni in tutto il sistema. In alcuni casi, le aziende si trovano a spendere la maggior parte delle risorse di sviluppo e manutenzione per risolvere i problemi di scalabilità anziché per nuove funzioni che creano valore.

A volte, un'azienda raggiunge un punto critico. Il design originale del sistema non è in grado di supportare la crescita dell'azienda e gli eventi imprevisti rendono instabile il sistema. Utilizzare gli approfondimenti di Scale Center per identificare tempestivamente i punti critici della scalabilità. Scale Center mette in evidenza le aree calde delle eccezioni, le transazioni di lunga durata e i colli di bottiglia dell'area di attesa che peggiorano nel tempo.

È possibile progettare meglio la scala concentrandosi sull'ottimizzazione del modello di dati e sulla gestione del volume di dati.

Nota: Anche se non viene discusso qui, il test della scalabilità è una parte fondamentale della convalida delle architetture delle applicazioni. Per indicazioni, vedere Strategia di test.

La modellazione dei dati consiste nel strutturare gli oggetti dell'organizzazione e correlarli tra loro in modo da consentire agli utenti e ai processi automatizzati di recuperare i dati di cui hanno bisogno il più rapidamente possibile. L'adozione di misure per migliorare la produttività risolve molti problemi di prestazioni, ma gli sforzi non saranno altrettanto efficaci senza un modello di dati ottimizzato.

Gli impatti negativi di un modello di dati mal progettato non sono immediatamente evidenti; i suoi punti deboli vengono esposti man mano che il sistema cresce in termini di volume di dati, processi, utenti e integrazioni. Un modello di dati ben progettato semplifica il refactoring continuo dell'applicazione man mano che i requisiti vengono aggiunti ed estesi. ApexGuru mette in evidenza gli schemi anti-accesso ai dati, ad esempio SOQL non selettivo, campi non utilizzati e inefficienze dello schema che influiscono direttamente sulla scalabilità del modello di dati.

Per ottimizzare il modello di dati:

  • Utilizzare i modelli di dati predefiniti di Salesforce. Salesforce fornisce modelli di dati predefiniti per Sales, Service e una varietà di verticali di settore. L'uso dei modelli di dati forniti da Salesforce garantisce che le funzionalità del sistema vengano definite una sola volta, eliminando ridondanza e silos e stabilendo un'unica fonte di dati in tutto il sistema. Poiché per quell'unica fonte sono stati utilizzati modelli di dati predefiniti Salesforce, è più facile comprendere i dati delle applicazioni con gli analytics e utilizzare i servizi di intelligenza artificiale predefiniti di Salesforce. Inoltre, riducendo le personalizzazioni che è necessario supportare, si riducono i costi di manutenzione e l'indebitamento tecnico.
  • Scegliere i tipi di dati giusti. Di seguito sono descritti i diversi tipi di campi supportati da Salesforce e le relative limitazioni. Considerare i requisiti di creazione di rapporti e crittografia per evitare di dover convertire i dati tra i tipi in futuro.
  • Scegliere le relazioni giuste. Salesforce supporta due tipi di relazioni tra gli oggetti: record principale-record dettaglio e ricerca. Le relazioni record principale-record dettaglio offrono due vantaggi principali. Una è costituita dalle funzionalità di riepilogo di roll-up incorporate, che contano e aggregano i dettagli dei record secondari. L'altra è una funzionalità di eliminazione a cascata incorporata, tramite la quale l'eliminazione di un record controllante elimina anche i relativi record controllati. Tuttavia, assicurarsi di comprendere le implicazioni di condivisione delle relazioni record principale-record dettaglio prima di decidere di utilizzarle.
  • Denormalizzare la scala. La normalizzazione è il processo di strutturazione del modello di dati per ridurre la ridondanza dei dati e migliorare l'integrità dei dati. Sfortunatamente, la normalizzazione a volte causa problemi di scalabilità. Le tabelle denormalizzate possono avere prestazioni migliori su larga scala, ma ricordare di considerare l'integrità e la ridondanza dei dati.

Gli schemi e antischemi mostrano l'aspetto corretto e inadeguato dell'ottimizzazione del modello di dati in un'organizzazione Salesforce. Utilizzarli per convalidare i progetti prima di crearli o per identificare opportunità di ulteriore ottimizzazione.

Per ulteriori informazioni sugli strumenti Salesforce per l'ottimizzazione del modello di dati, vedere Salesforce Tools For Reliability.

Il volume di dati è una misura della quantità di dati archiviati nel sistema, in base ai conteggi e alle dimensioni dei record. Se l'organizzazione ha decine di migliaia di utenti, decine di milioni di record o centinaia di gigabyte di memoria record totale, si dispone di un volume di dati elevato. Il volume dei dati e le relazioni tra gli oggetti nell'organizzazione influiscono sulla scalabilità e probabilmente avranno un impatto maggiore sulla scalabilità rispetto al solo numero di record.

Per migliorare la scalabilità delle organizzazioni con volumi di dati elevati:

  • Distribuire record secondari. Evitare la distorsione dei dati controllante-controllato assicurandosi che nessun controllante abbia un numero elevato di record controllati. Si consiglia in generale che nessun controllante abbia più di 10.000 record controllati. Ad esempio, in una distribuzione che ha molti referenti ma non utilizza account, valutare la possibilità di impostare più record account e di distribuire i record referente correlati tra di essi.
  • Distribuire la proprietà dei record. Evitare la distorsione della proprietà assicurando che nessun utente o area di attesa sia titolare, né che tutti i membri di un singolo ruolo o gruppo pubblico siano titolari, di più di 10.000 record dello stesso oggetto. I dati di “parcheggio” con un “utente fittizio” sono una pratica che spesso porta a una distorsione della proprietà. Se si verifica questo problema, tenere presente l'impatto che avrà sui calcoli di condivisione. Se non è possibile ridistribuire i record per alleviare la distorsione della proprietà, evitare di assegnare l'utente titolare dei dati a un ruolo. Se il modello di condivisione dell'organizzazione richiede un'assegnazione di ruolo, collocare l'utente titolare dei dati in un ruolo distinto in cima alla gerarchia di condivisione. Non consentire modifiche frequenti o non pianificate nel ruolo dell'utente, poiché eventuali modifiche avranno impatti significativi sulle prestazioni a causa di ricalcoli della condivisione. Tenere l'utente fuori dai gruppi pubblici a cui si potrebbe fare riferimento in qualsiasi regola di condivisione.
  • Ridurre la quantità di dati dei record in Salesforce. Salesforce è progettato per offrire alle aziende un'unica visualizzazione dei clienti. Può sembrare controintuitivo che la limitazione dei dati in Salesforce sia una procedura ottimale. Tuttavia, la potenza della visualizzazione singola risiede nel modo in cui consente agli utenti aziendali di comprendere e intervenire sui dati dei clienti. Man mano che il volume dei dati aumenta, i dati che non sono aggiornati o rilevanti per i processi quotidiani o gli analytics possono causare diversi problemi. Questi problemi includono il peggioramento delle prestazioni dell'app, un aumento del rischio per la sicurezza dei dati e impatti negativi su ricerca, rapporti e analisi. Per evitare questi problemi, definire un ciclo di vita dei dati per ogni oggetto del modello di dati, con tempistiche e classificazioni per i dati man mano che invecchiano e perdono valore aziendale immediato. In base al ciclo di vita dei dati, implementare le seguenti procedure per gestire i dati nel tempo.
    • Archiviazione ed eliminazione dei dati: per mantenere i volumi di dati il più bassi possibile, rimuovere i record che non sono necessari all'azienda per ridurre al minimo i volumi di dati. Utilizzare la funzione di eliminazione definitiva dell'API in blocco 2.0 per eliminare grandi volumi di dati.
    • Aggregazione dei dati: creare oggetti personalizzati di aggregazione che riassumono le tendenze storiche chiave o i dati di riepilogo in un formato compatibile con i rapporti. Compilare gli oggetti personalizzati utilizzando Batch Apex. Gli utenti possono quindi eseguire rapporti basati sui record degli oggetti aggregati.
    • Livello dei dati. Gestire serie di dati di grandi dimensioni in un'applicazione diversa se non sono necessarie per i rapporti Salesforce o per il lavoro quotidiano. Rendere disponibili i dati in Salesforce in base alle esigenze tramite mashup, chiamate o oggetti esterni.

In pratica, potrebbe non essere sempre possibile affrontare immediatamente la causa principale di un problema di scalabilità quando si verificano problemi. Per questo motivo, Salesforce offre opzioni che consentono di alleviare i punti deboli immediati. È importante sapere che l'abilitazione di queste funzioni nell'organizzazione non è una strategia architetturale praticabile a lungo termine per gestire grandi volumi di dati. Queste soluzioni a breve termine possono contribuire a ridurre la latenza nei sistemi con un'architettura dei dati scadente, ma possono anche aumentare il debito tecnico dell'organizzazione.

Le soluzioni a breve termine per i problemi di scala includono:

  • Indici personalizzati Gli indici sono memorizzati in una tabella interna speciale utilizzata dall'ottimizzazione delle query della piattaforma per velocizzare le operazioni di accesso ai dati. Vedere Indici multi-tenant). La piattaforma indicizza automaticamente alcuni tipi di campi per impostazione predefinita. Per velocizzare le query con scarse prestazioni, è possibile richiedere indici personalizzati aggiuntivi contattando l'Assistenza clienti Salesforce. Utilizzare lo strumento Query Plan (Piano di esecuzione query) per determinare se gli indici personalizzati miglioreranno le prestazioni delle query.
  • Tavoli magri. Se è necessario ottimizzare ulteriormente le query per insiemi di campi comuni su oggetti con più di 1 milione di record, le tabelle semplici possono essere utili. Le tabelle semplici eliminano il join in background che si verifica quando si utilizzano campi standard e personalizzati dello stesso oggetto in un rapporto o in un'automazione. Per utilizzare le tabelle "snelle", l'Assistenza clienti Salesforce deve abilitarle per l'organizzazione.

Gli schemi e antischemi per la scalabilità mostrano l'aspetto di una corretta e scarsa gestione del volume di dati in un'organizzazione Salesforce. Utilizzarli per convalidare i progetti prima di crearli o per identificare opportunità di ulteriore ottimizzazione.

Per ulteriori informazioni sugli strumenti Salesforce per la gestione dei volumi di dati, vedere Salesforce Tools For Reliability.

Questa sezione mostra una selezione di schemi da cercare o creare nell'organizzazione e di schemi anti-schemi da evitare o da correggere.

✨ Scopri altri schemi per la scalabilità in Pattern & Anti-Pattern Explorer.

Schemi Anti-schemi
Modellazione dei dati Negli standard di progettazione:
- Gli standard e le linee guida per i quali esistono giustificazioni aziendali che giustificano l'esistenza di un oggetto personalizzato.
Negli standard di progettazione:
- Non esistono standard per la creazione di oggetti personalizzati.
Nel modello di dati:
Ove possibile, vengono utilizzati oggetti standard.
- I controlli ApexGuru per gli anti-schemi confermano che le query SOQL sono selettive ed evitano l'utilizzo inefficiente dello schema.
- Le tabelle sono denormalizzate per la scala.
Nel modello di dati:
- Sono stati replicati oggetti standard.
- Le tabelle vengono normalizzate per evitare ridondanze.
All'interno della tua azienda:
I generatori low-code conoscono i diversi tipi di campi supportati da Salesforce e valutano i requisiti di creazione di rapporti e crittografia prima di selezionare i tipi di dati dei campi.
- Prima di decidere di stabilire una relazione record principale-record dettaglio tra gli oggetti, valutare le implicazioni di condivisione e distorsione dei dati di tale relazione.
All'interno della tua azienda:
- I generatori low-code selezionano i tipi di dati senza valutare i requisiti di creazione di rapporti e crittografia a valle.
- Prima di decidere di stabilire relazioni record principale-record dettaglio tra gli oggetti, non si valutano le implicazioni di condivisione e distorsione dei dati di tale relazione.
Volume di dati Nei dati:
- Nessun record controllante ha più di 10.000 record controllati.
- Nessun utente è assegnato a più di 10.000 record dello stesso tipo di oggetto.
- Nessuna istanza include più di 10.000 record con campi di ricerca che puntano allo stesso record.
- I caricamenti di dati in blocco vengono ordinati in batch in base ai valori dei campi ParentId.
- Per assicurarsi che le strategie batch non si interrompano contemporaneamente, viene utilizzato Test di scalabilità per convalidare gli schemi di carico in blocco su scala di produzione.
- I caricamenti di dati in blocco in produzione non avvengono durante gli orari di punta.
- I caricamenti di dati in blocco includono solo i dati minimi necessari per le decisioni aziendali.
Nei dati:
- Esistono record con più di 10.000 record controllati.
- Gli utenti vengono assegnati a più di 10.000 record dello stesso tipo.
- Esistono istanze in cui più di 10.000 record hanno campi di ricerca che puntano allo stesso record.
- I caricamenti di dati in blocco non vengono ordinati in batch in base ai valori dei campi ParentId.
- I caricamenti di dati in blocco in produzione si verificano durante l'orario di ufficio di punta.
- I caricamenti di dati in blocco non sono limitati ai dati minimi necessari per le decisioni aziendali.
In Flusso e Apex:
- Esiste una logica per distribuire il numero di record controllati in più record controllanti in scenari in cui la distorsione dei dati è un problema.
- Quando si importano o replicano record tramite integrazione, la logica li assegna agli utenti umani appropriati.
- Per le raccolte Apex, ad esempio elenchi e insiemi, esiste una logica per elaborare più record per ridurre al minimo le query e ottimizzare la gestione dei dati.
- Viene scritto e distribuito Apex Code efficiente che segue gli standard e le procedure consigliate per il codice scalabile.
In Flusso e Apex:
- I record controllati vengono assegnati arbitrariamente ai record controllanti, indipendentemente dal numero di record controllati già assegnati.
- I record creati tramite caricamenti di dati o integrazioni vengono assegnati a un "utente integrazione" generico.
- Più query SOQL ricorsive dallo stesso oggetto sono in transazioni sincrone, causando un elevato utilizzo dell'heap.
- Quando gli sviluppatori scrivono Apex Code, introducono inefficienze e schemi anti-prestazioni.
All'interno della tua azienda:
- Hai documentato e implementato una strategia di archiviazione ed eliminazione dei dati
All'interno della tua azienda:
- Non si dispone di una strategia di archiviazione ed eliminazione dei dati o la strategia è stata documentata ma non implementata
StrumentoDescrizioneDisponibilitàPrestazioniScalabilità
Big Object Archiviare e gestire grandi volumi di dati sulla piattaforma. X
Scanner di codice Analizzare Apex Code per rilevare eventuali problemi di prestazioni. X
Indici personalizzati Migliorare le prestazioni delle query con gli indici personalizzati. X
Eliminazione dei dati Rimuovere i dati non necessari per migliorare le prestazioni. X X
Divisioni Partizionare i dati per limitare i conteggi dei record nelle query e nei rapporti. X
Test di scala Testare le prestazioni del sistema e interpretare i risultati. Prima della distribuzione in produzione, per convalidare la scalabilità e le prestazioni, simulare carichi di lavoro API e interfaccia utente su larga scala utilizzando script Playwright o JMeter. X X
Centro scala Ottenere approfondimenti self-service e in tempo reale sulle prestazioni del sistema. Individuare transazioni di lunga durata, punti salienti delle eccezioni e colli di bottiglia della produttività. Diagnosticare i problemi di scala nelle prime fasi del ciclo di sviluppo. X X
ApexGuru Utilizzare questa funzione basata su GenAI in Scale Center per rilevare gli schemi anti-classe Apex, SOQL e di test in fase di esecuzione. Tramite l'integrazione di ApexGuru con Salesforce Code Analyzer, è possibile ottenere consigli basati sull'intelligenza artificiale e correzioni in linea nel flusso di lavoro di sviluppo. Utilizzare questi consigli e correzioni per risolvere gli hotspot e migliorare la selettività delle query, l'ingombro, l'utilizzo della cache e la qualità dei test. X X
Analizzatore di codice Salesforce Analizzare il codice con IDE, CLI o CI/CD per assicurarsi che rispetti le procedure consigliate. Tramite l'integrazione di Salesforce Code Analyzer con ApexGuru, è possibile ottenere informazioni sugli schemi anti-prestazioni direttamente nel flusso di lavoro dello sviluppatore. X
Salesforce Edge Network Migliorare i tempi di download e l'esperienza utente instradando il Dominio personale attraverso Salesforce Edge Network. X
Tavole Skinny Evitare i join nelle tabelle che hanno campi utilizzati di frequente. X
Proactive Monitoring Monitorare costantemente le anomalie nella crescita dei record, la distorsione della proprietà e le regressioni delle prestazioni. Avvisare i problemi su larga scala prima che diventino critici. X X
RisorsaDescrizioneDisponibilitàPrestazioniScalabilità
Le sfide di scalabilità costano milioni di euro: ecco come rendere il business a prova di futuro Scopri in che modo implementare la scalabilità porta a una crescita sostenibile e a un successo a lungo termine. X X
Creazione e distribuzione di applicazioni scalabili con Scale Center Informazioni su come valutare e risolvere in modo proattivo i problemi di prestazioni nelle implementazioni Salesforce.
Analisi degli hotspot di prestazioni e scalabilità nelle app Salesforce complesse Risolvere i problemi di prestazioni e scalabilità nell'organizzazione. X X
L'app non deve andare nel panico nel traffico dell'ora di punta - Ecco come prepararsi Di seguito sono descritti quattro passaggi chiave per eseguire correttamente il test su scala.
Spiegazione del motore AI ApexGuru Di seguito viene descritto come ApexGuru utilizza i modelli addestrati su misura, la telemetria dell'organizzazione reale e i filtri intelligenti per offrire approfondimenti precisi, contestuali e di immediato valore pratico. X X
Ottimizzazione di Apex per app e Agentforce con ApexGuru Di seguito viene descritto come ApexGuru aiuta gli sviluppatori a rilevare e correggere gli schemi anti-prestazioni, inclusi SOQL, DML, debug e test delle inefficienze., Utilizzare ApexGuru come coach basato sull'intelligenza artificiale per lo sviluppo scalabile delle app e l'implementazione di Agentforce. X X
Antipattern ApexGuru Informazioni sulla libreria ufficiale degli schemi anti-pattern rilevati da ApexGuru, aggiornata per ogni rilascio principale di Salesforce. X X
Procedure consigliate per le distribuzioni con grandi volumi di dati Comprendere l'impatto dei processi di grandi volumi di dati. X
Considerazioni per Salesforce Edge Network Di seguito viene descritto come preparare l'organizzazione all'utilizzo di Salesforce Edge Network. X
Modello Design Standards (Standard di progettazione) Creare standard di progettazione per la propria organizzazione. X X X
Considerazioni sulla progettazione del modello di dati Ottimizzare i modelli di dati per la scalabilità e la manutenzione. X X
Progettazione dell'accesso ai record su scala aziendale Ottimizzare le prestazioni del controllo degli accessi tramite la configurazione. X
Infrastruttura per sistemi con grandi volumi di dati Informazioni sulle funzionalità che supportano le prestazioni del sistema per le distribuzioni con volumi di dati elevati. X
Risorse didattiche per la gestione dei batch Informazioni su Gestione batch. X X
Ottimizzazione delle prestazioni Lightning Experience Migliorare Lightning Experience nell'organizzazione per aiutare gli utenti a lavorare più velocemente. X
Gestione della deviazione di ricerca in Salesforce per evitare le eccezioni del blocco dei record Di seguito viene descritto come ridurre al minimo gli effetti delle distorsioni della ricerca. X X
Procedure consigliate SOQL e SOSL Seguire le procedure consigliate SOQL e SOSL per le distribuzioni con volumi di dati elevati. X X
Strumenti per riallineamenti su larga scala Pianificare ed eseguire i riallineamenti in modo efficace. X
Utilizzo dei mashup Gestire serie di dati di grandi dimensioni in un'applicazione diversa. X X

Aiutaci a mantenere Salesforce Well-Architected pertinente per te; partecipa al nostro sondaggio per fornire un feedback su questo contenuto e dirci cosa vorresti vedere dopo.