# architect Framework ben progettato (well-architected) - Full Documentation # Accessibilità e progettazione inclusiva - Schemi
Ulteriori informazioni sull'[equità](/docs/architect/it-it/well-architected/guide/fairness.html) ben progettata → [accessibilità con Lightning ed Experience Cloud](/docs/architect/it-it/well-architected/guide/fairness.html#accessibility-with-lightning-and-experience-cloud) ## Conformità WCAG 2.2 AA **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Standard di progettazione | ✅ WCAG 2.2 Level AA è la barra di accessibilità minima per i lavori personalizzati (Experience Cloud, LWC, temi personalizzati), verificati dal team di costruzione | | Piattaforma \| Standard di progettazione | ✅ Principio percepibile: Esistono alternative testuali per immagini e icone; le didascalie accompagnano i video | | Piattaforma \| Standard di progettazione | ✅ Principio di funzionamento: Tutte le funzionalità sono utilizzabili solo tramite tastiera, senza necessità di mouse o tocco: le tecnologie di controllo vocale e di assistenza per l'accesso tramite switch si basano sullo stesso modello di tastiera/messa a fuoco | | Piattaforma \| LWC | ✅ I componenti Web Lightning standard vengono utilizzati come progettato, fornendo automaticamente l'accessibilità di base | | Piattaforma \| LWC | ✅ I componenti personalizzati implementano l'accessibilità esplicita convalidata tramite test con screen reader | | Piattaforma \| Piani di test | ✅ Il test di accessibilità è incluso in tutte le fasi di test (non ad hoc o facoltativo) | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| Standard di progettazione | ⚠️ WCAG 2.2 Livello AA è considerato facoltativo o "bello da avere" anziché requisito minimo | | Piattaforma \| Standard di progettazione | ⚠️ Le immagini e le icone sono prive di alternative testuali; i video sono privi di didascalie | | Piattaforma \| Standard di progettazione | ⚠️ La funzionalità richiede l'interazione del mouse o del tocco senza alternative da tastiera | | Piattaforma \| LWC | ⚠️ I componenti personalizzati vengono creati senza implementazione o convalida dell'accessibilità | | Piattaforma \| LWC | ⚠️ I componenti di input personalizzati utilizzano elementi div e stile CSS senza significato semantico o accessibilità da tastiera | | Piattaforma \| Piani di test | ⚠️ I test di accessibilità sono ad hoc, facoltativi o eseguiti solo prima del lancio (non durante lo sviluppo) | ## Architettura dello screen reader **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| LWC | ✅ Gli elementi HTML semantici (intestazione, navigazione, principale, a parte, piè di pagina, articolo, sezione) vengono utilizzati nei componenti Web Lightning personalizzati | | Piattaforma \| LWC | ✅ I punti di riferimento, i ruoli e le proprietà di ARIA vengono applicati dove HTML semantico da solo non può trasmettere il comportamento dell'interfaccia | | Piattaforma \| LWC | ✅ Gli aggiornamenti dinamici del contenuto utilizzano le regioni in diretta che annunciano le modifiche agli utenti screen reader | | Piattaforma \| LWC | ✅ I componenti interattivi personalizzati hanno definizioni di ruolo esplicite corrispondenti al loro comportamento | | Piattaforma \| LWC | ✅ Le etichette dei moduli sono associate esplicitamente a tutti gli input dei moduli utilizzando elementi di etichetta appropriati o attributi aria-labeledby | | Piattaforma \| LWC | ✅ I componenti di input Lightning sono configurati con attributi di etichetta obbligatori che forniscono l'associazione di etichette incorporata | | Piattaforma \| Piani di test | ✅ Il test viene condotto con screen reader effettivi: JAWS e NVDA su Windows, VoiceOver su macOS e iOS, TalkBack su Android | | Piattaforma \| Piani di test | ✅ Il test manuale con tecnologia di assistenza reale viene eseguito da persone che capiscono come gli utenti screen reader navigano | | Piattaforma \| Standard di progettazione | ✅ Il testo segnaposto non viene mai utilizzato come unica etichetta perché i segnaposto scompaiono a fuoco e forniscono un contesto insufficiente per gli screen reader | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| LWC | ⚠️ Strisce di markup Div-heavy che significano dalla gerarchia dei contenuti costringendo gli utenti screen reader a navigare in modo lineare | | Piattaforma \| LWC | ⚠️ ARIA non viene utilizzato dove HTML semantico da solo non può trasmettere il comportamento dell'interfaccia | | Piattaforma \| LWC | ⚠️ Gli aggiornamenti dinamici del contenuto non utilizzano le regioni in diretta; gli utenti dello screen reader perdono modifiche importanti | | Piattaforma \| LWC | ⚠️ I componenti interattivi personalizzati non hanno definizioni di ruolo esplicite; gli screen reader le annunciano in modo non corretto | | Piattaforma \| LWC | ⚠️ Gli input del modulo non contengono un'associazione esplicita delle etichette; il testo segnaposto viene utilizzato come unica etichetta | | Piattaforma \| Piani di test | ⚠️ Vengono utilizzati esclusivamente strumenti di accessibilità automatici; non vengono eseguiti test manuali dello screen reader | | Piattaforma \| Piani di test | ⚠️ I test sono condotti da utenti non vedenti che non hanno familiarità con il modo in cui gli utenti screen reader navigano effettivamente | ## Navigazione da tastiera **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Standard di progettazione | ✅ La funzionalità completa è accessibile tramite tastiera senza richiedere l'interazione del mouse o del tocco in qualsiasi punto dei journey degli utenti | | Piattaforma \| LWC | ✅ L'ordine di messa a fuoco logico segue il layout visivo e il flusso di interazione | | Piattaforma \| LWC | ✅ Quando si caricano contenuti dinamici o si aprono le finestre modali, l'attivazione viene gestita a livello di programmazione per guidare gli utenti della tastiera verso nuovi contenuti | | Piattaforma \| LWC | ✅ I componenti modali e popover spostano l'attivazione sul titolo modale o sul primo elemento interattivo all'apertura; tornare attivo per attivare il pulsante alla chiusura | | Piattaforma \| Standard di progettazione | ✅ Gli indicatori di messa a fuoco visibili mostrano chiaramente quale elemento ha sempre la tastiera attiva | | Piattaforma \| Standard di progettazione | ✅ Gli indicatori di messa a fuoco soddisfano il requisito di contrasto 3:1 rispetto al contenuto circostante | | Piattaforma \| LWC | ✅ Gli utenti possono navigare all'interno e all'esterno di tutti i componenti utilizzando solo la tastiera senza rimanere intrappolati | | Piattaforma \| LWC | ✅ I dialoghi modali intrappolano l'attivazione all'interno della finestra modale mentre sono aperti (impedendo l'accesso ai contenuti oscurati) ma rilasciano l'attivazione su Chiudi | | Piattaforma \| Standard di progettazione | ✅ Le scelte rapide da tastiera per le azioni frequenti evitano conflitti con le scelte rapide dello screen reader e le scelte rapide del browser | | Piattaforma \| Standard di progettazione | ✅ Le scelte rapide a lettera singola si attivano solo quando componenti specifici sono attivi (non globalmente) per evitare conflitti con i comandi di navigazione dello screen reader | | Piattaforma \| Documentazione | ✅ Tutte le scelte rapide da tastiera personalizzate sono documentate nel contenuto della guida accessibile | | Piattaforma \| Piani di test | ✅ I passaggi di test includono la navigazione solo tastiera in tutti i journey utente senza utilizzare mouse o tocco | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| Standard di progettazione | ⚠️ La funzionalità richiede l'interazione con mouse o touch; gli utenti solo tastiera non possono completare le operazioni chiave | | Piattaforma \| LWC | ⚠️ L'ordine di attivazione non segue il layout visivo logico; gli utenti passano attraverso gli elementi in sequenza imprevista | | Piattaforma \| LWC | ⚠️ Le modalità si aprono senza gestione del focus; gli utenti della tastiera sono bloccati sul pulsante di attivazione ora nascosto | | Piattaforma \| LWC | ⚠️ La chiusura modale non restituisce l'attivazione al pulsante di attivazione; gli utenti devono cercare il loro posto nella pagina | | Piattaforma \| Standard di progettazione | ⚠️ Gli indicatori di messa a fuoco sono soppressi per motivi estetici; gli utenti non possono vedere quale elemento ha il focus | | Piattaforma \| Standard di progettazione | ⚠️ Gli indicatori di messa a fuoco hanno un contrasto insufficiente (<3:1) | | Piattaforma \| LWC | ⚠️ Gli utenti rimangono intrappolati in aree dell'interfaccia senza meccanismo di fuga (trappole da tastiera) | | Piattaforma \| LWC | ⚠️ Contenuto incorporato (iFrame, widget di terze parti) cattura in modo permanente l'attivazione della tastiera | | Piattaforma \| Standard di progettazione | ⚠️ Le scelte rapide a lettera singola si attivano in conflitto globale con i comandi di navigazione a lettera singola dello screen reader | | Piattaforma \| Documentazione | ⚠️ Le scelte rapide da tastiera personalizzate non sono documentate; gli utenti non possono scoprirle | ## Progettazione visiva e contrasto **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Standard di progettazione | ✅ Rapporto di contrasto minimo 4.5:1 per testo normale sotto 18pt o grassetto 14pt | | Piattaforma \| Standard di progettazione | ✅ Rapporto di contrasto minimo 3:1 per testo di grandi dimensioni e per componenti e grafica significativi dell'interfaccia utente (bordi dei moduli, icone informative); gli elementi puramente decorativi e disabilitati sono esenti | | Piattaforma \| Experience Cloud | ✅ I temi personalizzati e i siti Experience Cloud con immagine aziendale includono la convalida esplicita del contrasto utilizzando strumenti di sviluppo del browser o checker automatici | | Piattaforma \| Standard di progettazione | ✅ Il ridimensionamento del testo al 200% è supportato senza perdita di contenuto o funzionalità (requisito WCAG) | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| Standard di progettazione | ⚠️ I rapporti di contrasto del testo scendono al di sotto di 4.5:1 (testo normale) o 3:1 (testo grande e componenti dell'interfaccia utente) | | Piattaforma \| Experience Cloud | ⚠️ I temi personalizzati vengono distribuiti senza convalida del contrasto; gli utenti ipovedenti non possono leggere il contenuto | | Piattaforma \| Standard di progettazione | ⚠️ Ridimensionamento testo oltre il 200% interrompe i layout perdendo contenuto o funzionalità | ## Test e convalida dell'accessibilità **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| CI/CD | ✅ La scansione dell'accessibilità Axe-core o Lighthouse è integrata nelle pipeline CI / CD che rilevano problemi strutturali in ogni distribuzione | | Piattaforma \| CI/CD | ✅ Le build falliscono quando vengono rilevati problemi critici di accessibilità | | Piattaforma \| Piani di test | ✅ I test manuali con screen reader, navigazione solo tastiera e zoom del browser al 200% vengono eseguiti regolarmente durante lo sviluppo | | Piattaforma \| Piani di test | ✅ I test rivelano problemi di interazione, tra cui ordine degli annunci confuso, errori di gestione del focus e trappole da tastiera | | Piattaforma \| Business | ✅ Gli utenti con disabilità sono inclusi nei test di usabilità durante tutto il processo di progettazione | | Piattaforma \| Business | ✅ I test di usabilità rivelano le barriere pratiche che mancano ai test esperti automatici e manuali | | Piattaforma \| Piani di test | ✅ Test automatici (~57% dei problemi in volume), test manuali (problemi di interazione) e test utente (barriere del mondo reale) vengono tutti eseguiti | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| CI/CD | ⚠️ La scansione dell'accessibilità non è integrata nelle pipeline CI/CD | | Piattaforma \| CI/CD | ⚠️ Le build procedono nonostante i problemi critici di accessibilità | | Piattaforma \| Piani di test | ⚠️ Non vengono eseguiti test manuali con tecnologia di supporto; viene utilizzata solo la scansione automatica | | Piattaforma \| Business | ⚠️ Gli utenti con disabilità non sono inclusi nei test di usabilità | | Piattaforma \| Piani di test | ⚠️ Lo scanner di accessibilità automatico viene eseguito una volta prima del lancio e il test di accessibilità è considerato completato | # Affidabilità Affidabilità ## Panoramica Salesforce gestisce un'infrastruttura resiliente in più regioni con failover automatico e resilienza a livello di infrastruttura. La piattaforma gestisce la ridondanza del data center, la disponibilità della rete e il patching dell'infrastruttura, con lo stato di disponibilità della piattaforma in tempo reale visibile all'indirizzo Trust.salesforce.com. Si progetta l'affidabilità di tutto ciò che viene eseguito in questa infrastruttura:: i modelli di dati scalabili entro i limiti del governor, le transazioni che anticipano e risolvono gli errori, il monitoraggio che rileva quando la soluzione si discosta dai target di disponibilità e le procedure di ripristino di emergenza che ripristinano le operazioni aziendali quando si verificano errori. Il contratto sul livello di servizio di Salesforce copre la piattaforma, ma si è titolari dell'affidabilità per tutto ciò che si trova al di sopra del livello di infrastruttura. L'utente è responsabile della definizione e del raggiungimento dei propri obiettivi dei livelli di servizio (SLO), ovvero gli obiettivi di affidabilità richiesti dalla propria azienda. L'affidabilità a livello di applicazione rimane una responsabilità dell'utente indipendentemente dal livello SLA della piattaforma. Anche la stessa piattaforma che garantisce la disponibilità la limita: i limiti del governor limitano il consumo di risorse di ogni tenant in modo che nessun tenant possa degradare la piattaforma per altri. La soluzione deve quindi essere scalata con grazia entro questi limiti, anziché richiedere semplicemente più capacità. Soluzioni inaffidabili possono creare impatti aziendali a catena. Il flusso di reddito rallenta quando le piattaforme di commercio non sono disponibili. La produttività diminuisce quando gli strumenti interni non funzionano a metà flusso di lavoro. Trust si erode quando i dati vengono danneggiati o i record vengono persi. Questi problemi si aggravano nel tempo man mano che le soluzioni si accumulano e il debito tecnico cresce. Affidabilità non significa prevenire tutti gli errori. Gli errori si verificano nei sistemi distribuiti. L'affidabilità riguarda la progettazione di sistemi che anticipano i guasti, aiutano a contenere il raggio di esplosione e ripristinano automaticamente il servizio. I requisiti di affidabilità variano a seconda dell'impatto sul business. Ad esempio, un portale Experience Cloud indirizzato ai clienti che richiede una disponibilità del 99,9% implica scelte architettoniche fondamentalmente diverse rispetto a un processo di creazione di rapporti batch interni che tollera ritardi occasionali. ### Affidabilità ed eccellenza operativa: Due facce della stessa moneta Affidabilità ed [Eccellenza Operativa](/docs/architect/it-it/well-architected/guide/operational-excellence.html) sono profondamente interconnesse. Entrambi riguardano il monitoraggio, la risposta agli incidenti e la disponibilità del sistema. Questa sovrapposizione è intenzionale, non accidentale. La distinzione sta nel *tempo di progettazione* rispetto al *tempo di esecuzione*. L'affidabilità è ciò che si progetta *in* un sistema prima che venga eseguito, tra cui: - i modelli di dati menzionati in precedenza che rientrano nei limiti del governor - le transazioni che anticipano e risolvono gli errori - ridondanza e interruttori che contengono il raggio di esplosione - gli obiettivi di ripristino - obiettivo tempo di ripristino (RTO) e obiettivo punto di ripristino (RPO) - che determinano il comportamento del sistema quando le cose non vanno. L'affidabilità è una caratteristica strutturale della soluzione. L'Eccellenza Operativa è il modo in cui si *gestisce, migliora e sostiene* il sistema una volta in esecuzione, tra cui: - le procedure di distribuzione che riducono il rischio di cambiamento - Runbook e percorsi di inoltro al livello superiore che guidano il team durante gli incidenti - le pipeline di osservabilità che evidenziano i segnali - i cicli di feedback che migliorano il sistema nel tempo. L'eccellenza operativa è la disciplina umana e di processo che circonda la soluzione. Il terreno condiviso tra i due pilastri è il livello di monitoraggio e osservabilità. Il monitoraggio è *progettato* come un problema di affidabilità. Dovresti creare dei sistemi osservabili. È *praticato* come una preoccupazione di eccellenza operativa. Il team agisce in base a ciò che viene comunicato dai sistemi. L'affidabilità copre gli schemi architettonici creati, ad esempio le soglie di avviso e i cruscotti digitali di salute. L'eccellenza operativa copre il modo in cui il team risponde ai segnali, ad esempio runbook e risposte su chiamata. Considerare questa distinzione: Gli indirizzi di affidabilità "Il sistema sopravviverà?" mentre gli indirizzi di Eccellenza operativa "Il team può gestirlo?" Un sistema perfettamente affidabile gestito da un team senza runbook, distribuzioni incoerenti o cicli di feedback può comunque fallire nella pratica. Un team operativamente eccellente che gestisce un sistema fragile e mal progettato sarà sopraffatto da incidenti che non può prevenire. Entrambi i pilastri sono necessari, e nessuno dei due sostituisce l'altro. L'affidabilità non funziona isolatamente. Come descritto nelle sezioni precedenti, Eccellenza Operativa è il partner più vicino. I due pilastri condividono il livello di osservabilità, con l'affidabilità che definisce ciò che si crea in un sistema e l'eccellenza operativa che definisce il modo in cui opera il team. [Trust](/docs/architect/it-it/well-architected/guide/trust.html) richiede anche un'infrastruttura che resista agli attacchi e mantenga l'integrità dei dati: un sistema non è affidabile se può essere compromesso. L'ottimizzazione delle risorse evita l'esaurimento del limite del governor, garantendo che la piattaforma rimanga affidabile su larga scala. L'ottimizzazione dei costi bilancia gli investimenti in affidabilità con il valore aziendale che offrono. Gli obiettivi di disponibilità giustificano la complessità architettonica richiesta per raggiungerli. Nessun singolo pilastro produce una soluzione ben progettata isolatamente: l'affidabilità fornisce le basi strutturali da cui gli altri pilastri *dipendono* e *si rafforzano*. ## Principi di progettazione Utilizzare questi principi per guidare le decisioni relative all'architettura per garantire l'affidabilità della piattaforma. - **Distribuire il carico di lavoro tramite l'esecuzione in blocco.** Elaborare più record in singole transazioni anziché affidarsi a operazioni sequenziali per record. La creazione in blocco condivide i limiti del governor in un batch elaborato in una singola transazione, rispettando tali limiti e massimizzando la produttività. L'elaborazione Apex basata sulle raccolte, i processi batch con ambito configurabile e gli eventi piattaforma consumati in blocco racchiudono tutti questo principio. Le soluzioni ben in blocco elaborano 200 record con lo stesso numero di istruzioni SOQL e DML di un record nell'elaborazione sequenziale. Gli schemi di carico di lavoro distribuiti offrono resilienza poiché nessun errore di un singolo record influisce sull'elaborazione dell'intero batch. - **Supponiamo che tutto fallisca.** I limiti del governor, le finestre di manutenzione della piattaforma e le dipendenze di integrazione creano modalità di errore correlate all'architettura multitenant Salesforce. Progettare per questi errori specifici della piattaforma fin dall'inizio. Le query SOQL superano i limiti di righe sotto la distorsione dei dati. Il tempo CPU Apex può scadere durante calcoli complessi. I timeout delle chiamate possono verificarsi a causa della lentezza dei servizi esterni. I blocchi delle righe DML non riescono quando le transazioni simultanee si scontrano. I limiti di memoria possono fallire quando i caricamenti dei file aumentano in modo imprevisto. Gli architetti che pianificano questi errori creano soluzioni affidabili senza intervento manuale. Questi sistemi affidabili rilevano l'avvicinarsi dei limiti del governor, contengono il raggio di esplosione tramite la gestione degli errori e ripristinano automaticamente tramite i framework di tentativo e gli eventi piattaforma. - **Creare sistemi di auto-ripristino.** Progettare soluzioni che rilevano gli errori e si ripristinano automaticamente senza intervento umano. Gli eventi piattaforma abilitano schemi di tentativo personalizzati. La consegna a un abbonato può essere tentata con EventBus.RetryableException, anche se la riproduzione della transazione originale richiede un'architettura personalizzata. La gestione degli errori dei flussi indirizza le eccezioni ai flussi di ripristino. I processi batch Apex isolano gli errori dei blocchi - un blocco non riuscito non impedisce l'elaborazione di altri blocchi - abilitando il completamento parziale del processo e un nuovo tentativo mirato. Implementare una logica di tentativo esplicita utilizzando il tracciamento degli errori in AsyncApexJob per il ripristino temporaneo degli errori. Applicare un backoff esponenziale a questi schemi di tentativo quando si gestiscono errori temporanei. I sistemi di auto-ripristino mantengono gli obiettivi di disponibilità anche durante gli incidenti fuori orario, quando i soccorritori umani potrebbero non essere disponibili, riducendo il carico operativo e migliorando il tempo medio per il ripristino. - **Progettare prima per i requisiti aziendali.** Definire gli obiettivi del livello di servizio in base all'impatto effettivo sul business prima di selezionare le soluzioni tecniche. Non tutti i componenti richiedono una disponibilità di cinque-nove. Abbinare l'investimento in affidabilità alla criticità aziendale e progettare un degrado armonioso per le funzioni di supporto. Gli obiettivi realistici consentono scelte di architettura appropriate ed evitano l'ingegneria eccessiva o la fornitura insufficiente. - **Convalidare il recupero tramite esercitazioni.** Pianificare esercitazioni di ripristino di emergenza che testano il ripristino del backup, le procedure di failover e i playbook di risposta agli incidenti. Ripristino di un Full Copy Sandbox dal backup di produzione per convalidare i processi di ripristino. Introdurre errori intenzionali negli ambienti Sandbox per verificare che il monitoraggio rilevi problemi e che il ripristino automatico venga eseguito correttamente. Le esercitazioni rivelano lacune nelle procedure, negli strumenti e nei runbook prima che incidenti reali li rendano visibili. Documentare i risultati delle esercitazioni e tenere traccia della correzione delle lacune rilevate. Test regolari assicurano che le funzionalità di ripristino rimangano aggiornate man mano che le soluzioni evolvono e che cambia l'appartenenza ai team. ## Affidabilità piattaforma: Funzioni gestite da Salesforce Capire che cosa funziona Salesforce aiuta a concentrare le attività di progettazione dell'affidabilità su ciò *che si* controlla. La piattaforma gestisce i problemi infrastrutturali che richiederebbero team dedicati negli ambienti IT tradizionali, ad esempio: - **Infrastruttura multiregionale e failover:** Salesforce Hyperforce offre ai data center regionali il failover automatico dei servizi interni. Fornisce inoltre più zone di disponibilità all'interno delle regioni e la replica dei dati a livello di infrastruttura. La piattaforma gestisce in modo trasparente la ridondanza e la distribuzione delle zone di disponibilità all'interno delle regioni. - **Impegni sugli SLA piattaforma:** I livelli di disponibilità garantita con rimedi contrattuali sono negoziati per cliente. [Trust.salesforce.com](http://trust.salesforce.com) pubblica lo stato della piattaforma in tempo reale e la cronologia dei tempi di attività, ma qualsiasi garanzia di disponibilità specifica e i relativi rimedi sono inclusi nell'accordo negoziato. Esaminare il contratto e la documentazione corrente di Salesforce Trust and Compliance per verificare gli impegni validi per la propria organizzazione. - **Ridondanza dell'infrastruttura:** La piattaforma gestisce server, percorsi di rete, infrastrutture di database e sistemi di archiviazione ridondanti. Il failover a livello di infrastruttura avviene automaticamente durante i guasti hardware senza intervento del cliente. I backup della piattaforma proteggono dalla perdita di dati a livello di infrastruttura. - **Manutenzione e aggiornamenti della piattaforma:** I rilasci principali della piattaforma offrono funzioni e patch di sicurezza con compatibilità retroattiva gestita da Salesforce. Le finestre di manutenzione della piattaforma sono pianificate e comunicate su [Trust.salesforce.com](http://trust.salesforce.com). Il patching dell'infrastruttura avviene in modo trasparente, senza coinvolgimento del cliente. - **Monitoraggio dello stato della piattaforma Core:** Salesforce monitora le prestazioni dell'infrastruttura, inclusi i tempi di risposta del database, la latenza di rete, lo stato del gateway API e le prestazioni del sistema di archiviazione. Lo stato di integrità della piattaforma è visualizzato su [Trust.salesforce.com](http://trust.salesforce.com) e include gli aggiornamenti degli incidenti in tempo reale. Lo stato specifico dell'istanza è disponibile tramite l'API Stato. Queste operazioni della piattaforma creano le basi su cui costruire. Non si gestiscono data center, server di provisioning o si progetta il ripristino di emergenza dell'infrastruttura. L'utente è piuttosto responsabile di ciò che progetta e configura in cima a questa base. ## Affidabilità della soluzione: Elementi progettati e gestiti Il modello di responsabilità condivisa specifica che si è titolari dell'affidabilità per tutto ciò che si crea con Salesforce. L'affidabilità della piattaforma consente il lavoro ma non lo sostituisce. Le responsabilità di affidabilità riguardano sei aree interconnesse: ### Target di affidabilità e SLO #### Definizione degli obiettivi dei livelli di servizio Gli obiettivi del livello di servizio (SLO) quantificano i requisiti di affidabilità in termini misurabili. Gli SLO collegano i requisiti aziendali e l'architettura tecnica. Prima di selezionare le tecnologie o progettare modelli di dati, stabilire SLO che definiscono il successo di ogni flusso utente critico. Gli SLO in genere misurano: - **Disponibilità**: percentuale di tempo in cui il sistema è operativo e accessibile - **Latenza**: tempo necessario per completare le operazioni, misurato come percentili (p50, p95, p99) - **Throughput** \- volume di operazioni completate correttamente per unità di tempo - **Tasso di errore** \- percentuale di richieste non riuscite o che restituiscono errori - **Tempo di ripristino**: durata richiesta per ripristinare il servizio dopo gli incidenti Definire gli SLO in base alle funzionalità aziendali anziché in base ai componenti tecnici. Le funzionalità rivolte agli utenti richiedono SLO più rigorosi rispetto ai processi amministrativi o batch. Ogni SLO deve essere oggettivamente misurabile utilizzando la strumentazione disponibile. #### SLA e SLO e SLI I contratti sui livelli di servizio (SLA) sono impegni contrattuali con conseguenze in caso di errore. Qualsiasi livello di disponibilità garantito e i relativi rimedi contrattuali vengono negoziati per cliente. Esaminare il contratto e la documentazione corrente di Salesforce Trust and Compliance per verificare gli impegni applicabili alla propria organizzazione. Gli SLO delle soluzioni devono essere meno rigorosi degli SLA della piattaforma per preservare il budget degli errori. Se il contratto sul livello di servizio della piattaforma e lo SLO della soluzione hanno entrambi come obiettivo il 99,9%, qualsiasi tempo di inattività significativo della piattaforma consuma direttamente il budget per gli errori, evitando errori a livello di applicazione, problemi di integrazione o manutenzione pianificata nello stesso periodo di misurazione. Uno SLO viene formalmente violato solo quando il tempo di inattività cumulativo esaurisce il budget di errore completo per il periodo di misurazione. Se SLA e SLO sono impostati sullo stesso obiettivo, un singolo incidente piattaforma può esaurire completamente il budget. Ad esempio, quando la piattaforma fornisce il 99,9%, puntare a uno SLO della soluzione del 99,5% per mantenere un buffer significativo per i problemi che è necessario risolvere (bug delle applicazioni, errori di integrazione e finestre di distribuzione). Gli indicatori del livello di servizio (SLI) sono misure utilizzate per valutare il raggiungimento degli SLO. Gli SLI devono essere oggettivamente misurabili, raccolti in modo coerente e direttamente collegati all'esperienza utente. Per le soluzioni Salesforce, gli SLI includono: - Tempo di attività della piattaforma tramite [Trust.salesforce.com](http://trust.salesforce.com) - Tempo di caricamento delle pagine tramite Experience Cloud Analytics - Tempo di risposta API tramite Monitoraggio evento (che richiede il componente aggiuntivo Monitoraggio evento o Salesforce Shield) - Percentuale di successo delle transazioni tramite registrazione applicazione personalizzata - Completamento del processo batch tramite il monitoraggio AsyncApexJob #### Target di disponibilità realistici Obiettivi di disponibilità più elevati creano complessità e costi in aumento esponenziale. Comprendere le implicazioni architettoniche prima di impegnarsi per raggiungere gli obiettivi: | Destinazione | Tempo di inattività annuale | Tempo di inattività mensile | Requisiti architettonici | | :---- | :---- | :---- | :---- | | 99% | 3,65 giorni | 7.3 ore | Funzionalità standard della piattaforma | | 99.5% | 1,83 giorni | 3.6 ore | Ridondanza di base, monitoraggio attivo | | 99.9% | 8.76 ore | 43,8 minuti | Consapevolezza multiregione, failover automatico | | 99.95% | 4.38 ore | 21,9 minuti | Schemi attivo-attivi, test del caos | | 99.99% | 52,6 minuti | 4.4 minuti | Architettura multi-organizzazioni, automazione completa | Evita obiettivi arbitrari come "cinque nove per tutto". Valutare invece l'impatto aziendale del tempo di inattività per funzionalità e impostare gli obiettivi di conseguenza. I rapporti batch interni che tollerano 7 ore di tempo di inattività mensile richiedono un'architettura fondamentalmente diversa rispetto all'elaborazione degli ordini critica per il reddito che richiede un ripristino sub-orario. #### Affidabilità basata sull'esperienza degli utenti Definire l'affidabilità dal punto di vista dell'utente anziché dalle sole metriche tecniche. Un sistema che segnala un tempo di attività del 99,9% ma che presenta frequenti timeout non garantisce l'affidabilità basata sull'esperienza utente. Gli utenti si preoccupano di completare correttamente i flussi di lavoro più del tempo di attività delle singole API. Progettare SLO che riflettano i journey degli utenti anziché le singole chiamate API. Un flusso Checkout multifase richiede che ogni fase venga completata correttamente in un tempo accettabile. Misurare le percentuali di completamento dei flussi utente end-to-end come indicatore di affidabilità principale. La disponibilità dei componenti è necessaria, ma insufficiente per l'affidabilità dell'esperienza utente. ### Architettura ad alta disponibilità #### Strategie multiregionali Salesforce Hyperforce offre data center regionali che consentono la distribuzione geografica. La piattaforma gestisce la ridondanza dell'infrastruttura all'interno delle regioni, incluse più zone di disponibilità, il failover automatico dei servizi interni e la replica dei dati a livello di infrastruttura. Gli SLA piattaforma riflettono questa ridondanza dell'infrastruttura. Per la maggior parte delle soluzioni, la distribuzione a regione singola con ridondanza gestita dalla piattaforma offre una disponibilità sufficiente. Trust nell'infrastruttura Salesforce per la disponibilità di base e per concentrare l'architettura delle soluzioni sull'affidabilità a livello di applicazione, inclusi schemi di integrazione tolleranti ai guasti, degradazione graduale e ripristino automatico. Il failover all'interno dell'area geografica nelle zone di disponibilità è automatico e incluso negli impegni SLA standard della piattaforma, che Salesforce gestisce in modo trasparente a livello di infrastruttura. Il ripristino di emergenza tra regioni (fuori regione) è un'offerta a pagamento separata e non è incluso per impostazione predefinita in alcuna versione standard. Se i requisiti di continuità operativa richiedono il failover tra regioni, documentare esplicitamente questa dipendenza nel piano di ripristino di emergenza in modo che le parti interessate comprendano la distinzione tra la resilienza della piattaforma inclusa e le funzionalità di DR tra regioni acquistate. ### Schemi multi-organizzazione per carichi di lavoro critici L'architettura multi-organizzazione offre la massima isolamento e ridondanza geografica, ma moltiplica la complessità operativa, incluse la sincronizzazione dei dati, il provisioning utente, il coordinamento della distribuzione e i costi delle licenze. Riservare gli schemi multi-organizzazione agli scenari in cui i requisiti aziendali giustificano chiaramente la complessità. Si consideri ad esempio uno schema multi-organizzazione per questi scenari: - L'azienda richiede un RPO/RTO garantito oltre le funzionalità della piattaforma - I requisiti normativi impongono l'isolamento dei dati geografici, la pianificazione della continuità operativa richiede una completa indipendenza da una singola regione - Il consolidamento dell'organizzazione non è possibile a causa dei requisiti di autonomia dell'unità operativa. **Schema attivo-passivo:** \- L'organizzazione principale serve tutto il traffico in condizioni normali. Le organizzazioni secondarie in regioni diverse rimangono sincronizzate ma inattive. Il failover si verifica durante un guasto della regione principale. Questa soluzione offre lo schema multi-organizzazione più semplice ma lascia inutilizzata la capacità secondaria. I livelli di instradamento DNS o di autenticazione utente indirizzano gli utenti all'organizzazione attiva. **Schema attivo-attivo:** Entrambe le organizzazioni servono il traffico di produzione in modo continuo. Gli utenti vengono allocati per area geografica, unità operativa o tipo di carico di lavoro. Attivo-attivo massimizza l'utilizzo della capacità ma richiede una sincronizzazione dei dati e un instradamento utente sofisticati. La risoluzione dei conflitti è fondamentale quando lo stesso record viene modificato in entrambe le organizzazioni. Progettare una sincronizzazione dei dati adeguata ai requisiti RPO. Gli eventi piattaforma offrono uno streaming degli eventi quasi in tempo reale per le modifiche critiche dei dati. Acquisizione dati di modifica offre il tracciamento automatico delle modifiche per gli oggetti selezionati con uno sviluppo minimo. La replica API pianificata tramite API in blocco 2.0 a intervalli fissi è adatta ai dati di riferimento meno sensibili al tempo. #### Ridondanza a più livelli Applicare la ridondanza a livello di dati, applicazione e integrazione per evitare singoli punti di errore. La ridondanza a livelli garantisce che l'errore a qualsiasi livello non comprometta la disponibilità complessiva del sistema. - **Ridondanza dei dati:** La piattaforma fornisce la ridondanza dei dati tramite backup dell'infrastruttura. Integrare questa ridondanza con la replica a livello di applicazione quando l'azienda richiede un ripristino più rapido rispetto alle procedure di ripristino della piattaforma. Utilizzare Acquisizione dati di modifica o eventi piattaforma per replicare continuamente dati critici in archivi secondari o in sistemi esterni. Ciò consente il ripristino da un danneggiamento logico o da errori di configurazione che i backup dell'infrastruttura non possono risolvere. - **Ridondanza applicazione:** Progettare una logica di applicazione stateless in modo che qualsiasi server di applicazioni possa elaborare qualsiasi richiesta. Evitare lo stato lato server che impedisce la scalabilità orizzontale. Utilizzare tipi di metadati personalizzati e impostazioni personalizzate per la configurazione che deve essere immediatamente disponibile in tutti i server di applicazioni. La progettazione stateless consente a un server di applicazioni di elaborare le richieste senza dipendere dallo stato specifico del server. - **Ridondanza integrazione:** Progettare integrazioni che tollerino l'indisponibilità temporanea del sistema esterno. Implementare schemi di interruttori che rilevano integrazioni non riuscite. Inserire in area di attesa le richieste tramite Eventi piattaforma quando i sistemi esterni sono inattivi anziché bloccare le operazioni degli utenti. Ciò isola gli errori del sistema esterno dalle funzionalità rivolte agli utenti. #### Monitoraggio dello stato della piattaforma Monitorare lo stato della piattaforma Salesforce utilizzando [Trust.salesforce.com](http://trust.salesforce.com) e le API di stato specifiche dell'istanza. Abbonarsi alle notifiche sullo stato dell'istanza per ricevere avvisi su incidenti, finestre di manutenzione e impatti sulle prestazioni. I segnali di integrità della piattaforma consentono una risposta proattiva anziché la risoluzione reattiva dei problemi. Progettare soluzioni che rispondano allo stato di integrità della piattaforma. Quando le prestazioni della piattaforma peggiorano, ridurre il carico di elaborazione batch non critico. Rinviare i processi in background durante le finestre di manutenzione utilizzando il monitoraggio pianificato dei processi. Disabilitare le integrazioni non essenziali per proteggere le operazioni critiche rivolte agli utenti durante gli incidenti. Questa riduzione dinamica del carico mantiene l'affidabilità per le capacità critiche sotto stress. Utilizzare Scale Center per identificare transazioni e operazioni di lunga durata che consumano risorse sproporzionate della piattaforma. Scale Center offre visibilità a livello di transazione, consentendo agli architetti di rilevare i rischi di affidabilità prima che diventino incidenti indirizzati agli utenti. L'esame settimanale del Centro di scala rivela schemi che richiedono una bonifica architettonica. #### Rilevamento errori Implementare il rilevamento dei guasti a più livelli per individuare i problemi prima che si verifichino interruzioni complete. Il rilevamento a livelli offre una difesa approfondita contro errori non rilevati. | Livello di rilevamento | Fonte segnale | Che cosa cattura | | :---- | :---- | :---- | | Errori della piattaforma | [Trust.salesforce.com](http://trust.salesforce.com), API Stato | Incidenti infrastrutturali, manutenzione | | Errori di integrazione | Monitoraggio del timeout, tracciamento della percentuale di errore | Problemi di sistema esterno, problemi di rete | | Errori di applicazione | Registrazione delle eccezioni, percentuali di successo delle transazioni | Difetti del codice, errori di configurazione | | Degrado delle prestazioni | Monitoraggio percentile latenza | Rallentamenti prima di errori completi | | Avvisi sulla capacità | Avvisi di Proactive Monitoring | Si avvicinano i limiti del governor, esaurimento API | Progettare soglie di avviso che bilanciano il rilevamento precoce con i falsi positivi. Avvisa quando i tassi di errore superano le soglie o si verifica un deterioramento prolungato, non in caso di errori isolati. Gli errori singoli sono normali nei sistemi distribuiti. Gli schemi di errore indicano problemi di affidabilità che richiedono attenzione. ### Scalabilità e pianificazione della capacità #### Limiti del governor come vincoli architettonici I limiti del governor Salesforce limitano il consumo di risorse di ogni tenant nella piattaforma multitenant in modo che nessun tenant possa peggiorare le prestazioni per gli altri. Queste non sono restrizioni arbitrarie; sono confini architettonici che modellano la progettazione delle soluzioni. Prima di progettare un'architettura affidabile, è importante conoscere i limiti del governor. Le soluzioni che si avvicinano regolarmente ai limiti del governor sotto carico normale probabilmente falliranno sotto stress. Limiti critici del governor che influiscono sulle decisioni architettoniche: | Risorsa | Limite sincrono | Limite asincrono | Impatto architettonico | | :---- | :---- | :---- | :---- | | Query SOQL | 100 per transazione | 200 per transazione | Consolidamento delle query, query di relazione | | Istruzioni DML | 150 per transazione | 150 per transazione | DML in blocco, operazioni di raccolta | | Dimensioni heap | Sincrona da 6 MB | 12 MB asincroni | Suddivisione dei dati, schemi di streaming | | Tempo CPU | 10.000 ms sincroni | 60.000 ms asincroni | Efficienza dell'algoritmo, scaricamento asincrono | | Timeout di chiamata | 120 secondi in totale | 120 secondi in totale | Timeout del budget tra le chiamate | | Chiamate API (24 ore) | Varia in base alla versione | N/D | Integrazione batching, caching | Progettare transazioni che vengano completate entro i limiti previsti, anche sotto carico di punta. Creare un margine puntando al 70% dei limiti del governor come tetto operativo in condizioni normali, riservando il 30% a picchi imprevisti. Questo buffer consente aumenti temporanei del carico, in genere senza superare i limiti massimi. #### Schemi di bulkification La creazione in blocco è lo schema di scalabilità di base per Salesforce. Elaborare più record in una singola transazione anziché in singole operazioni record. La messa in blocco riduce il consumo limite del governor aumentando la produttività. Ogni architetto Salesforce deve padroneggiare gli schemi di bulking, poiché sono alla base di tutte le soluzioni scalabili. Progettare tutti i trigger Apex, le classi batch e le integrazioni per elaborare le raccolte di record in modo efficiente. Raccogliere prima gli identificatori dei record, quindi elaborare tutti i record con istruzioni DML e query singole. Utilizzare mappe e insiemi per ricerche efficienti anziché loop nidificati con query singole. L'elaborazione basata sulle raccolte migliora l'efficienza in ordine di grandezza rispetto agli approcci record per record. L'automazione attivata da record deve gestire 200 record per chiamata trigger, poiché la piattaforma elabora l'esecuzione dei trigger in batch di un massimo di 200 record. Le operazioni di Lightning Data Service vengono eseguite automaticamente in batch, ma i componenti personalizzati devono implementare schemi in blocco in modo esplicito quando eseguono operazioni DML. #### Elaborazione asincrona per la scala L'elaborazione asincrona distribuisce il lavoro nel tempo anziché tentare il completamento immediato entro i limiti del governor di una singola transazione. Utilizzare schemi asincroni quando le operazioni elaborano grandi volumi di dati che superano i limiti del governor sincrono, dipendono da sistemi esterni con tempi di risposta variabili, possono tollerare un completamento ritardato o richiedere un tempo di esecuzione prolungato oltre i limiti della CPU sincrona. Funzionalità asincrone di Salesforce e loro adattamento all'architettura: - **Batch Apex:** Elaborare grandi volumi di record in blocchi di un massimo di 2.000 record per metodo di esecuzione. Batch fornisce limiti governor dedicati per blocco e isolamento da errori: un blocco non riuscito non impedisce il completamento di altri blocchi. Ciò consente un successo parziale e un tentativo mirato. Implementare una logica di tentativo personalizzata per gli errori temporanei monitorando gli intervalli di blocchi non riusciti nell'oggetto AsyncApexJob e rimettendo in area di attesa i processi batch mirati. Utilizzare batch per le migrazioni dei dati, gli aggiornamenti in blocco pianificati e l'elaborazione dati su larga scala. Sono presenti un massimo di cinque processi batch in esecuzione o in attesa di esecuzione simultanea per organizzazione. Ulteriori processi vengono inseriti nell'area di attesa Flex Apex (fino a 100 processi con stato In attesa) ed eseguiti automaticamente quando si aprono delle finestre. - **Apex in area di attesa:** Eseguire processi asincroni con la funzionalità di concatenazione per abilitare flussi di lavoro a più fasi e parametri di oggetti complessi. Queueable Apex condivide il limite DailyAsyncApexExecutions di tutta l'organizzazione di 250.000 esecuzioni ogni 24 ore con tutti gli altri Apex asincroni (Batch, Future e Scheduled Apex) anziché avere un'allocazione specifica Queueable dedicata. Utilizzare Queuable Apex per l'orchestrazione a più fasi e i flussi di lavoro di integrazione che richiedono un'elaborazione sequenziale con un monitoraggio migliore rispetto ai metodi @future. - **Eventi piattaforma:** Gli eventi piattaforma vengono utilizzati in un'architettura di eventi pubblicazione-abbonamento che separa i publisher dagli abbonati. Gli eventi vengono riprodotti da un periodo di conservazione di 72 ore (3 giorni). La conservazione prolungata oltre le 72 ore è disponibile come componente aggiuntivo a pagamento: verificare i [limiti massimi](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_event_limits.htm) correnti e lo stato GA nella documentazione più recente degli eventi Salesforce Platform prima di impegnarsi per gli obblighi degli accordi sul livello di servizio che dipendono dalla riproduzione estesa. Utilizzare Eventi piattaforma per l'automazione basata sugli eventi, l'integrazione tra sistemi e lo streaming di dati in tempo reale. Gli eventi piattaforma offrono confini asincroni naturali tra le fasi della transazione. - **Apex pianificato:** Eseguire processi con una pianificazione fissa utilizzando espressioni CRON tramite System.schedule(). L'esecuzione di un processo può essere pianificata al massimo una volta all'ora: i campi CRON secondi e minuti devono utilizzare valori fissi, non intervalli. Rimanere entro il limite massimo di 100 processi Apex pianificati per organizzazione consolidando operazioni simili in singole classi pianificabili. #### Partizionamento e inserimento in hard disk dei dati Quando i volumi di dati superano i limiti pratici di elaborazione anche con schemi di in blocco e asincroni, suddividere i dati attraverso confini logici per consentire l'elaborazione parallela. Il partizionamento dei dati converte le operazioni sequenziali di grandi dimensioni in operazioni parallele più piccole che vengono completate più rapidamente e rimangono entro i limiti del governor. - **Partizionamento basato sulla data:** Elaborare i dati in finestre temporali che includono le transazioni di questo mese o i casi dell'ultimo trimestre. Archiviare i dati storici in Big Object o in memoria esterna per mantenere gestibile l'insieme di lavoro. La maggior parte delle query transazionali si concentra sui dati recenti rendendo il partizionamento basato sul tempo naturalmente efficiente. - **Partizionamento del tipo di record:** Elaborare diversi tipi di record in modo indipendente, inclusi i casi Partner e i casi Cliente o gli account Enterprise e gli account PMI. Processi batch separati per tipo abilitano la parallelizzazione. Il tipo di record è spesso correlato a processi aziendali distinti che giustificano l'elaborazione indipendente. - **Partizionamento basato sul titolare:** Distribuire l'elaborazione in base al titolare del record, ad esempio elaborando le opportunità di ogni regione di vendita in modo indipendente. Il partizionamento basato sul titolare è particolarmente efficace se combinato con un modello di condivisione, poiché la sicurezza viene applicata tramite meccanismi esistenti. Il partizionamento basato sul titolare consente la distribuzione geografica del carico di elaborazione. #### Pianificazione della capacità Proiettare i requisiti di capacità futuri in base alla crescita aziendale anziché reagire per limitare l'esaurimento. La pianificazione proattiva della capacità evita incidenti di affidabilità causati dall'esaurimento delle risorse della piattaforma. - **Licenze utente** \- crescita del personale che guida l'allocazione delle chiamate API e i diritti di archiviazione per utente - **Memoria dati**: volumi delle transazioni e policy di conservazione che determinano il consumo di memoria (prevedere una crescita annuale minima del 10-20%) - **Chiamate API** \- conteggio integrazione e frequenza che determinano l'allocazione API su 24 ore (ogni nuovo schema di integrazione aggiunge un consumo ricorrente) - **Capacità di elaborazione**: conteggio e complessità dei processi batch che determinano aree di attesa di elaborazione asincrona e limiti di esecuzione simultanea Utilizzare Proactive Monitoring per valutare continuamente l'utilizzo della capacità dell'organizzazione. Proactive Monitoring mette in evidenza i rischi di capacità, tra cui l'utilizzo dell'API che si avvicina ai picchi di limite delle richieste, l'archiviazione che si avvicina ai limiti e la profondità dell'area di attesa dei processi batch che cresce oltre i livelli sostenibili. L'esame settimanale della capacità consente il lead time di procurement per licenze aggiuntive o limiti prima che si verifichi l'impatto sul business. #### Test di carico Convalidare i presupposti di scalabilità tramite test di carico prima della distribuzione in produzione. I test di carico rilevano problemi di limiti governor, colli di bottiglia di integrazione e vincoli di capacità invisibili nei test di sviluppo a basso volume. Eseguire il test con volumi di dati e concomitanza su scala di produzione per convalidare l'affidabilità in condizioni realistiche. - **Test del volume di dati:** Compilare i volumi di dati su scala di produzione nell'ambiente Sandbox Copia completa per convalidare le prestazioni delle query con la distorsione dei dati, la profondità delle relazioni e i conteggi dei record reali. Testare con oltre 10 milioni di record quando la produzione raggiungerà quella scala. Il comportamento dell'ottimizzazione delle query cambia drasticamente all'aumentare del volume dei dati, il che può causare risultati fuorvianti nei Test di scalabilità ridotta. - **Test utente simultaneo:** Simulare il caricamento simultaneo di picco degli utenti per convalidare la produttività delle transazioni e la contesa. Utilizzare i test di scala disponibili per le organizzazioni qualificate per simulare i carichi di lavoro di produzione negli ambienti Sandbox prima della distribuzione. L'esecuzione simultanea rivela problemi di blocco invisibili nei test per utente singolo. - **Test di carico API:** Generare volumi API di picco per convalidare la scalabilità dell'integrazione, la gestione dei limiti di traffico e il comportamento degli interruttori sotto carico sostenuto. I test di caricamento API rivelano se la logica di tentativo e la gestione degli errori funzionano correttamente in condizioni di stress. - **Test scala:** Test di scalabilità è un prodotto Salesforce utilizzato per simulare i carichi di lavoro di produzione con ambienti Sandbox Copia completa scalati in base alla capacità di produzione. Test di scalabilità eseguiti con i Sandbox Copia completa in Hyperforce. L'istanza di produzione non deve necessariamente essere su Hyperforce per utilizzarla. I piani di test vengono creati nell'organizzazione di produzione, mentre i test vengono eseguiti nel Sandbox. Utilizzare Test di scalabilità per convalidare il comportamento di headroom limite governor, throughput di elaborazione asincrona e risposta di integrazione in condizioni di carico di picco prima delle distribuzioni principali. ### Tolleranza e resilienza ai guasti #### Schemi di degradazione graziosi La degradazione graduale mantiene la funzionalità di base quando i componenti non critici si guastano. Progettare sistemi che diano priorità ai flussi utente critici rispetto alle funzioni di supporto durante gli errori. Non tutte le funzionalità hanno la stessa importanza per il business e le architetture dovrebbero riflettere queste priorità. Definire la gerarchia delle criticità delle funzioni: | Livello | Descrizione | Comportamento di degradazione | Esempio | | :---- | :---- | :---- | :---- | | Critico | Reddito o conformità | Mai degradato, ridondanza completa | Elaborazione dei pagamenti, registrazione dei controlli | | Importante | Flussi di lavoro degli utenti principali | Degradato solo durante gli incidenti gravi | Creazione di casi, aggiornamenti opportunità | | Supporto | Esperienza ottimizzata | Disabilitato durante qualsiasi errore di integrazione | Consigli, arricchimento | | Facoltativo | Funzionalità piacevoli da avere | Disabilitato in modo proattivo durante carichi elevati | Widget Analytics, feed sociali | Questa gerarchia consente agli architetti di progettare policy di degrado che mantengono la continuità operativa anche in caso di errori parziali del sistema. Gli utenti preferiscono una funzionalità ridotta a una completa indisponibilità. #### Schema dell'interruttore Lo schema dell'interruttore evita errori a catena quando le integrazioni non sono disponibili. Anziché accumulare timeout che consumano tempo di transazione e limiti del governor, rilevare gli schemi di errore e interrompere le chiamate ai sistemi in errore. Gli interruttori automatici forniscono un guasto rapido anziché lento. Stati interruttore: - **Chiuso** \- funzionamento normale, le richieste vengono inviate al sistema esterno come progettato - **Aperte** \- soglia di errore superata, richieste non riuscite immediatamente senza tentare chiamate esterne, risparmio di risorse - **Mezzo aperto** \- periodo di test di ripristino, richieste limitate sondare i sistemi esterni per rilevare il ripristino prima di chiudere completamente il circuito Implementare gli interruttori utilizzando la cache piattaforma per memorizzare lo stato dei circuiti accessibile in tutte le transazioni. Utilizzare Eventi piattaforma per trasmettere le modifiche dello stato in tutta l'organizzazione. La logica degli interruttori automatici controlla lo stato prima di tentare le chiamate esterne, evitando gli sprechi dei limiti delle chiamate sui sistemi con errori noti. #### Riprovare la logica e il backoff esponenziale Gli errori temporanei sono normali nei sistemi distribuiti. Le interruzioni della rete, l'indisponibilità temporanea del servizio e le risposte ai limiti di traffico spesso si risolvono in pochi secondi. Implementare una logica di tentativo che ripeta le operazioni non riuscite dopo ritardi progressivi anziché fallire immediatamente. Il backoff esponenziale impedisce che si ripetano i temporali che sovraccaricano i sistemi di ripristino. Un primo tentativo può verificarsi dopo 1 secondo, un secondo dopo 2 secondi, un terzo dopo 4 secondi e un quarto dopo 8 secondi. Limitare il ritardo massimo a 30-60 secondi indipendentemente dalla crescita esponenziale. Questo schema di backoff offre ai sistemi in errore il tempo di ripristinare, limitando la durata totale dei nuovi tentativi. Abbinare la strategia di tentativo al tipo di errore. - **Timeout di rete:** Riprovare con un breve backoff (l'operazione potrebbe non aver raggiunto il server) - **Errori limite di traffico (429):** Riprova dopo il valore di intestazione Riprova dopo o dopo il tempo di reimpostazione del limite di traffico - **Errori del server (5xx):** Riprovare con backoff esponenziale, poiché il server potrebbe essere temporaneamente sovraccaricato - **Errori del client (4xx tranne 429):** Non riprovare; correggere la richiesta poiché l'errore indica un input non valido - **Errori del limite del governor:** Non riprovare nella stessa transazione; accodarsi nuovamente come operazione asincrona con limiti dedicati, ad esempio pubblicando un evento di errore che un abbonato asincrono rielabora con backoff entro limiti di transazione aggiornati #### Strategie di fallback Le strategie di fallback definiscono approcci alternativi quando i metodi principali non riescono, abilitando il funzionamento continuo in condizioni degradate. - **Fonte di dati alternativa:** Recuperare i dati dalla sessione cache della piattaforma o da una partizione dell'organizzazione quando l'API in tempo reale non è disponibile. Precompilare la cache durante le operazioni riuscite. La cache fornisce dati obsoleti ma disponibili, il che è meglio di un errore completo per molti casi d'uso. - **Comportamento predefinito:** Applicare le regole aziendali standard quando un servizio di personalizzazione o arricchimento non è disponibile. Elaborare con valori predefiniti e segnalare l'arricchimento quando il servizio viene ripristinato. Il comportamento predefinito mantiene la produttività a costo di una precisione ridotta. - **Processo manuale:** Abilitare il completamento manuale dell'operazione quando l'automazione non riesce. Fornire un'interfaccia di amministrazione per completare le transazioni bloccate. Il fallback manuale evita la perdita di dati e mantiene la continuità operativa quando l'automazione è compromessa. - **Area di attesa per riprovare:** Memorizzazione delle operazioni negli eventi piattaforma o negli oggetti area di attesa personalizzati per l'elaborazione quando un sistema esterno viene ripristinato. La riproduzione degli eventi piattaforma con conservazione standard di 72 ore consente il ripristino dell'abbonato dopo errori temporanei, senza perdita di dati. #### Configurazione timeout Configurare i timeout appropriati per tutte le chiamate di integrazione. Salesforce impone un tempo di chiamata totale massimo di 120 secondi per transazione. Budget questa volta per tutte le chiamate all'interno di una singola transazione per evitare di esaurire il tempo di transazione sulle connessioni sospese. Considerazioni sulla progettazione del timeout: - **Chiamate sincrone indirizzate all'utente:** Utilizzare 5-10 secondi al massimo per mantenere l'interfaccia utente reattiva poiché gli utenti tendono a non attendere più a lungo - **Chiamate asincrone in background:** Utilizzare da 30 a 60 secondi per adattare le prestazioni esterne variabili senza che l'utente debba attendere - **Callout di elaborazione batch:** Utilizzare **t**utti i 120 secondi disponibili quando nessun utente è in attesa di una risposta - **Più chiamate per transazione:** Tempo totale del budget per tutte le chiamate, ad esempio tre chiamate a 10 secondi ciascuna che consumano 30 secondi del budget di 120 secondi. Timeout più brevi non vengono eseguiti più rapidamente, consentendo alle strategie di fallback di interagire più rapidamente. Timeout più lunghi aumentano la percentuale di successo dei sistemi esterni lenti ma funzionali. Le considerazioni sul bilanciamento si basano sul fatto che l'utente sia in attesa di una risposta e sulla disponibilità di strategie di fallback. #### Architettura di gestione degli errori Progettare una gestione completa degli errori per trasformare gli errori da arresti anomali in degrado gestito: - **Fail fast:** Convalidare gli input e le precondizioni ai punti di ingresso. Controllare il consumo limite del governor prima di eseguire operazioni costose. Rilevare immediatamente gli errori anziché propagare lo stato non valido attraverso più livelli di elaborazione. Il rilevamento precoce riduce il raggio di esplosione e semplifica il debug. - **Fallire con grazia:** Mantenere le funzionalità dell'utente anche quando le operazioni non riescono parzialmente. Se 3 dei 200 record in batch non superano la convalida, elaborare i 197 record riusciti e segnalare i 3 errori anziché non superare l'intero batch. Per le operazioni batch è meglio un successo parziale che un errore totale. - **Informativo non corretto:** Registrare gli errori con ID transazione, contesto utente, parametri di input e traccia dello stack. Un contesto di errore insufficiente è l'ostacolo principale alla risoluzione rapida degli incidenti. Ogni registro errori dovrebbe consentire al risponditore di capire che cosa non è riuscito, perché e come riprodursi. - **Sicurezza degli errori:** Assicurarsi che gli errori non compromettano l'integrità o la sicurezza dei dati. Ritirare le transazioni parziali anziché lasciare i dati in uno stato incoerente. Non esporre mai i dettagli degli errori interni agli utenti finali, poiché le tracce dello stack rivelano dettagli di implementazione utili per gli aggressori. ### Ripristino di emergenza e continuità operativa #### Obiettivo tempo di recupero (RTO) Obiettivo tempo di ripristino definisce il tempo di inattività massimo accettabile dopo il disastro. L'RTO determina le decisioni architetturali relative all'automazione del failover, alla frequenza di backup e agli investimenti nei test di ripristino. Capacità aziendali diverse giustificano investimenti in RTO diversi. Poiché l'RTO è il tempo di inattività che gli utenti sperimentano direttamente, un obiettivo mancato si traduce in interruzioni prolungate e in un'erosione del Customer Trust. L'RTO varia in base alla capacità aziendale: | Tipo di capacità | RTO tipico | Implicazioni architettoniche | | :---- | :---- | :---- | | Operazioni critiche per il reddito | Minuti | Failover automatico, standby a caldo | | Servizi rivolti ai clienti | 1–4 ore | Warm standby, ripristino con script | | Strumenti aziendali interni | 4-24 ore | Cold standby, ripristino manuale | | Rapporti storici | Giorni | Ripristino da backup su richiesta | Definire l'RTO per funzionalità prima di progettare l'architettura di ripristino di emergenza. RTO definisce la selezione della tecnologia, l'investimento nell'automazione e la cadenza dei test. Obiettivi RTO più aggressivi richiedono maggiori investimenti nell'automazione e nella ridondanza. #### Obiettivo punto di ripristino (RPO) Obiettivo punto di ripristino definisce la finestra di perdita di dati massima accettabile misurata nel tempo. RPO determina la frequenza di backup, la strategia di replica e gli schemi di sincronizzazione. Un RPO più rigoroso richiede una replica dei dati più frequente, aumentando la complessità e i costi. Poiché RPO è la perdita di dati assorbita dall'azienda, un obiettivo mancato può significare transazioni perse e lacune non recuperabili nei record. | Tipo di dati | RPO tipico | Strategia di replica | | :---- | :---- | :---- | | Transazioni finanziarie | Quasi zero (secondi) | Replica asincrona basata sugli eventi a ogni conferma | | Record cliente | Vicino allo zero (minuti) | Modifica acquisizione dati, replica asincrona | | Dati di Analytics | Ore | Sincronizzazione batch pianificata | | Stato flusso di lavoro temporaneo | Giorni | Nessuna replica necessaria | Bilanciare i requisiti RPO con i costi e la complessità. RPO quasi zero richiede una replica continua dei dati con investimenti significativi nell'infrastruttura. Il backup giornaliero offre un servizio di prenotazione su 24 ore con una complessità minima. La maggior parte delle organizzazioni può tollerare alcune perdite di dati per i dati non finanziari. #### Strategie di backup La ridondanza dell'infrastruttura piattaforma protegge da errori dell'infrastruttura, ma replica i risultati di errori degli utenti, distribuzioni non corrette e difetti di integrazione, che causano la maggior parte delle perdite di dati. I backup esistono per ripristinare questi errori a livello di applicazione, non per compensare l'affidabilità della piattaforma. Implementare strategie di backup che coprono dati, metadati e file poiché ognuna richiede approcci di backup diversi: - **Backup dei dati:** Implementare una strategia di backup completa che affronti sia i dati che i metadati. Esportare i dati degli oggetti critici utilizzando il servizio di esportazione dati nativo: ogni **7 giorni** per le versioni Enterprise Edition, Performance Edition e Unlimited Edition; ogni **29 giorni** per le versioni Professional Edition e inferiori. I file di esportazione sono disponibili per **48 ore dopo l'invio dell'email di notifica, esclusi i fine settimana, prima dell'eliminazione automatica.** Impostare un processo di download automatico in modo che i file non vadano persi definitivamente. Utilizzare l'API dei metadati e Salesforce CLI (recupero progetto Sf) per controllare la configurazione dell'organizzazione, il codice personalizzato e l'automazione dichiarativa in un sistema di controllo sorgente come Git. Considerare il backup dei metadati come parte della pipeline standard di CD/IC. Integrare il backup dei dati con servizi di backup e ripristino dedicati come **Own** for point-in-time restore, ripristino granulare a livello di record e conservazione oltre la cadenza di esportazione nativa. L'esportazione nativa dei dati non supporta il ripristino puntuale e sono necessari strumenti di terze parti se l'RTO/RPO richiede finestre di ripristino granulari. Testare regolarmente le procedure di ripristino; un backup che non è mai stato ripristinato è un presupposto non testato. - **Backup dei metadati:** Controllo della versione di tutti i metadati utilizzando il formato di origine Salesforce DX negli archivi Git. Il controllo della versione dei metadati consente il ripristino rapido della configurazione dopo il danneggiamento o le modifiche non intenzionali. Ogni distribuzione deve essere riproducibile dal controllo sorgente. I metadati in Git forniscono il ripristino nel tempo per la configurazione. - **Backup dei file:** Esportare record, allegati e documenti ContentVersion in un'archiviazione esterna. Salesforce funziona meglio per i dati attivi, non per l'archiviazione di file a lungo termine: esportare i file in archivi esterni per la conservazione normativa. Implementare l'esportazione automatica dei file per i requisiti di conservazione normativi che superano le funzionalità della piattaforma. - **Convalida:** Ripristinare periodicamente i backup nelle organizzazioni vuote o nei Sandbox per sviluppatori per convalidare sia le procedure che l'integrità del backup. I backup non testati spesso non riescono quando necessario a causa di un ambito di backup incompleto o archivi danneggiati. Pianificare la convalida trimestrale del ripristino per individuare i problemi prima che si verifichino i disastri. Monitorare la freschezza del backup oltre a ripristinare la convalida. Avvisare quando il backup riuscito più recente è precedente alla cadenza prevista, ad esempio quando un'esportazione settimanale non viene completata da più di 8 giorni. Con questa convalida, un processo di backup non riuscito in modo silenzioso viene visualizzato immediatamente anziché al prossimo esercizio. #### Strategie di replica dei dati Progettare una replica adeguata ai requisiti di RPO e multi-organizzazione: - **Cambia acquisizione dati (CDC):** Abbonarsi agli eventi di modifica per gli oggetti tracciati. CDC fornisce eventi di creazione, aggiornamento, eliminazione e annullamento dell'eliminazione con valori di campo modificati. Offre una replica quasi in tempo reale con un impegno di sviluppo minimo per gli oggetti supportati, inclusi standard e personalizzati. Soggetto ad allocazione giornaliera della consegna in base alla versione. - **Eventi piattaforma:** Architettura degli eventi personalizzata per replicare eventi aziendali e modifiche di stato. Più flessibile del CDC che supporta payload personalizzati e strutture di eventi complesse ma richiede una logica di pubblicazione esplicita nei trigger o nei processi. Lo standard della finestra di replay di 72 ore consente il ripristino da errori temporanei dell'abbonato. - **Replica API pianificata:** La replica API di pianificazione è l'estrazione in batch tramite API in blocco 2.0 con una pianificazione fissa. È l'implementazione più semplice con un RPO uguale alla frequenza di estrazione. La replica API pianificata è adatta per i dati non critici in cui l'esecuzione quasi in tempo reale non è necessaria, ad esempio con dati di riferimento o analisi storiche. - **Replica orchestrata da MuleSoft:** Per le topologie di replica multi-sistema complesse, MuleSoft Anypoint Platform fornisce orchestrazione, trasformazione e monitoraggio. Il suo utilizzo è appropriato per la replica in Salesforce e in più sistemi esterni, che richiede una logica di instradamento e trasformazione sofisticata. #### Test di ripristino di emergenza Testare il ripristino di emergenza con esercitazioni pianificate che convalidano persone, processi e tecnologia insieme: - **Esercizi da tavolo:** Il team esamina gli scenari di calamità, discutendo i ruoli e i punti decisionali senza un failover effettivo. Questa attività è a basso costo e rivela lacune procedurali e interruzioni delle comunicazioni. Eseguire regolarmente esercizi da tavolo per mantenere la preparazione del team al cambiamento del personale. - **Failover parziale:** \- Testare procedure di ripristino specifiche come il ripristino dei metadati dal controllo sorgente, il ripristino dei dati dal servizio di backup o l'aggiornamento Sandbox. Questo convalida le procedure tecniche con un impatto limitato sull'azienda. Eseguire regolarmente la rotazione delle procedure testate per coprire tutte le funzionalità di ripristino ogni anno. - **Esercizio di failover completo:** Il failover completo è il failover completo nell'ambiente di ripristino di emergenza con riduzione del traffico di produzione. Fornisce la massima confidenza ma richiede coordinamento aziendale e comunicazione degli utenti. Eseguire questo esercizio ogni anno per i sistemi critici. L'esercizio di failover completo convalida l'intera funzionalità di ripristino, incluse le procedure di cutover e la comunicazione con l'utente. Documentare le lezioni apprese dopo ogni esercitazione. Aggiornare i runbook in base ai risultati. Le funzionalità di ripristino possono peggiorare man mano che i team cambiano e le soluzioni evolvono. Considerare la documentazione di DR come artefatti viventi che richiedono una manutenzione regolare anziché come prodotti consegnati una tantum. #### Pianificazione della continuità operativa La continuità operativa si estende oltre il ripristino tecnico per includere persone, processi e dipendenze dei fornitori: - **Disponibilità del team:** Documentare le procedure di inoltro al livello superiore e il personale di backup per i ruoli critici. Assicurarsi che non esista un singolo punto di errore in Knowledge operativo. I soccorritori principali potrebbero non essere disponibili durante i disastri, il che rende il personale di backup fondamentale. - **Procedure di comunicazione:** Definire le modalità di comunicazione degli incidenti a utenti, clienti e dirigenti. Stabilire canali di comunicazione che funzionino quando gli strumenti principali (ad esempio, pagine di stato esterne o sistemi di notifica SMS), incluso Salesforce stesso, non sono disponibili. - **Dipendenze del fornitore:** Mappare le dipendenze dei fornitori esterni critiche per il funzionamento della soluzione. Documentare i percorsi di inoltro al livello superiore e gli SLA contrattuali per ogni fornitore critico, inclusi Salesforce, i partner integrazione e i fornitori di pacchetti ISV. È possibile capire, ad esempio, quali fornitori offrono assistenza 24 ore su 24, 7 giorni su 7, e quali solo in orario di ufficio influiscono sui tempi di ripristino. - **Obblighi normativi:** Identificare i requisiti di notifica attivati da interruzioni estese. I servizi finanziari, l'assistenza sanitaria e i contratti governativi spesso richiedono la notifica degli incidenti entro intervalli di tempo specifici. La non conformità può creare rischi normativi e legali, entrambi con un impatto disastroso. ### Monitoraggio e osservabilità per l'affidabilità #### Modellazione della salute Definire un modello di salute che aggrega più segnali nello stato di integrità generale del sistema. I modelli sanitari mostrano rapidamente lo stato operativo, senza richiedere l'analisi di metriche dettagliate. Ad esempio: | Dimensione salute | Segnali | Verde | Giallo | Rosso | | :---- | :---- | :---- | :---- | :---- | | Assistenza sanitaria | Percentuale di successo della transazione | >99.5% | 98–99.5% | <98% | | Salute integrazione | Disponibilità del sistema esterno | Tutti rispondono | Risposta degradata | Interruttore aperto | | Salute dei dati | Sincronizzazione del successo del processo, qualità dei dati | Tutto corrente | Ritardo rispetto alla pianificazione | Non riuscito o obsoleto | | Salute della capacità | Limita consumo del governor | <70% | 70–85% | >85% | Progettare cruscotti digitali di salute che mostrano immediatamente lo stato operativo.. Lo stato di salute guida la risposta operativa, incluse le normali operazioni in stato verde, il monitoraggio intensificativo in stato giallo e la risposta attiva agli incidenti in stato rosso. #### Monitoraggio piattaforma I segnali di stato della piattaforma (precedentemente descritti in Monitoraggio dello stato della piattaforma) indicano quando l'infrastruttura Salesforce è degradata, ma non le prestazioni della propria soluzione. Aumentare questi segnali con l'osservabilità specifica della soluzione: - **Monitoraggio evento:** Monitoraggio evento include registri dettagliati che acquisiscono chiamate API, visualizzazioni pagina, esportazioni di rapporti, attività di accesso ed esecuzione Apex. Gli oggetti EventLogFile consegnano registri con frequenza 24 ore (giornaliera) o 1 ora: la consegna oraria richiede il componente aggiuntivo Monitoraggio evento o Salesforce Shield. La conservazione è configurabile fino a 365 giorni tramite Imposta, ma la conservazione estesa richiede Salesforce Shield o il componente aggiuntivo Monitoraggio evento. Senza un componente aggiuntivo, i file di registro vengono conservati per 1 giorno. Instradare gli eventi a un sistema SIEM (Security Information and Event Management) esterno o a una piattaforma di aggregazione dei registri per la correlazione, l'avviso e la conservazione oltre i limiti nativi. Utilizzare Monitoraggio evento per rilevare schemi di consumo API anomali, identificare processi Apex in fuga e controllare l'accesso ai dati in ambienti regolamentati. - **Centro scala:** Scale Center offre una visibilità a livello di transazione sulle operazioni di lunga durata, sulle dispute per il blocco delle righe e sulle transazioni che richiedono un uso intensivo delle risorse. Scale Center consente agli architetti di identificare i rischi di affidabilità derivanti da schemi di transazione specifici prima che causino incidenti indirizzati agli utenti. Le revisioni settimanali possono rivelare opportunità di ottimizzazione. - **Proactive Monitoring:** Proactive Monitoring consente una valutazione continua dello stato dell'organizzazione, evidenziando i rischi di prestazioni e scalabilità. Proactive Monitoring fornisce avvisi sui picchi di limite delle richieste API, sugli errori di esecuzione Apex simultanei, sui problemi di limite delle righe SOQL e sulle tendenze del consumo di memoria. È disponibile per i clienti con diritto **Firma riuscita** (in precedenza Supporto firma), non è una funzione self-service inclusa nelle versioni standard. #### Monitoraggio delle prestazioni delle applicazioni Monitorare le prestazioni delle applicazioni dal punto di vista dell'utente anziché dal punto di vista dell'infrastruttura: - **Monitoraggio utente reale (RUM):** Misurare l'esperienza utente effettiva tramite strumenti di analisi o personalizzati di Experience Cloud. RUM acquisisce la latenza reale, che riflette le condizioni effettive della rete, le prestazioni del dispositivo e la distribuzione geografica. Il monitoraggio sintetico non può replicare questa variabilità. - **Monitoraggio sintetico:** Eseguire transazioni automatiche periodicamente da più posizioni per convalidare la disponibilità e le prestazioni. Il monitoraggio sintetico rileva i problemi prima che gli utenti li segnalino. Implementare il monitoraggio sintetico utilizzando Apex pianificato, eseguendo operazioni critiche e creando rapporti sui risultati con Eventi piattaforma. - **Tracciamento delle transazioni:** Strumentazione di operazioni complesse in più fasi per acquisire le tempistiche per ogni fase. Quindi, identificare la fase del flusso di lavoro in cinque fasi che introduce la latenza. Non considerare l'intero flusso come scatola nera. La tempistica a livello di fase rivela le opportunità di ottimizzazione invisibili nelle metriche aggregate. #### Monitoraggio dello stato dell'integrazione Monitorare tutte le integrazioni esterne utilizzando percentuali di errore, percentili di latenza e produttività. Gli errori di integrazione sono una delle principali cause di incidenti di affidabilità: - **Percentuale di errori**: percentuale di chiamate che restituiscono errori (target: <1% per un'integrazione sana) - **Latenza**: il tempo di risposta misurato a p50, p95, p99 (impostare SLO per integrazione in base al budget di timeout) - **Timeout rate**: percentuale di superamento del timeout configurato (target: <0,1%) - **Stato interruttore** \- Lo stato aperto indica un guasto prolungato che richiede attenzione immediata - **Profondità dell'area** di attesa: per le integrazioni asincrone, l'area di attesa in crescita indica che l'elaborazione è in ritardo rispetto al tasso di produzione Registrare tutte le chiamate di integrazione con ID richiesta, endpoint, codice di risposta e durata. Questi dati consentono un'analisi rapida delle cause principali quando gli errori di integrazione influiscono sull'affidabilità. I registri di integrazione devono consentire l'aggregazione e l'analisi delle tendenze. #### Proactive Monitoring Progettare avvisi sui problemi prima che gli utenti siano interessati, abilitando risposte proattive: - **Avvisi fruibili:** Ogni avviso ha un'azione di risposta definita e un risponditore assegnato. Gli avvisi senza una risposta chiara creano stanchezza e oscurano i segnali critici. La progettazione degli avvisi deve riguardare chi risponde, cosa controlla e come corregge. - **Urgenza appropriata:** Pagina personale su chiamata per gli errori che interessano gli utenti. Inviare un'email per segnalare un peggioramento delle prestazioni. Includere i problemi in un rapporto giornaliero per acquisire le tendenze. L'urgenza non corrispondente crea stanchezza da eccessivo inoltro al livello superiore o incidenti mancati da sottoinoltro al livello superiore. - **Notifiche ricche di contesto:** Includere la soglia superata, il valore corrente, la tendenza recente e un link a un cruscotto digitale o runbook pertinente. Consentire ai soccorritori di iniziare immediatamente la diagnosi senza raccogliere contesto. Ogni avviso deve includere informazioni sufficienti per il triage senza ulteriori query. - **Soppressione della tempesta:** Quando più sistemi non funzionano contemporaneamente, eliminare gli avvisi ridondanti. Un avviso che indica un errore della piattaforma di integrazione è più fruibile di 50 singoli avvisi di errore di integrazione che oscurano la causa principale. #### Rilevamento anomalia Il rilevamento dell'anomalia identifica schemi insoliti e può indicare problemi emergenti invisibili agli avvisi di soglia statici: - **Anomalie dei volumi**: I volumi delle transazioni significativamente superiori o inferiori agli schemi giornalieri previsti possono indicare processi in fuga o problemi di accesso degli utenti. - **Anomalie del tasso di errore**: I tassi di errore elevati rispetto ai valori di riferimento della stessa ora della scorsa settimana rilevano un deterioramento graduale prima che si verifichi una violazione della soglia. - **Anomalie di latenza**: I tempi di risposta che aumentano su più giorni indicano la saturazione della capacità o la regressione delle prestazioni. - **Anomalie comportamentali**: Schemi di accesso insoliti, picchi di utilizzo API imprevisti e processi batch eseguiti al di fuori delle finestre pianificate possono indicare un uso sospetto. Per i clienti con diritto Signature Success, Proactive Monitoring fornisce il rilevamento delle anomalie a livello di piattaforma senza configurazione aggiuntiva. Integrarlo con il rilevamento delle anomalie specifico dell'applicazione per gli SLI personalizzati esportati in piattaforme di analisi esterne. Utilizzare i segnali di anomalia per guidare l'indagine anziché attivare un inoltro immediato al livello superiore, poiché il rilevamento dell'anomalia ha percentuali di falsi positivi più alte rispetto agli avvisi di soglia. ## Elenco di controllo riepilogo Utilizzare questo elenco di controllo durante le revisioni dell'architettura, prima della distribuzione in produzione e periodicamente per una valutazione continua dell'affidabilità. **Obiettivi di affidabilità e SLO** - Definire SLO per tutti i flussi utente critici prima dell'inizio della progettazione - Stabilire SLI misurabili legati all'esperienza degli utenti, non solo alle metriche dell'infrastruttura - Impostare obiettivi di disponibilità realistici basati sull'analisi dell'impatto aziendale, non su obiettivi arbitrari - Assicurarsi che gli SLO delle soluzioni siano meno rigorosi degli SLA della piattaforma per fornire il budget degli errori - Obiettivi di disponibilità dei documenti e logica nei record decisione architettura **Architettura High Availability** - Ridondanza di progettazione a livello di dati, applicazioni e integrazione - Monitoraggio dello stato della piattaforma tramite Trust.salesforce.com e l'API dello stato dell'istanza - Implementare controlli dello stato delle applicazioni indipendentemente dallo stato della piattaforma - Considerare l'architettura multi-organizzazioni solo quando i requisiti aziendali giustificano chiaramente la complessità - Progettare un failover automatico con runbook testati per schemi multi-organizzazione **Scalabilità e pianificazione della capacità** - Progettare le transazioni completando entro il 70% dei limiti del governor in condizioni di carico normale - Implementare schemi di blocco in tutti i trigger Apex, le classi batch e le integrazioni - Utilizzare l'elaborazione asincrona per le operazioni che superano i limiti sincroni - Inserimento in batch di tutte le integrazioni API anziché effettuare chiamate di singoli record - Eseguire test di carico con volumi di dati su scala di produzione prima della distribuzione - Monitorare l'utilizzo della capacità tramite l'API OrgLimits o Apex personalizzato e avvisare quando il consumo si avvicina al limite operativo del 70% - Requisiti di capacità del progetto basati sulle aspettative di crescita a 12 mesi - Partizionare i dati a volume elevato per data, tipo di record o titolare per abilitare l'elaborazione parallela quando i volumi superano i limiti sequenziali **Tolleranza e resilienza ai guasti** - Progettare un degrado armonioso con livelli di criticità delle funzioni definiti - Implementare gli interruttori automatici per tutte le integrazioni di sistemi esterni - Applicare una logica di tentativo con backoff esponenziale per errori temporanei - Configurare i timeout appropriati al tipo di operazione (5–10 secondi rivolti all'utente, 30–60 secondi asincroni) - Progettare strategie di fallback utilizzando cache piattaforma e schemi basati sull'area di attesa - Implementare la gestione strutturata degli errori con un contesto diagnostico sufficiente **Ripristino di emergenza e continuità operativa** - Definire RTO e RPO per funzionalità aziendale prima della progettazione - Implementare il backup automatico per dati, metadati (controllo sorgente) e file - Convalida trimestralmente le procedure di ripristino del backup in ambienti non di produzione - Monitorare l'aggiornamento del backup e l'avviso quando un backup pianificato è scaduto - Progettare una strategia di replica dei dati corrispondente ai requisiti RPO - Eseguire test di ripristino di emergenza ogni anno (trimestrale da tavolo) - Documentare le procedure di continuità operativa, inclusi i percorsi di inoltro al livello superiore dei fornitori **Monitoraggio e osservabilità** - Definire il modello sanitario aggregando i segnali di servizio, integrazione, dati e capacità - Abbonamento alle notifiche sullo stato della piattaforma per l'istanza di Salesforce - Implementare il monitoraggio degli utenti reali per i flussi Experience Cloud critici - Monitoraggio dello stato dell'integrazione con percentuale di errore, latenza e stato dell'interruttore - Progettare avvisi fruibili con procedure di risposta e titolarità definite - Instradamento dei dati di Monitoraggio evento a piattaforme esterne per la conservazione e l'analisi a lungo termine - Utilizzare Proactive Monitoring and Scale Center per una valutazione continua del rischio di affidabilità - Applicare il rilevamento dell'anomalia per schemi di volume, tasso di errore e latenza per rilevare il degrado che le soglie statiche non rispettano

Condividere i propri commenti sul framework ben progettato.

# Affidabilità - Schemi di ripristino di emergenza
Ulteriori informazioni su [Affidabilità](/docs/architect/it-it/well-architected/guide/reliability.html) ben progettata → [Ripristino e continuità](/docs/architect/it-it/well-architected/guide/reliability.html#disaster-recovery-and-business-continuity) operativa ## Backup e ripristino **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Strategia di backup dei dati | ✅ Esportazioni automatiche settimanali o mensili utilizzando il servizio di esportazione dati o un servizio di backup e ripristino dedicato (ad esempio Own). La frequenza di esportazione corrisponde ai requisiti RPO. Dati di oggetti critici esportati in archivi di oggetti esterni dove necessario. | | Strategia di backup dei metadati | ✅ Tutti i metadati con versione in Git utilizzando il formato di origine Salesforce DX. Modifiche dei metadati distribuite solo dal controllo sorgente. La pipeline CI/CD può ricreare qualsiasi ambiente dal repository. Ripristino punto nel tempo disponibile tramite la cronologia Git. | | Strategia di backup dei file | ✅ ContentVersion record, allegati e documenti esportati in memoria esterna nei tempi previsti. Esportazione automatica dei file per i requisiti normativi di conservazione. Sistema di archiviazione esterno per i file precedenti alle esigenze operative aziendali. | | Convalida del backup | ✅ esercitazioni trimestrali di ripristino in ambienti Sandbox Completi o Developer. Ripristino delle procedure documentate nei runbook con istruzioni dettagliate. Il ripristino del test convalida l'integrità e la completezza del backup prima che si verifichino i disastri. | | Pianificazione dei test di ripristino | ✅ Test trimestrali di ripristino parziale (metadati, oggetti specifici, sottoinsiemi di file). Esercitazione annuale di recupero completo con ripristino completo dell'ambiente. Lezioni apprese documentate e runbook aggiornati dopo ogni test. | | Servizio di backup di terze parti | ✅ Backup automatico con funzionalità di ripristino point-in-time. Contratto sul livello di servizio che definisce RPO/RTO. Verifica automatica giornaliera del completamento del backup. Ridondanza geografica con backup archiviati in più regioni. | | Oggetti e campi personalizzati | ✅ Oggetti personalizzati inclusi nelle esecuzioni pianificate del servizio di esportazione dati, con i valori dei campi formula e riepilogo di roll-up ricalcolati anziché esportati (non esiste un valore memorizzato da estrarre) e i file binari o allegati gestiti tramite un percorso di esportazione separato. Tipi di campi complessi e relazioni di ricerca documentati e testati nella sequenza di ripristino. | | File e allegati | ✅ oggetti ContentDocument e ContentVersion esportati con file binari. Librerie di documenti di cui è stato eseguito il backup, incluse le strutture delle cartelle e le autorizzazioni. I file esportati mantengono la cronologia delle versioni per i tipi di documenti critici. | | Strategia di aggiornamento Sandbox | ✅ Organizzazione di produzione aggiornata al Sandbox Completo trimestralmente per il test del carico e la convalida del ripristino di emergenza. Aggiornamento Sandbox utilizzato come test della procedura di ripristino. Mascheramento dei dati applicato dopo l'aggiornamento per proteggere i dati sensibili negli ambienti di test. | | Monitoraggio e avviso del backup | ✅ Avvisi automatici quando i backup pianificati non riescono o sono in ritardo. Cruscotto digitale che mostra la percentuale di successo dei processi di backup, il tempo di completamento e le tendenze del volume di dati. Inoltro al livello superiore su chiamata per errori di backup che superano la finestra di ritardo accettabile. | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Strategia di backup | ⚠️ Nessun backup automatico configurato, basato solo sui backup dell'infrastruttura della piattaforma. Servizio di backup di terze parti configurato ma mai testato: i backup possono essere danneggiati o incompleti. Esportazioni manuali di Data Loader basate sui backup (esecuzione incoerente, copertura incompleta, nessuna automazione). | | Controllo delle versioni dei metadati | ⚠️ Modifiche dei metadati distribuite tramite Serie di modifiche senza controllo sorgente. Nessun repository Git per la cronologia dei metadati. Impossibile ripristinare il ripristino nel tempo: impossibile ripristinare l'ultima configurazione buona nota dopo modifiche distruttive. | | Convalida del backup | ⚠️ Backup configurati ma mai ripristinati nell'ambiente di test. Il primo tentativo di ripristino si verifica durante il disastro effettivo che rivela un ambito incompleto o archivi danneggiati. Procedure di backup documentate ma non testate dal personale di backup. | | Ambito di backup | ⚠️ Presupponendo che il servizio di esportazione dati acquisisca tutto quando i valori dei campi formula e riepilogo di roll-up non vengono mai esportati (ricalcolati dinamicamente, non memorizzati) e i binari dei file o degli allegati richiedono una gestione separata, lasciando vuoti scoperti solo al ripristino. | | Procedure di recupero | ⚠️ Runbook di ripristino contiene fasi obsolete dell'architettura di 2 anni. Procedure di recupero testate da un singolo esperto che nel frattempo ha lasciato la società. Procedure manuali così complesse che l'esecuzione sotto stress è soggetta a errori. | | Frequenza di backup | ⚠️ Dati di transazione critici di cui viene eseguito il backup settimanale quando il requisito aziendale è un contratto di servizio su 24 ore. Frequenza di backup non allineata alla criticità aziendale - stessa pianificazione per tutti i dati indipendentemente dall'importanza. Pianificazione del backup non riuscita a causa della mancanza di monitoraggio e avviso. | | Conformità normativa | ⚠️ Conservazione dei backup più breve di quanto richiesto dal regolamento. Ad esempio, la documentazione di conformità HIPAA (polizze, analisi dei rischi, BAA, record violazioni) è stata eliminata prima della conservazione di sei anni ai sensi del §164.316 o i record di controllo finanziario gestiti da SOX sono stati eliminati prima della conservazione di sette anni. Lacuna di conformità rilevata durante il controllo. | | Memoria file | ⚠️ File di grandi dimensioni archiviati in Salesforce senza strategia di archiviazione. La memoria file cresce fino a quando l'organizzazione non si avvicina al limite. Nessun backup dei record ContentVersion - file persi se l'organizzazione è danneggiata. Affidarsi agli utenti per conservare copie personali di file critici. | | Test Sandbox | ⚠️ Sandbox Completo mai aggiornato dalla produzione - ambiente di test selvaggiamente diverso dalla produzione. Volume di dati nell'ambiente Sandbox dell'1% della produzione che impedisce una convalida realistica del ripristino. L'aggiornamento del Sandbox viene trattato come inconveniente anziché come opportunità di convalida del ripristino di emergenza. | | Monitoraggio | ⚠️ I processi di backup non riescono silenziosamente senza alcun avviso. Scoprire gli errori di backup settimane dopo durante il disastro quando è necessario un backup. Nessun cruscotto digitale che mostra le tendenze di esito positivo del processo di backup. Lo stato del servizio di backup viene monitorato solo quando arriva la fattura. | | Chiavi di crittografia | ⚠️ Considerare i dati crittografati da Shield come sicuri senza proteggere il materiale della chiave: la rotazione delle chiavi da sola lascia intatti i dati precedenti, ma la distruzione di un segreto tenant (crypto-shred) o la perdita di Bring Your Own Key o del materiale della chiave solo cache rende i dati crittografati irrecuperabili in modo permanente. La gestione delle chiavi non è inclusa nelle procedure di ripristino. | | Dipendenze tra organizzazioni | ⚠️ Backup dell'organizzazione principale da sola quando la soluzione dipende da applicazioni connesse, integrazioni esterne o SSO: i segreti delle applicazioni connesse, le autorizzazioni denominate e OAuth e i token di autenticazione esterni non vengono conservati da un ripristino di dati e metadati e devono essere riconfigurati e riautorizzati prima che un'organizzazione recuperata possa eseguire l'autenticazione in sistemi esterni. Quando SSO esterno è l'unico percorso di accesso, un provider di identità non disponibile blocca l'accesso anche a un'organizzazione completamente ripristinata. | ## Pianificazione della continuità operativa **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Definizione obiettivo tempo di recupero (RTO) | ✅ RTO definito in base alla funzionalità aziendale anziché uniforme in tutta l'organizzazione. Operazioni critiche per il reddito: da minuti a 1 ora. Servizi rivolti ai clienti: 1-4 ore. Strumenti interni: 4-24 ore. Rapporti storici: giorni. RTO documentati con l'approvazione degli stakeholder aziendali. | | Definizione obiettivo punto di ripristino (RPO) | ✅ RPO definito in base alla perdita di dati accettabile per capacità. Transazioni finanziarie: RPO quasi zero (secondi, replica asincrona basata sugli eventi). Record cliente: quasi zero (minuti tramite CDC). Dati Analytics: ore (sincronizzazione pianificata). Stato del flusso di lavoro temporaneo: giorni (non è necessaria alcuna replica). | | Disponibilità e ruoli del team | ✅ Personale principale e di backup documentato per tutti i ruoli critici. Nessun singolo punto di errore in Knowledge operativo. Albero di inoltro al livello superiore che definisce il soccorritore principale, il primo backup, il secondo backup. Informazioni di contatto mantenute nel sistema accessibile quando Salesforce non è disponibile. | | Procedure di comunicazione | ✅ Piano di comunicazione degli incidenti che definisce chi notifica utenti, clienti, dirigenti. Pagina di stato esterna ospitata all'esterno di Salesforce per la comunicazione degli utenti durante i guasti della piattaforma. Sistema di notifica SMS per il team su chiamata quando gli strumenti di comunicazione principali non sono disponibili. Intervalli di tempo di inoltro al livello superiore documentati (quando passare dal team al responsabile al dirigente). | | Mappatura delle dipendenze fornitore | ✅ Tutti i fornitori esterni critici documentati, inclusi Salesforce, partner integrazione, fornitori di pacchetti ISV. SLA del fornitore e finestre di assistenza documentate (24/7 vs solo orario di ufficio). Contatti e procedure di inoltro al livello superiore del fornitore documentati. Opzioni del fornitore alternative identificate per le dipendenze critiche. | | Obblighi di notifica normativi | ✅ Requisiti obbligatori di notifica degli incidenti documentati per settore (servizi finanziari, assistenza sanitaria, governo). Tempi di notifica definiti in modo da corrispondere alla finestra di tempo richiesta da ogni regolamento. Matrice di responsabilità che definisce chi invia le notifiche a quali organismi di regolamentazione. Modelli preparati per una notifica normativa rapida. | | Analisi dell'impatto aziendale | ✅ Ogni funzionalità aziendale classificata per impatto sul reddito, impatto sugli utenti e rischio normativo. Assegnazione di priorità al ripristino in base alla classificazione dell'impatto sul business. Risorse allocate al ripristino di emergenza in proporzione alla criticità aziendale. Analisi dell'impatto rivista ogni anno man mano che le priorità aziendali si evolvono. | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Definizione RTO/RPO | ⚠️ "Il sistema deve essere affidabile" senza obiettivi misurabili per RTO/RPO. RTO/RPO definito dal team IT senza l'input degli stakeholder aziendali. Obiettivi uniformi in tutte le funzionalità ignorando le differenze di criticità ("tutto richiede un tempo di attività del 99,999%"). | | Preparazione del team | ⚠️ Un singolo amministratore Salesforce conosce le procedure di ripristino di emergenza senza documentazione o personale di backup. La rotazione su chiamata include il personale che non ha mai eseguito procedure di ripristino. I soccorritori principali non sono disponibili durante il disastro (vacanze, malattia, compagnia che ha lasciato l'azienda). | | Pianificazione della comunicazione | ⚠️ Nessun piano di comunicazione - scoprire la necessità di informare gli utenti dopo l'incidente già in corso. Pagina di stato ospitata in Salesforce non disponibile durante il guasto di Salesforce. Ore di attesa per informare i dirigenti durante il tentativo di ripristino. | | Dipendenze del fornitore | ⚠️ Ignaro dei termini del contratto sul livello di servizio del fornitore fino a quando non si verifica il disastro e in attesa di assistenza 24 ore su 24, 7 giorni su 7 dal fornitore con copertura solo in orario di ufficio. Nessun referente di inoltro al livello superiore del fornitore documentato. Provider di pacchetti ISV richiesto per il ripristino ma la società non è più in attività. | | Requisiti normativi | ⚠️ Ignaro delle leggi obbligatorie di notifica delle violazioni. Scoprire l'obbligo di notifica 24 ore dopo che sono trascorse 48 ore. Nessun modello preparato - stesura di notifiche normative durante la risposta agli incidenti con il tempo di conformità. | | Assegnazione di priorità al ripristino | ⚠️ Tentare di ripristinare tutte le funzionalità contemporaneamente durante il disastro anziché assegnare la priorità alle operazioni critiche per il reddito. Dedicare 8 ore al ripristino della funzionalità di creazione di rapporti interni prima di affrontare il sistema degli ordini indirizzato ai clienti. | | Test e esercitazioni | ⚠️ Piano di continuità aziendale mai testato attraverso esercitazioni. Presupponendo che le procedure documentate funzionino sotto stress senza convalida. Esercizi da tavolo evitati a causa della "mancanza di tempo" nonostante le giornate trascorse a riprendersi da problemi non rilevati durante disastri effettivi. | | Trasferimento Knowledge | ⚠️ Disaster recovery Knowledge concentrato in un architetto senior che non ha documentato nulla. Nuovi membri del team inseriti senza formazione per il ripristino di emergenza. Presupponendo che tutti sappiano cosa fare durante i disastri senza un addestramento esplicito o esercitazioni. | | Convalida del presupposto | ⚠️ Le procedure di ripristino presumono che il backup sia accessibile entro 15 minuti, ma il recupero del backup dalla cella frigorifera richiede 8 ore. Presupponendo che il team sia disponibile entro 30 minuti ma non siano definite procedure di rotazione su chiamata o di inoltro al livello superiore. Stime del tempo di recupero basate su ipotesi ottimistiche mai convalidate tramite test. | ## RPO/RTO **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Allineamento dell'architettura RTO | ✅ Le decisioni di architettura corrispondono agli impegni degli RTO. Minutes RTO richiede il failover automatico e l'hot standby. Hours RTO richiede il ripristino con script e lo standby a caldo. Days RTO accetta il ripristino manuale dal backup a freddo. Evitare l'eccesso di ingegneria laddove il business non giustifica la complessità. | | Strategia di replica RPO | ✅ Il metodo di replica corrisponde alla destinazione RPO. RPO quasi zero: streaming di eventi asincroni tramite Eventi piattaforma su ogni salvataggio di record (secondi di ritardo di propagazione, consegna almeno una volta). Minuti RPO: Modificare la replica asincrona Acquisizione dati. Ore RPO: estrazione API batch pianificata. Days RPO: backup manuale con pianificazione fissa. | | Test RTO | ✅ procedure di recupero testate in condizioni temporizzate. RTO effettivo misurato durante le esercitazioni di ripristino di emergenza. Divari tra RTO target e RTO raggiunto identificati e corretti. RTO raggiungibile dal personale di backup, non solo dagli esperti principali. | | Convalida RPO | ✅ Perdita di dati misurata durante i test di ripristino. RPO effettivo rispetto al target durante le esercitazioni. Ritardo di replica monitorato continuamente in produzione. Avvisi configurati quando la replica non rientra nell'impegno RPO. | | RTO/RPO specifico della capacità | ✅ Capacità aziendali diverse hanno target RTO / RPO diversi che riflettono la criticità aziendale. Flusso ordine di e-commerce: RTO di 15 minuti, RPO quasi zero (giustifica l'attivazione-passiva multi-organizzazione). Knowledge Base interna: RTO di 8 ore, RPO di 24 ore (giustifica il ripristino manuale dal backup). | | Analisi costi-benefici | ✅ obiettivi RTO/RPO bilanciati con i costi di implementazione. Obiettivi più rigorosi richiedono investimenti in aumento esponenziale. Caso aziendale documentato che mostra il costo del tempo di inattività che giustifica l'investimento nel ripristino di emergenza. L'esame annuale conferma il continuo allineamento tra investimento e valore aziendale. | | Allineamento SLA | ✅ I target RTO/RPO della soluzione considerano i livelli di riferimento degli SLA della piattaforma. La soluzione può solo fornire un RTO migliore rispetto alla base di riferimento della piattaforma con architettura multi-organizzazioni. Obiettivi realistici impostati considerando le funzionalità della piattaforma come base. | | Monitoraggio delle capacità di ripristino | ✅ Monitoraggio continuo della valuta di backup (età del backup rispetto al target RPO). Avviso quando il backup è in ritardo rispetto alla pianificazione. Convalida automatica che l'infrastruttura di ripristino (organizzazione secondaria, memoria esterna) è operativa. | | Ripristino automatico o manuale | ✅ Gli obiettivi RTO aggressivi (minuti) richiedono il failover automatico con un intervento umano minimo. I target RTO moderati (ore) consentono il ripristino dello script con l'iniziazione umana. Gli obiettivi RTO ridotti (giorni) accettano il ripristino manuale seguendo procedure documentate. | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Obiettivi non realistici | ⚠️ Impegno per un RTO di 15 minuti con procedure di ripristino manuali che richiedono 4 ore per essere eseguite. RPO zero promettente senza infrastruttura di replica sincrona. Obiettivi RTO impostati dall'IT senza supporto architettonico. | | Disallineamento dell'architettura | ⚠️ Impegno RTO di 30 minuti ma nessuna procedura automatica di failover e ripristino sono interamente manuali. Impegno RPO zero ma solo backup giornalieri configurati. Obiettivi aggressivi senza investimenti corrispondenti in automazione e ridondanza. | | Target non testati | ⚠️ RTO mai convalidato attraverso esercizi di ripristino di emergenza temporizzati. Presupponendo un RTO di 2 ore ottenibile ma mai effettivamente ripristinabile in base a vincoli di tempo. Scoprire durante un disastro reale che l'RTO documentato di 4 ore richiede in realtà 18 ore. | | Obiettivi uniformi | ⚠️ Tutte le funzionalità assegnate allo stesso RTO/RPO indipendentemente dalla criticità aziendale. Sistema di creazione di rapporti batch interni progettato per la disponibilità di cinque-nove elementi mentre l'e-commerce critico per il reddito ha lo stesso target. Massicci sovrainvestimenti in capacità non critiche e sottoinvestimenti in sistemi critici. | | Ignorare le dipendenze | ⚠️ RTO presuppone solo il ripristino dell'organizzazione Salesforce ma la soluzione dipende anche dal provider di identità esterno non disponibile. RPO presuppone che il backup dei dati sia sufficiente, ma le credenziali di integrazione e la configurazione non sono supportate. Le stime del tempo di ripristino ignorano il tempo necessario per ripristinare i sistemi dipendenti. | | Lacune nella replica | ⚠️ Impegno per RPO di 15 minuti ma Modifica acquisizione dati configurato solo per 3 dei 12 oggetti critici. Replica evento piattaforma configurata ma nessun monitoraggio del ritardo di consegna evento. L'infrastruttura di replica si rompe e non viene rilevata per settimane fino al disastro. | | Ignoranza dei costi | ⚠️ Impegno a cinque-nove disponibilità senza comprendere i costi di implementazione. Obiettivi RTO/RPO impostati senza analisi costi-benefici. Aziende che non sono disposte a finanziare l'infrastruttura necessaria per gli obiettivi già assegnati ai clienti. | | Target statici | ⚠️ RTO/RPO definito 5 anni fa non è mai stato rivalutato nonostante la crescita del business e l’evoluzione delle priorità. Gli obiettivi continuano invariati man mano che la soluzione si evolve e la criticità cambia. Processo di revisione annuale assente. | | Lacune nella documentazione | ⚠️ Obiettivi RTO/RPO documentati nel documento di architettura ma non comunicati agli stakeholder aziendali. Azienda non consapevole delle funzionalità di ripristino confermate. Lacuna rilevata quando l'azienda prevede una ripresa di 1 ora ma l'architettura supporta solo l'RTO 24 ore. | | Falsa precisione | ⚠️ Impegno a una "disponibilità del 99,97%" quando il monitoraggio dell'infrastruttura non può misurare con tale precisione. Obiettivi definiti con falsa precisione che suggeriscono il rigore quando l'analisi sottostante è una stima approssimativa. | | Monitoraggio dell'assenza | ⚠️ Nessun monitoraggio continuo delle capacità di ripristino. Il backup cade con 2 giorni di ritardo rispetto alla pianificazione violando l'impegno RPO ma senza avvisi. Organizzazione secondaria in architettura attivo-passiva che non riceve aggiornamenti di replica ma controlli dello stato non configurati. | | Pianificazione senza esecuzione | ⚠️ Bellissimo piano di ripristino di emergenza con obiettivi RTO / RPO aggressivi ma senza automazione, test o procedure convalidate. Piano creato per soddisfare la casella di controllo di conformità ma nessuna realtà operativa dietro gli impegni. | ## Ridondanza **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Ridondanza dei dati | ✅ Platform fornisce automaticamente il backup dell'infrastruttura. La replica a livello di applicazione integra il backup della piattaforma quando il business richiede un ripristino più rapido. Modifica acquisizione dati o Eventi piattaforma replicano continuamente i dati critici nell'archiviazione secondaria. La replica consente il ripristino da errori di danneggiamento logico o di configurazione che i backup dell'infrastruttura non possono risolvere. | | Ridondanza delle applicazioni | ✅ Logica di applicazione stateless che sopravvive agli errori delle singole transazioni. Nessuno stato lato server impedisce la scalabilità orizzontale. Tipi di metadati personalizzati e impostazioni personalizzate per la configurazione sono immediatamente disponibili in tutti i server di applicazioni. Qualsiasi server di applicazioni può elaborare qualsiasi richiesta senza dipendere dallo stato specifico del server. | | Ridondanza integrazione | ✅ Gli schemi degli interruttori rilevano integrazioni non riuscite. Eventi piattaforma richiede l'area di attesa quando i sistemi esterni non sono disponibili anziché bloccare le operazioni degli utenti. Errori del sistema esterno isolati dalla funzionalità rivolta agli utenti. Più opzioni fornitore esterno identificate per le integrazioni critiche che consentono un rapido passaggio da un fornitore all'altro durante le interruzioni del fornitore. | | Schemi multi-organizzazione per carichi di lavoro critici | ✅ Schema attivo-passivo: l'organizzazione principale serve tutto il traffico, l'organizzazione secondaria sincronizzata ma inattiva, failover durante il guasto della regione principale. Schema attivo-attivo: entrambe le organizzazioni servono il traffico di produzione in modo continuo, gli utenti allocati per area geografica o unità operativa. Multi-organizzazioni giustificate solo quando l'azienda richiede RPO/RTO oltre le funzionalità della piattaforma. | | Sincronizzazione dei dati multi-organizzazioni | ✅ Acquisizione dati di modifica offre una replica quasi in tempo reale per i dati critici (15 minuti RPO). Gli eventi piattaforma forniscono lo streaming degli eventi per le transazioni critiche (RPO quasi zero). Replica pianificata API in blocco 2.0 per i dati di riferimento (RPO accettabile su 24 ore). Strategia di risoluzione dei conflitti definita per attivo-attivo quando lo stesso record viene modificato in entrambe le organizzazioni. | | Architettura attiva-passiva multi-organizzazioni | ✅ L'organizzazione principale nella regione US East serve tutto il traffico di produzione. Organizzazione secondaria in Europa sincronizzata tramite CDC ma inattiva. L'instradamento DNS o il livello di autenticazione indirizza gli utenti all'organizzazione attiva. I controlli automatici dello stato attivano il failover quando l'organizzazione principale non è disponibile per 10 minuti consecutivi. | | Architettura attiva multi-organizzazioni | ✅ utenti EMEA nell'organizzazione Europa, utenti AMER nell'organizzazione USA in base al campo regione profilo utente. Replica bidirezionale per i dati di riferimento condivisi (account, prodotti). I dati regionali rimangono nelle rispettive organizzazioni (ordini, casi). La risoluzione dei conflitti utilizza last write-wins with regional authority per i dati master dei clienti. | | Distribuzione geografica | ✅ I data center regionali Hyperforce abilitano la distribuzione geografica. Distribuzione a regione singola con ridondanza gestita dalla piattaforma sufficiente per una disponibilità del 99,9%. Multi-organizzazioni tra regioni considerate solo per requisiti del 99,95% o mandati di residenza dati normativi. | | Ridondanza del sistema esterno | ✅ API esterne critiche hanno endpoint principali e di failover. L'interruttore passa all'endpoint di failover quando l'elemento principale riscontra errori prolungati. Servizi esterni con ridondanza geografica preferita ai provider di singole regioni per le integrazioni critiche. | | Monitoraggio dell'infrastruttura | ✅ Trust.salesforce.com monitorato tramite API di stato. Abbonarsi alle notifiche di stato specifiche dell'istanza. La soluzione risponde dinamicamente allo stato di salute della piattaforma riducendo il carico non critico durante il degrado. Scale Center identifica le operazioni che richiedono più risorse prima che influiscano sulla capacità di ridondanza. | | Automazione del failover | ✅ failover automatico preferito rispetto al manuale per i target RTO aggressivi. I controlli dello stato vengono eseguiti ogni 1-5 minuti per rilevare eventuali errori. La logica decisionale di failover evita i falsi positivi (richiede un errore prolungato, non errori temporanei). Ritiro automatico se anche la destinazione del failover non è sana. | | Singoli punti di errore | ✅ Revisione dell'architettura identifica tutti i singoli punti di errore. Ogni SPOF identificato è stato valutato per l'impatto sul business e il costo di mitigazione. SPOF ad alto impatto mitigati dalla ridondanza. SPOF a basso impatto accettati con procedure documentate di accettazione e ripristino del rischio. | | Test delle funzionalità di ridondanza | ✅ Le esercitazioni di failover pianificate convalidano la logica di failover automatica. Sistemi di backup testati sotto carico (non solo in standby caldo inattivo). La capacità dell'organizzazione secondaria ha convalidato la gestione del carico di produzione durante i test attivo-passivo. Le lezioni apprese da ogni test migliorano l'automazione e le procedure. | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Singoli punti di errore | ⚠️ L'intera soluzione dipende da una singola API esterna senza fallback. Il provider di dominio personalizzato è SPOF: se il provider non riesce, gli utenti non possono raggiungere Experience Cloud. Singolo account utente integrazione: se disabilitato, tutte le integrazioni non riescono. | | Ridondanza non testata | ⚠️ Architettura multi-organizzazioni attiva-passiva configurata ma mai testata. L'organizzazione secondaria non viene sincronizzata ma i controlli dello stato non sono configurati. Il primo tentativo di failover si verifica durante un disastro reale che rivela un'organizzazione secondaria danneggiata o non funzionale. | | Lacune nella sincronizzazione dei dati | ⚠️ Multi-organizzazione attivo-passivo con replica CDC configurata per 5 dei 30 oggetti critici. Il failover si verifica ma all'organizzazione secondaria manca l'80% dei dati richiesti. Monitoraggio del ritardo di replica assente - organizzazione secondaria in ritardo di 3 giorni rispetto all'organizzazione principale ma senza avvisi. | | Falsa ridondanza | ⚠️ Presupponendo un'architettura multiregione quando entrambe le organizzazioni sono effettivamente ospitate nella stessa regione Hyperforce. API esterne "ridondanti" che utilizzano effettivamente lo stesso provider a monte. Più percorsi di integrazione che attraversano tutti lo stesso singolo punto di errore. | | Architettura statale | ⚠️ La logica di applicazione dipende dallo stato in memoria che impedisce la scalabilità orizzontale. Il server di un'unica applicazione mantiene tutto lo stato della sessione utente - il riavvio del server disconnette tutti gli utenti. Le risorse statiche memorizzate nella cache dell'applicazione anziché nella cache piattaforma creano incoerenze tra i server. | | Nessun interruttore | ⚠️ L'integrazione esterna non riesce e ogni transazione attende un timeout completo di 120 secondi. Tutti gli utenti interessati quando un singolo sistema esterno non è disponibile. Nessun isolamento degli errori: un'integrazione non riuscita compromette le prestazioni dell'intera piattaforma. | | Solo failover manuale | ⚠️ Architettura multi-organizzazioni con solo procedure di failover manuali. Richiede una procedura di 2 ore per avviare il failover mentre l'attività è inattiva. Controlli automatici dello stato non implementati. La decisione di failover richiede l'approvazione dell'esecutivo che ritarda il ripristino. | | Errore di pianificazione della capacità | ⚠️ Organizzazione secondaria in architettura attivo-passiva dimensionata per il 20% del carico di produzione. Il failover si verifica ma l'organizzazione secondaria non è in grado di gestire l'intero traffico di produzione. Architettura attiva con entrambe le organizzazioni con capacità dell'85% che non lascia ridondanza quando un'organizzazione non riesce. | | Spostamento della configurazione | ⚠️ Le organizzazioni principali e secondarie divergono nel tempo perché le distribuzioni non sono sincronizzate. Metadati distribuiti al principale ma non al secondario. Il failover rivela che l'organizzazione secondaria esegue una versione di codice vecchia di 6 mesi. | | Sovringegneria | ⚠️ Architettura multi-organizzazione con replica attivo-attivo per gli strumenti di amministrazione interni utilizzati da 5 persone. Complessità operativa di più organizzazioni non giustificata dalla criticità aziendale. Obiettivo di disponibilità del 99,999% per i rapporti batch accettabile al 99%. | | Incomprensione geografica | ⚠️ Presupponendo che Hyperforce "multi-regione" fornisca automaticamente funzionalità multi-organizzazione. Non si capisce che una singola organizzazione è sempre in una singola regione e che la multiregione richiede più organizzazioni. Ridondanza basata sulla geografia impossibile con l'architettura a organizzazione singola. | | Accoppiamento integrazione | ⚠️ Tutte le integrazioni sincrone senza fallback asincrono. L'indisponibilità del sistema esterno blocca le operazioni dell'utente. Nessun meccanismo di attesa: le transazioni non riescono se il sistema esterno è temporaneamente inattivo. Gli utenti non possono procedere quando l'integrazione non è disponibile. | # Affidabilità — Schemi Il pilastro Affidabilità si concentra sulla disponibilità, le prestazioni, il ripristino di emergenza e la scalabilità del sistema, in modo che le soluzioni resistano agli errori e si adattino alla domanda. Questi schemi trasformano i principi di progettazione del pilastro in pratiche concrete e riesaminabili: cosa cercare in una soluzione, che aspetto ha e gli schemi anti-schema che la minano. ## Principi di progettazione Questi schemi mettono in pratica i principi di progettazione del pilastro Affidabilità. Leggerli insieme al [pilastro Affidabilità](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/reliability.md) per informazioni complete su ciascuno di essi. - **Distribuire il carico di lavoro**: elaborare in batch in modo che un picco di volume non esaurisca i limiti del governor. - **Si supponga che tutto fallisca**: progettare per il fallimento di ogni dipendenza, non solo di quelle previste. - **Creare sistemi auto-ripristinanti**: ripristinare automaticamente i guasti temporanei anziché richiedere un intervento manuale. - **Progettare prima i requisiti** aziendali: obiettivi di disponibilità a terra e di ripristino nell'impatto sul business, non cifre arbitrarie sul tempo di attività. - **Convalida il ripristino**: dimostra che le procedure di ripristino di emergenza funzionano prima di averne bisogno. ## Come utilizzare questi schemi Ogni categoria abbina **modelli** (aspetto positivo) e **anti-schemi** (cosa evitare), organizzati in modo da poter rivedere una soluzione area per area. Iniziare dal risultato di affidabilità necessario: - **Impostare o difendere obiettivi di disponibilità e latenza?** Iniziare con **Disponibilità e prestazioni** per basare gli SLO sull'impatto sul business prima di scegliere un'architettura. - **Proteggersi dalla perdita di dati o da errori regionali?** Utilizzare il **ripristino di emergenza** per allineare le procedure di backup, failover e continuità operativa all'RPO/RTO. - **Gestire la crescita o il carico piccante?** Utilizzare **Scalabilità** per ingrandire i carichi di lavoro e rimanere entro i limiti del governor man mano che il volume aumenta. - **Agenti operativi nella produzione?** Utilizzare gli **schemi degli agenti** per le catene di fallback, la gestione dei timeout e il monitoraggio dello stato degli agenti. ## Categorie di schema ### [Schemi agente](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/reliability-agentic-patterns.md) Schemi specifici dell'affidabilità per i sistemi agenti, tra cui strategie di fallback, gestione del timeout e monitoraggio dello stato degli agenti. ### [Disponibilità e prestazioni](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/reliability-availability-performance-patterns.md) Schemi per alta disponibilità, ottimizzazione delle prestazioni, caching e gestione del carico. ### [Ripristino di emergenza](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/reliability-disaster-recovery-patterns.md) Schemi per strategie di backup, ripristino dei dati, continuità operativa e procedure di failover. ### [Scalabilità](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/reliability-scalability-patterns.md) Schemi per la scalabilità orizzontale e verticale, la gestione dei limiti del governor e la gestione della crescita. ## Risorse correlate - [Pilastro affidabilità](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/reliability.md): i principi di progettazione e le linee guida architettoniche implementate da questi schemi - [Affidabilità per Agentic Enterprise](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/agentic-enterprise-reliability.md) — Guida all'affidabilità per le soluzioni basate sugli agenti - [Well-Architected Framework](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/framework.md) – come l’affidabilità si integra con gli altri pilastri - [Patterns and Anti-Patterns](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/patterns-and-anti-patterns.md) — la libreria completa di schemi in tutti i pilastri # Affidabilità per l'azienda agente Affidabilità per l'azienda agente ## Panoramica Gli agenti autonomi introducono schemi di esecuzione non deterministici fondamentalmente diversi dall'automazione Salesforce tradizionale. Mentre Flusso Salesforce e Apex seguono percorsi prevedibili che producono risultati ripetibili in condizioni controllate, gli agenti ragionano dinamicamente sui problemi. Ad esempio, la stessa domanda posta due volte può seguire percorsi di esecuzione diversi, consumare risorse diverse e produrre risultati diversi. Questo non determinismo crea sfide di affidabilità che gli approcci di test e monitoraggio tradizionali non affrontano. Le modalità di errore dell'affidabilità degli agenti sono categoricamente diverse dagli errori di flusso Salesforce o Apex. I servizi di inferenza LLM (Large Language Model) rappresentano dipendenze esterne con caratteristiche di disponibilità separate dalla piattaforma Salesforce. Gli agenti generano risposte che occasionalmente violano la struttura prevista nonostante le istruzioni rapide. La preparazione del contesto degli agenti consuma i limiti del governor in modo imprevedibile. Il recupero senza limiti dei dati influisce più gravemente sugli agenti perché gli agenti possono richiedere un contesto aperto mentre le query deterministiche hanno un controllo esplicito dell'ambito. Un'architettura degli agenti affidabile richiede una catena di fallback a più livelli che si degrada in modo fluido: dagli agenti sofisticati, agli agenti più semplici con contesto ridotto, ai motori di regole deterministiche e infine al passaggio umano tramite Omnicanale. Gli eventi piattaforma alimentano le aree di attesa di nuovi tentativi durevoli con schemi di checkpoint, consentendo la ripresa dei flussi di lavoro non riusciti dall'ultima fase riuscita. Gli interruttori automatici monitorano lo stato del servizio LLM nella cache piattaforma per lo stato in tempo reale, supportato da tipi di metadati personalizzati per le soglie e la configurazione, instradando agli schemi di fallback dopo errori consecutivi. Il monitoraggio richiede il tracciamento delle percentuali di successo delle conversazioni, del tempo medio tra gli errori (MTBF), del tempo medio di ripristino (MTTR) e della precisione di radicamento nel contesto. L'Osservabilità Agentforce fornisce le tracce della sessione, le metriche di salute e latenza e le percentuali di inoltro al livello superiore e di deviazione, ma è comunque necessario eseguire autonomamente lo strumento di metriche di affidabilità come MTBF, MTTR e precisione di radicamento. Questo documento descrive che cosa cambia quando gli agenti sono presenti. Per schemi di affidabilità di base validi per tutte le soluzioni Salesforce (progettazione degli oggetti livello di servizio, tolleranza dei guasti, scalabilità e monitoraggio), vedere il pilastro [Affidabilità](/docs/architect/it-it/well-architected/guide/reliability.html). ## Modalità di errore specifiche dell'agente Gli agenti Agentforce non riescono in modi diversi da Flusso Salesforce o Apex. La comprensione di queste modalità di errore è ciò che determina l'architettura dell'affidabilità. - **Indisponibilità del servizio LLM:** Gli endpoint di inferenza LLM riscontrano picchi di latenza occasionali o problemi di disponibilità. Agentforce è elencato come prodotto monitorato su [Trust.salesforce.com](http://trust.salesforce.com) insieme ad Analytics e ad altri servizi Salesforce. Tuttavia, la latenza di inferenza LLM granulare e le metriche delle prestazioni per richiesta non sono esposte. Implementare gli interruttori automatici utilizzando Cache piattaforma per lo stato in tempo reale a bassa latenza, supportato da Tipi di metadati personalizzati per le soglie e la configurazione, per monitorare lo stato del servizio LLM. Poiché la cache piattaforma è la soluzione migliore (le voci possono essere sfrattate prima del loro time-to-live, TTL), mantenere lo stato di apertura/attivazione in un punto vendita durevole, ad esempio un oggetto personalizzato, anziché nella sola cache. Sintonizzare la condizione del viaggio sull'endpoint: un conteggio degli errori consecutivi (ad esempio, cinque) o un tasso di errore che supera una soglia su una finestra mobile. Quando il circuito si attiva, aprirlo e instradarlo a schemi di fallback, ad esempio prompt più semplici, risposte memorizzate nella cache o handoff umano, fino a quando una richiesta di test riuscita indica il ripristino. - **Errori di convalida della risposta:** Gli agenti occasionalmente generano risposte che violano la struttura prevista nonostante le istruzioni rapide. Un agente a volte restituisce JSON in formato non corretto, omette i campi obbligatori o include tipi di dati imprevisti. La cache piattaforma può memorizzare schemi di risposta convalidati, consentendo una convalida rapida. Quando la convalida non riesce, riprovare con prompt raffinati, incluso l'errore di convalida e un esempio di struttura corretta. Impostare un numero massimo di tentativi (3—5) per evitare loop di tentativi infiniti. - **Rilevamento allucinazioni:** Quando i dati di base sono incompleti, gli agenti generano informazioni plausibili ma non corrette. A differenza delle query deterministiche che restituiscono "non trovato", gli agenti colmano le lacune con l'inferenza. L'itinerario di controllo Einstein Trust Layer registra ogni prompt, prompt mascherato, risposta, risultato del rilevamento della tossicità e feedback degli utenti per una revisione post-hoc della governance. Tuttavia, non acquisisce tracce di ragionamento passo per passo. Per acquisire i ragionamenti passo per passo, utilizzare Tracciamento sessione Agentforce, che registra le esecuzioni del motore di ragionamento. Richiedere agli agenti di citare le fonti di recupero RAG (Data 360, in precedenza Data Cloud). Confrontare le richieste degli agenti con le fonti recuperate per individuare le deviazioni effettive prima dell'esecuzione dell'azione. Un controllo in linea aggiunge poca latenza, poiché viene eseguito con fonti già nel contesto. Un controllo che richiede un'andata e ritorno separata, ad esempio una seconda chiamata modello o un servizio esterno, costa di più. Riservare questi controlli alle scritture di grande impatto, inclusi gli aggiornamenti finanziari o degli ordini, ed eseguirli in modo asincrono durante la conversazione in tempo reale. - **Picchi di limite del governatore:** La preparazione del contesto dell'agente consuma le query SOQL (Object Query Language) di Salesforce, il tempo CPU e la memoria heap in modo imprevedibile in base al flusso di conversazione. Proactive Monitoring è un servizio diritti Signature Success (precedentemente Signature Support) nel [Salesforce Success Plan](https://www.salesforce.com/services/success-plans/), in cui Salesforce monitora in modo proattivo gli account dei clienti. Proactive Monitoring non è un avviso configurabile self-service disponibile per tutti i clienti. Per il monitoraggio dei limiti del governor self-service, utilizzare [Scale Center](https://help.salesforce.com/s/articleView?id=xcloud.scale_center_overview.htm&type=5) per identificare le operazioni degli agenti che richiedono molte risorse e si avvicinano ai limiti. Implementare la paginazione nelle azioni degli agenti che recuperano raccolte di record di grandi dimensioni. Per i dati di riferimento a cui si accede di frequente, utilizzare Cache piattaforma. - **Disorientamento dei dati nel contesto dell'agente:** Gli agenti che recuperano il contesto per gli account con più di 10.000 opportunità o i casi con cronologie attività relativamente ampie incontrano le stesse difficoltà di distorsione dei dati di Batch Apex. A differenza delle query deterministiche in cui si controlla l'ambito, il ragionamento degli agenti può richiedere "tutta la cronologia" in modo imprevedibile. Per evitare questo, progettare azioni degli agenti con limiti rigidi ragionevoli (ad esempio, un limite massimo dell'ordine di 200 figli per controllante) e implementare strategie di campionamento quando vengono superati i limiti. Il limite limita la quantità di dati che entrano nel contesto dell'agente. Abbinarlo a filtri selettivi indicizzati in modo che la query rimanga economica, poiché un filtro non indicizzato o un'aggregazione su un controllante non indicizzato analizza l'insieme controllato completo prima dell'applicazione del limite massimo. ## Grazioso degrado con catene di fallback Progettare catene di fallback a più livelli per consentire agli agenti di continuare a funzionare con funzionalità ridotte anziché fallire completamente. - **Agente principale con contesto completo:** Agente sofisticato con basi complete su Data 360, cronologia delle conversazioni completa e ragionamento complesso. Massima qualità ma con il maggior dispendio di risorse e il più alto rischio di errore. - **Agente secondario con contesto ridotto:** Agente più semplice che utilizza il contesto condensato (ad esempio, ultimi 30 giorni rispetto a tutta la cronologia, primi 5 risultati di ricerca vettoriale rispetto ai primi 20). Contesto più piccolo significa meno token, inferenza più rapida e minore probabilità di errore, ma solo se il contesto ridotto copre ancora i dati necessari all'operazione. - **Motore di regole deterministiche:** Flusso Salesforce tradizionale o logica Apex che gestisce scenari comuni quando il ragionamento degli agenti non riesce. Le regole non possono adattarsi a nuove situazioni, ma gestiscono in modo affidabile schemi noti. L'agente di convalida dell'ordine torna alle regole di convalida standard, mentre l'agente del punteggio dei lead torna al calcolo del punteggio basato su regole. - **Consegna umana tramite Omnicanale:** Instrada all'area di attesa umana quando le opzioni automatiche sono esaurite. Configurare l'instradamento basato sulle competenze per assicurarsi che gli inoltri al livello superiore raggiungano le competenze appropriate. Passare il contesto completo della conversazione, incluse le strategie tentate, gli eventuali punteggi di confidenza calcolati per l'agente e i motivi dell'errore, per consentire un intervento umano efficiente. Implementare la logica di fallback nell'orchestrazione Flusso Salesforce o Apex attivato da Eventi piattaforma. Ogni livello registra la strategia riuscita, creando visibilità sugli schemi di errore e sull'efficacia del fallback. ## Eventi piattaforma per la resilienza degli agenti Tutti gli schemi Evento piattaforma di questa sezione presumono tipi di Evento piattaforma a volume elevato, che forniscono la finestra di conservazione del replay di 72 ore. Gli eventi piattaforma a volume standard vengono conservati solo per 24 ore. Utilizzare i tipi di eventi a volume elevato per tutti gli schemi di resilienza degli agenti, area di attesa di nuovo tentativo e checkpoint in cui la durata del replay è un requisito di affidabilità. Gli eventi piattaforma offrono una messaggistica durevole che consente ai flussi di lavoro degli agenti di sopravvivere agli errori e di ripristinare automaticamente. - **Avanzamento dell'agente checkpoint:** I flussi di lavoro a più fasi degli agenti pubblicano gli eventi checkpoint dopo ogni fase riuscita. L'agente dell'elaborazione contratti completa l'estrazione del documento, pubblica l'evento ContractParsed con i dati estratti e quindi passa all'analisi delle clausole. Se l'analisi delle clausole non riesce, riprodurre l'evento ContractParsed per riprendere dai dati estratti senza ripetere l'analisi. Funziona quando il payload del checkpoint trasporta i dati e l'abbonato è idempotente, perché replay restituisce gli eventi anziché riprendere un flusso di lavoro a metà fase. Memorizza lo stato del checkpoint nel payload dell'evento, inclusi ID correlazione, fasi completate e stato necessario per la continuazione. - **Area di attesa Riprova con backoff esponenziale:** Le richieste degli agenti non riuscite vengono pubblicate nell'evento AgentRetryRequested con il conteggio dei tentativi nel payload. L'abbonato evento elabora i tentativi con ritardi di backoff esponenziali (ad esempio, 30 sec, 2 min, 8 min, 30 min). Dopo il massimo numero di tentativi (in genere 5), instradare alle operazioni di area di attesa e avviso a lettera morta. Gli **eventi piattaforma a** volume elevato mantengono un periodo di riproduzione di 72 ore. Utilizzare il tipo di evento a volume elevato per le aree di attesa di nuovo degli agenti in modo che gli abbonati possano recuperare dopo le finestre di manutenzione dell'organizzazione o i tempi di inattività della distribuzione. Gli eventi piattaforma a volume standard vengono conservati solo per 24 ore. - **Orchestrazione basata sugli eventi:** Progettare i flussi di lavoro degli agenti come catene di eventi vagamente accoppiate. La creazione del lead pubblica LeadCreated. L'agente del punteggio lead si abbona, calcola il punteggio e pubblica LeadScored. L'agente di instradamento lead si abbona a LeadScored e lo assegna all'area di attesa appropriata. Ogni agente può non riuscire e riprovare in modo indipendente. Un errore di un singolo agente non blocca l'intero flusso di lavoro: gli agenti a valle elaborano quando le dipendenze vengono ripristinate. - **Tracciamento ID correlazione:** Includere un ID correlazione come campo personalizzato in tutti i payload degli eventi correlati. Replay degli eventi utilizzando l'API Pub/Sub by replayId, un identificatore opaco non contiguo, per ricostruire la cronologia del flusso di lavoro entro il periodo di conservazione di 72 ore. Per abilitare il debug basato sull'ID correlazione, implementare uno schema lato abbonato che registra gli eventi in entrata con il relativo replayId e ID correlazione in un oggetto personalizzato, abilitando la tracciabilità incrociata degli eventi. Questo schema di registrazione è un'implementazione personalizzata creata dall'utente, non una funzionalità di query nativa della piattaforma. ## Elaborazione asincrona per i carichi di lavoro degli agenti Spostare le operazioni degli agenti che superano i limiti sincroni in un contesto asincrono, che consente limiti governor più elevati e timeout più lunghi. - **Batch Apex per le operazioni degli agenti in blocco:** Un agente che analizza oltre 1.000 record trae vantaggio da Batch Apex che fornisce 200 query SOQL, 150 istruzioni DML (fino a 10.000 righe DML) e 60.000 millisecondi (60 secondi) di tempo CPU per metodo di esecuzione. Agente del calcolo del punteggio lead che elabora le importazioni di lead notturne. Analisi del sentiment dei casi nei casi storici. Previsioni opportunità che analizzano le opportunità in corso di realizzazione completate. - **Catene in area di attesa per flussi di lavoro a più fasi:** I flussi di lavoro complessi degli agenti che richiedono più chiamate API esterne, analisi di serie di dati di grandi dimensioni o un tempo di elaborazione prolungato utilizzano le catene Apex in area di attesa. Ogni processo Area di attesa ottiene 60 CPU time e 12 MB heap. In coda per i flussi di lavoro che superano i limiti di processi singoli. Monitorare l'avanzamento negli oggetti personalizzati in modo che un processo non riuscito possa riprendere dall'ultima fase completata. - **@future per i semplici handoff asincroni:** Le operazioni più semplici degli agenti, come l'invio di notifiche, l'accesso a sistemi esterni o aggiornamenti non urgenti, utilizzano i metodi @future. Lo schema fire-and-forget si adatta quando un flusso di lavoro non necessita di risultati e può tollerare errori. Monitorare la capacità di elaborazione asincrona tramite la pagina Processi Apex (Imposta → Processi Apex) e l'Area di attesa Apex Flex. Un massimo di 5 processi batch simultanei limita l'elaborazione parallela degli agenti; ulteriori processi nell'area di attesa Flex Apex, che contiene fino a 100 processi in stato In attesa. Tutti i tipi Apex asincroni, Batch, Future, Queueable e Scheduled Apex, condividono lo stesso limite giornaliero dell'organizzazione (**DailyAsyncApexExecutions**) per le esecuzioni Apex asincrone: il maggiore tra 250.000 o 200 volte il numero di licenze utente. Quando si esegue il polling degli agenti ad alta frequenza o si ritentano le aree di attesa degli abbonati, Area di attesa può esaurire rapidamente questa quota. Per evitare questo problema, raggruppare in batch o limitare queste aree di attesa per rimanere entro il limite, che si applica a tutta l'organizzazione in tutti i tipi Apex asincroni, non come allocazione separata solo per Area di attesa. Avvisare quando il consumo si avvicina a questi limiti in modo che i team possano gestire la capacità in modo proattivo. ## Test dell'affidabilità degli agenti Convalidare la resilienza degli agenti prima della produzione attraverso strategie di test che risolvono il comportamento non deterministico. - **Test di caricamento in Full Copy Sandbox:** Testare le prestazioni degli agenti sotto carico su scala di produzione utilizzando volumi di dati completi. Simula conversazioni simultanee corrispondenti ai picchi di domanda. Misurare la latenza p95 e p99, identificando il deterioramento delle prestazioni sotto stress. Convalida che il consumo limite del governor rimanga al di sotto delle soglie durante i picchi di carico. I test di caricamento in un Sandbox Copia parziale con dati ridotti offrono una confidenza fuorviante, poiché il volume di dati influisce direttamente sulle prestazioni degli agenti. Prima di eseguire questi test, richiedere l'approvazione di Salesforce (almeno una settimana prima per le richieste di test delle prestazioni). I test non approvati possono essere limitati o bloccati. - **Iniezione guasto:** Introdurre deliberatamente errori di convalida dei meccanismi di ripristino. Simulare errori di inferenza LLM nel livello di servizio monitorato dall'interruttore per verificare che l'interruttore si attivi. Inserire eccezioni SOQL per testare la gestione degli errori. Risposte degli agenti danneggiate alla logica di convalida dei test. Introdurre la distorsione dei dati (account con oltre 10.000 figli) per testare la logica di paginazione. Impostare timeout aggressivi per testare la gestione dei timeout e riprovare le strategie. - **Tecnica del caos:** Disabilitare in modo casuale gli abbonati agli eventi piattaforma per testare il ripristino dei replay. Terminare i processi asincroni a metà esecuzione per testare il riavvio del checkpoint. Introdurre la latenza variabile nei sistemi esterni per testare le strategie di timeout progressivo. Gli esperimenti del caos convalidano la resilienza in combinazioni di errori realistiche. Pianificare giornate di caos regolari negli ambienti di gestione temporanea, mantenendo la resilienza man mano che gli agenti evolvono. - **Test di stabilità di lunga durata:** Eseguire carichi di lavoro degli agenti in modo continuo per oltre 72 ore, monitorando eventuali errori dipendenti dal tempo. Gli errori accumulati e le prestazioni che peggiorano gradualmente emergono solo sotto un funzionamento sostenuto. Tenere traccia delle tendenze temporali della CPU per identificare il deterioramento graduale nel corso dell'esecuzione. ## Monitoraggio degli SLI degli agenti Definire indicatori del livello di servizio (SLI) che abilitano la misurazione oggettiva dell'affidabilità. Stabilire gli SLO prima di costruire gli agenti, non dopo gli errori di produzione. - **Percentuale di successo della conversazione:** Percentuale di conversazioni degli agenti completate senza errori o timeout. Considerare una consegna graziosa a un essere umano come un successo, non un fallimento: l'inoltro al livello superiore è l'ultimo livello di fallback per progettazione. Conteggiare gli inoltri non riusciti o non intenzionali al livello superiore rispetto alla metrica: è un utile segnale di affidabilità, ma un proxy imperfetto per l'esperienza utente, poiché un'approvazione educata può mascherare un problema irrisolto. Tenere traccia separatamente per tipo di agente e caso d'uso poiché i criteri di esito positivo del calcolo del punteggio dei lead sono diversi dalla revisione del contratto. Avvisa quando la percentuale di successo scende al di sotto di SLO (in genere 95-99%). - **Tempo medio tra i guasti (MTBF):** Tempo operativo medio tra gli errori degli agenti. Una MTBF più alta indica un minor numero di errori e una migliore affidabilità. Calcolare come ore operative totali degli agenti diviso il conteggio degli errori. Monitorare per tipo di agente per identificare gli agenti meno affidabili che richiedono investimenti in ottimizzazione. - **Tempo medio di recupero (MTTR):** Tempo medio dal rilevamento dell'errore al ripristino del servizio. Il ripristino automatico tramite replay evento piattaforma e interruttori automatici ripristina il servizio molto più velocemente e con meno errori manuali rispetto all'intervento pratico. Un MTTR più basso riduce l'impatto aziendale per incidente. - **Precisione di messa a terra:** Percentuale di risposte degli agenti corrette in base alla convalida dei dati di origine. Esempi di risposte casuali degli agenti per convalidare le richieste rispetto alle fonti Data 360. Una precisione di radicamento inferiore al 95% indica problemi di allucinazioni che richiedono un rapido perfezionamento o un migliore recupero del contesto. - **Lacune di replay degli eventi piattaforma:** Conteggio degli eventi mancati o non consegnati, ad esempio un abbonato offline oltre la finestra di conservazione. Zero gap è un segnale positivo di una sana architettura basata sugli eventi. I gap indicano problemi degli abbonati, errori di pubblicazione degli eventi o limiti di capacità. Tenere traccia di questi gap con lo schema di registrazione lato abbonato descritto sopra e registrare il replayId e l'ID correlazione di ogni evento in un oggetto personalizzato. ## Creazione di agenti affidabili Gli agenti affidabili provengono dalla progettazione preventiva dei guasti: definizione di SLI/SLO, gestione del contesto con governor-limit-aware e catene di fallback multi-livello prima della creazione, senza bloccarli in seguito. Interruttori automatici a livelli e logica dei ripetuti tentativi e checkpoint basata sugli eventi piattaforma per ripristinare automaticamente i flussi di lavoro, con passaggio di consegne umano come ultima risorsa. Convalidare la progettazione mediante test sistematici di carico, iniezione di guasti e caos, quindi continuare a monitorare gli stessi SLI in produzione per verificare che reggano nel tempo. La guida all'affidabilità nel pilastro principale [Affidabilità](/docs/architect/it-it/well-architected/guide/reliability.html) si applica agli agenti con considerazioni specifiche della piattaforma trattate qui. Le architetture degli agenti di successo bilanciano la capacità autonoma con la supervisione appropriata, consentendo l'auto-ripristino da errori temporanei e l'inoltro al livello superiore quando la confidenza diminuisce o emergono casi limite.

Condividere i propri commenti sul framework ben progettato.

# Ciclo di vita dello sviluppo sicuro - Schemi Ulteriori informazioni su Well-Architected [Trust](/docs/architect/it-it/well-architected/guide/trust.html) → [Secure Development Lifecycle](/docs/architect/it-it/well-architected/guide/trust.html#secure-development-lifecycle) La sicurezza deve essere integrata in tutto il ciclo di vita dello sviluppo, dalla progettazione iniziale alla distribuzione e alle operazioni. Questi schemi abilitano procedure di sicurezza a sinistra, risolvono vulnerabilità comuni e proteggono le opportunità in corso di realizzazione. ## Protezione con turni a sinistra **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Sviluppo \| Tooling | ✅ Scansione di sicurezza IDE integrata nel flusso di lavoro dello sviluppatore | | Sviluppo \| Design | ✅ Modellazione delle minacce completata in fase di progettazione utilizzando la metodologia STRIDE | | Sviluppo \| Requisiti | ✅ Requisiti di sicurezza inclusi nelle storie utente e nei criteri di accettazione | | Sviluppo \| Controllo sorgente | ✅ Gli hook pre-commit impongono policy di sicurezza (scansione segreta, analisi del codice) | | Sviluppo \| Formazione | ✅ Formazione sulla sicurezza degli sviluppatori aggiornata regolarmente per riflettere le minacce in evoluzione | | Sviluppo \| CI/CD | ✅ I test di sicurezza automatici nelle opportunità in corso di realizzazione CI/CD non riescono | | Sviluppo \| Revisione codice | ✅ Esami tra pari di sicurezza richiesti per l'autenticazione, l'autorizzazione e il codice di accesso ai dati | | Sviluppo \| Analisi codice | ✅ Proteggere gli standard di codifica applicati tramite linter e analisi statica | | Sviluppo \| Dipendenze | ✅ Scansione della vulnerabilità delle dipendenze eseguita su ogni conferma | | Sviluppo \| Test | ✅ Scope del test di penetrazione include nuove funzionalità prima del rilascio di GA | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Sviluppo \| Test | ⚠️ Test di sicurezza rinviati alla revisione manuale prima del rilascio | | Sviluppo \| Formazione | ⚠️ Formazione sulla sicurezza condotta una sola volta durante l’orientamento | | Sviluppo \| Revisione codice | ⚠️ Il team di sicurezza esamina il codice dopo l'unione | | Sviluppo \| Design | ⚠️ Modelli di minaccia non aggiornati quando cambia l'architettura | | Sviluppo \| Controllo sorgente | ⚠️ Scansione segreta disabilitata per ridurre i falsi positivi | | Sviluppo \| CI/CD | ⚠️ Risultati di sicurezza ignorati quando incombono le scadenze di rilascio | ## Top 10 OWASP per Salesforce **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Iniezione | ✅ Le query SOQL utilizzano variabili di collegamento per impedire l'iniezione | | Iniezione | ✅ Input utente convalidato e disinfettato prima dell'uso in SOQL, SOSL o query dinamiche | | Iniezione | ✅ SOQL dinamico limitato solo agli input affidabili | | Controllo dell'accesso | ✅ autorizzazioni CRUD e FLS applicate utilizzando Security.stripInaccessible() | | XSS | ✅ Componenti Lightning escape di contenuti generati dagli utenti nel rendering dell'interfaccia utente | | Iniezione | ✅ Le integrazioni API esterne convalidano e sanificano tutti gli input | | Controllo dell'accesso | ✅ Accesso degli utenti guest ridotto e fortemente limitato | | Autenticazione | ✅ credenziali denominate utilizzate per l'autenticazione esterna (non credenziali codificate) | | Autenticazione | ✅ flussi OAuth 2.0 implementati correttamente con PKCE | | Gestione sessioni | ✅ Le policy di sicurezza delle sessioni impongono restrizioni di timeout e IP | | Configurazione | ✅ Controllo dello stato della sicurezza rivisto trimestralmente e rimediato ai risultati ad alto rischio | | Controllo dell'accesso | ✅ metadati personalizzati e autorizzazioni controllati per evitare privilegi eccessivi | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Iniezione | ⚠️ Query SOQL create utilizzando la concatenazione di stringhe con l'input dell'utente | | Controllo dell'accesso | ⚠️ Profili utente guest con autorizzazioni Crea, Aggiorna o Elimina | | XSS | ⚠️ I componenti Lightning utilizzano espressioni senza escape nei modelli | | Autenticazione | ⚠️ Le integrazioni esterne utilizzano credenziali codificate nel codice | | Registrazione | ⚠️ I registri debug contengono dati sensibili come password o informazioni personali | | Controllo dell'accesso | ⚠️ Controlli FLS e CRUD omessi perché "controlliamo tutti gli utenti" | | Configurazione | ⚠️ Risultati del controllo dello stato della sicurezza ignorati o rinviati a tempo indeterminato | ## Progettazione sicura delle opportunità in corso di realizzazione **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Pipeline \| Controllo sorgente | ✅ Le regole di protezione delle filiali impongono revisioni e controlli dello stato richiesti | | In corso di realizzazione \| Access Control | ✅ Le opportunità in corso di realizzazione utilizzano account di servizio con autorizzazioni minime richieste | | In corso di realizzazione \| Segreti | ✅ Segreti memorizzati in caveau protetti (mai nel controllo sorgente o variabili di ambiente) | | In corso di realizzazione \| Distribuzione | ✅ Le distribuzioni di produzione richiedono il cancello di approvazione manuale da parte del personale autorizzato | | In corso di realizzazione \| Controllo | ✅ I registri di distribuzione acquisiscono chi ha distribuito cosa quando con gli itinerari di approvazione | | In corso di realizzazione \| Convalida | ✅ La convalida pre-distribuzione include analisi della sicurezza e controlli di conformità | | In corso di realizzazione \| Access Control | ✅ Autenticazione a più fattori richiesta per l'accesso amministrativo alle opportunità in corso di realizzazione | | Pipeline \| Monitoraggio | ✅ Le modifiche alla configurazione delle opportunità in corso di realizzazione attivano le notifiche del team di sicurezza | | In corso di realizzazione \| Convalida | ✅ La convalida post-distribuzione automatica conferma l'attivazione dei controlli di sicurezza previsti | | Pipeline \| Dipendenze | ✅ Aggiornamenti delle dipendenze valutati per l'impatto sulla sicurezza prima della distribuzione | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | In corso di realizzazione \| Segreti | ⚠️ Segreti confermati per il controllo delle versioni (anche se successivamente rimossi) | | Pipeline \| Controllo sorgente | ⚠️ Chiunque può unire al branch principale / produzione senza revisione | | In corso di realizzazione \| Access Control | ⚠️ Pipeline di distribuzione eseguite con autorizzazioni a livello di amministratore | | In corso di realizzazione \| Distribuzione | ⚠️ Implementazioni di produzione completamente automatizzate senza porte di approvazione | | In corso di realizzazione \| Controllo | ⚠️ I registri di distribuzione non acquisiscono chi ha avviato o approvato le modifiche | | In corso di realizzazione \| Convalida | ⚠️ Scansioni di sicurezza non riuscite ignorate o ignorate per rispettare le scadenze | | Pipeline \| Monitoraggio | ⚠️ Modifiche alla configurazione delle opportunità in corso di realizzazione non tracciate o riviste | | In corso di realizzazione \| Convalida | ⚠️ La convalida post-distribuzione verifica solo la correttezza funzionale | ## Strategia di test di sicurezza **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Test \| Analisi statica | ✅ Salesforce Code Analyzer eseguito nelle IDE sviluppatore per un feedback immediato e nelle pipeline CI/CD come porte automatiche | | Test \| Test di penetrazione | ✅ Test di penetrazione condotti per applicazioni personalizzate esposte a utenti non affidabili, in particolare siti Experience Cloud e API rivolte al pubblico | | Test \| Test di unità | ✅ I test di unità Apex incentrati sulla sicurezza vengono eseguiti come utenti con profili di autorizzazioni diversi | | Test \| Dipendenze | ✅ Scansione delle dipendenze monitora i pacchetti AgentExchange e le librerie JavaScript per rilevare vulnerabilità note | | Test \| Controllo di sicurezza | ✅ Rapporto di analisi statica preparato per ogni invio AppExchange o AgentExchange Security Review | | Test \| Controllo di sicurezza | ✅ Rapporto di scansione dinamica (test di penetrazione) preparato quando una soluzione integra un'applicazione o un servizio Web di terze parti | | Test \| Dipendenze | ✅ Avvisi di sicurezza per i pacchetti installati abbonati e monitorati | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Test \| Copertura | ⚠️ I test di sicurezza si basano su una singola tecnica, ad esempio solo l'analisi statica | | Test \| Test di unità | ⚠️ I test Apex convalidano il comportamento funzionale ma non vengono mai eseguiti come utenti con privilegi inferiori | | Test \| Controllo di sicurezza | ⚠️ Invio AppExchange o AgentExchange preparato senza l'analisi statica o i rapporti di scansione dinamici richiesti | | Test \| Test di penetrazione | ⚠️ Test di penetrazione ignorati per i siti Experience Cloud rivolti al pubblico e le API | ## Schemi correlati Vedere anche: - [Conformità e schemi normativi](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/trust-compliance-patterns.md) — Governance della piattaforma e controlli di controllo - [Schemi di gestione](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/trust-identity-access-patterns.md) dell'identità e dell'accesso — Autenticazione e autorizzazione - [Schemi di risposta](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/trust-incident-response-patterns.md) agli incidenti: rilevamento e risposta agli eventi di sicurezza - [Schemi agente](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/trust-agentic-patterns.md): controlli di sicurezza specifici dell'agente # Disponibilità e modelli di prestazioni
Ulteriori informazioni su [Affidabilità](/docs/architect/it-it/well-architected/guide/reliability.html) ben progettata → [Architettura High Availability](/docs/architect/it-it/well-architected/guide/reliability.html#high-availability-architecture) ## Obiettivi del livello di servizio (SLO) **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Analisi dell'impatto aziendale | ✅ SLO definiti per funzionalità aziendale (ad esempio, "Flusso di chiusura opportunità: Disponibilità 99,9%, latenza p95 inferiore a 2 secondi") anziché per componente tecnico | | Documentazione del flusso utente | ✅ Ogni flusso utente critico ha uno SLO misurabile che copre la disponibilità, la latenza, la produttività, la percentuale di errore e il tempo di ripristino legato all'esperienza utente effettiva | | Record decisioni architettura | ✅ Obiettivi di disponibilità basati sull'analisi dell'impatto del tempo di inattività aziendale con logica documentata (ad esempio, rapporti batch interni 99% vs elaborazione ordini critici per il reddito 99,95%) | | Specifiche SLO | ✅ Obiettivi realistici considerando la complessità dell'architettura (99% = funzionalità standard della piattaforma, 99,5% = ridondanza di base e monitoraggio attivo, 99,9% = consapevolezza multi-regione e failover automatico, 99,95% = schemi attivi e test caos, 99,99% = architettura multi-organizzazioni) | | Documentazione della piattaforma | ✅ SLO della soluzione meno rigorosi degli SLA della piattaforma (ad esempio, SLA della piattaforma 99,9% → SLO della soluzione 99,5%) che forniscono un budget di errore per gli errori a livello di applicazione | | Configurazione di monitoraggio | ✅ Indicatori del livello di servizio (SLI) misurabili oggettivamente tramite la strumentazione della piattaforma: tempo di attività Trust.salesforce.com, analisi Experience Cloud, tempo di risposta API Monitoraggio evento, completamento del processo AsyncApex | | Metriche dell'esperienza utente | ✅ Gli SLO riflettono i journey utente completi (ad esempio, "Flusso di invio caso: tutti e 5 i passaggi vengono completati entro 8 secondi per gli utenti p95") non il tempo di attività API individuale | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Documentazione sull'architettura | ⚠️ "Il sistema deve essere veloce e affidabile" (non misurabile, non determina decisioni sull'architettura) | | Specifiche SLO | ⚠️ "Tutto ha bisogno di un tempo di attività del 99,999%" (costo ingiustificato che ignora le differenze di criticità aziendale tra operazioni di reddito e strumenti di amministrazione interni) | | Strategia di monitoraggio | ⚠️ Monitoraggio della CPU dell'infrastruttura come SLI principale (gli architetti delle metriche della piattaforma non possono agire, non riflettendo l'esperienza rivolta agli utenti) | | Pianificazione della capacità della piattaforma | ⚠️ Solution SLO corrisponde esattamente a SLA piattaforma al 99,9% (nessun budget di errore per problemi a livello di applicazione, errori di integrazione o manutenzione pianificata) | | Documentazione SLO | ⚠️ SLO definiti per componente tecnico anziché per capacità aziendale rivolta agli utenti (disponibilità dei componenti necessaria ma insufficiente per l'affidabilità dell'esperienza utente) | ## Architettura ad alta disponibilità **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Strategia di distribuzione regionale | ✅ La distribuzione a regione singola con ridondanza Hyperforce gestita dalla piattaforma (più zone di disponibilità, failover automatico dell'infrastruttura) offre uno SLO del 99,9% per la maggior parte delle soluzioni | | Architettura multi-organizzazioni | ✅ Modelli multi-organizzazioni solo quando il business richiede un RPO/RTO garantito oltre le funzionalità della piattaforma, l'isolamento dei dati geografici normativi o la completa indipendenza regionale (attivo-passivo o attivo-attivo con sincronizzazione dei dati) | | Replica dei dati | ✅ Acquisizione dati di modifica per i dati critici (RPO quasi in tempo reale, minuti), Eventi piattaforma per eventi aziendali quasi in tempo reale, estrazione API in blocco 2.0 pianificata per i dati di riferimento (RPO 24 ore) | | Monitoraggio dello stato della piattaforma | ✅ Abbonamento alle notifiche di stato Trust.salesforce.com e alle API di stato specifiche dell'istanza che consentono una risposta proattiva a incidenti, finestre di manutenzione e impatti sulle prestazioni | | Gestione dinamica del carico | ✅ Le soluzioni rispondono allo stato di salute della piattaforma riducendo l'elaborazione batch non critica durante il degrado, rinviando i processi in background durante le finestre di manutenzione | | Utilizzo di Scale Center | ✅ Revisione settimanale del Centro scala identifica le transazioni e le operazioni di lunga durata che consumano risorse sproporzionate, abilitando la riparazione architettonica prima dell'impatto dell'utente | | Livelli di rilevamento errori | ✅ Rilevamento a più livelli: errori della piattaforma tramite l'API di stato, errori di integrazione tramite il monitoraggio del timeout, errori delle applicazioni tramite la registrazione delle eccezioni, deterioramento delle prestazioni tramite percentili di latenza, avvisi sulla capacità tramite Proactive Monitoring | | Soglie di avviso | ✅ Gli avvisi vengono attivati in caso di schemi di tasso di errore (ad esempio, 5 timeout API in 60 secondi) o di degrado prolungato, non di errori isolati normali nei sistemi distribuiti | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Progettazione multi-organizzazioni | ⚠️ Architettura multi-organizzazioni implementata "solo in caso" senza requisiti aziendali documentati che giustifichino la complessità operativa della sincronizzazione dei dati, del provisioning utente e del coordinamento della distribuzione | | Monitoraggio dello stato della piattaforma | ⚠️ Ignorare le notifiche di stato Trust.salesforce.com, scoprire le finestre di manutenzione quando gli utenti segnalano errori (risposta reattiva anziché proattiva) | | Rilevamento errori | ⚠️ Avviso su ogni singolo errore indipendentemente dalla frequenza (genera affaticamento avviso oscurando i segnali critici); timeout API singolo attiva page-out (reazione eccessiva al normale comportamento del sistema distribuito) | | Replica dei dati | ⚠️ Nessun monitoraggio specifico dell'integrazione, scopri solo gli errori di integrazione quando gli utenti segnalano operazioni bloccate (manca visibilità sullo stato del sistema esterno) | | Strategia di ridondanza | ⚠️ Chiamata sincrona al servizio di arricchimento esterno senza timeout o fallback (utente bloccato quando il servizio esterno è lento o non disponibile) | ## Ottimizzazione della latenza **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Monitoraggio utente reale (RUM) | ✅ Latenza utente effettiva misurata tramite analisi Experience Cloud o strumentazione personalizzata che riflette le condizioni di rete reali, le prestazioni del dispositivo, la distribuzione geografica | | Monitoraggio sintetico | ✅ transazioni automatiche da più posizioni che convalidano la disponibilità e le prestazioni prima che gli utenti segnalino problemi (ad esempio, invio di ordini ogni 15 minuti da 3 regioni) | | Tracciamento delle transazioni | ✅ Operazioni a più fasi strumentate con tempistiche per fase che identificano i colli di bottiglia (ad esempio, la chiamata di convalida indirizzo fase 3 rappresenta il 70% della latenza totale) | | Ottimizzazione delle query | ✅ Query selettive con filtri indicizzati, query di relazione che riducono i viaggi di andata e ritorno, considerazione dell'ottimizzazione delle query con volumi di dati su scala di produzione (il comportamento cambia drasticamente con più di 10 milioni di record) | | Utilizzo della cache piattaforma | ✅ Partizioni cache di sessioni o organizzazioni che servono dati di riferimento accessibili di frequente, precompilati durante le operazioni riuscite che forniscono dati non aggiornati ma disponibili quando l'API in tempo reale non è disponibile | | Configurazione timeout | ✅ chiamate sincrone indirizzate all'utente 5-10 secondi (interfaccia utente reattiva), chiamate asincrone in background 30-60 secondi (prestazioni esterne variabili), elaborazione batch 120 secondi (nessuna attesa utente); totale budget in più chiamate per transazione | | Monitoraggio della latenza di integrazione | ✅ percentili di latenza p50/p95/p99 per integrazione con SLO per endpoint; le anomalie di latenza (tempi di risposta in fluttuazione verso l'alto) indicano la saturazione della capacità prima del guasto completo | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Strategia di monitoraggio | ⚠️ Monitorare solo le metriche dell'infrastruttura (CPU server, larghezza di banda di rete) senza misurazione del flusso indirizzata all'utente (le metriche non riflettono l'esperienza utente effettiva) | | Strategia cache | ⚠️ Nessun utilizzo della cache piattaforma per i dati di riferimento consultati di frequente (query ripetute per gli stessi dati che aumentano la latenza e consumano limiti SOQL) | | Configurazione timeout | ⚠️ Chiamata del flusso sincrono con timeout di 120 secondi che causa all'utente di fissare il filatore di caricamento per 2 minuti (dovrebbe utilizzare il timeout di 5-10 secondi con fallback) | | Test delle prestazioni | ⚠️ Test su piccola scala con volumi di dati minimi (il comportamento dell'ottimizzazione delle query cambia drasticamente a più di 10 milioni di record rendendo i risultati su piccola scala fuorvianti) | | Progettazione dell'integrazione | ⚠️ Nessun tracciamento a livello di transazione dei flussi di lavoro a più fasi (fase collo di bottiglia invisibile nelle metriche aggregate) | ## Gestione della produttività **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Schemi di scala orizzontale | ✅ Carico di lavoro distribuito su più risorse: l'elaborazione in blocco elabora più record per transazione, l'elaborazione asincrona distribuisce il lavoro nel tempo, il partizionamento dei dati distribuisce il carico oltre i confini | | Configurazione di elaborazione batch | ✅ Dimensioni ottimali del batch che bilanciano la produttività e i limiti del governor (2.000 record per esecuzione Batch Apex, 200 record per chiamata trigger, 25 richieste per chiamata API composita) | | Gestione dei tassi API | ✅ Il batching e il caching dell'integrazione riducono il consumo dell'API, monitorano l'allocazione API 24 ore su 24 in base alla versione, la pianificazione della capacità aggiunge licenze o limita gli aumenti prima dell'esaurimento | | Esecuzione simultanea | ✅ Processi batch paralleli per i dati partizionati (5 batch di roll-up regionali in esecuzione simultanea), abbonati Evento piattaforma che elaborano stream contemporaneamente | | Monitoraggio della profondità dell'area di attesa | ✅ Per le integrazioni asincrone, le tendenze della profondità dell'area di attesa indicano che l'elaborazione è in ritardo rispetto al tasso di produzione che richiede l'aumento della capacità o l'ottimizzazione della produttività | | Rilevamento anomalia volume | ✅ I volumi delle transazioni significativamente superiori/inferiori agli schemi previsti possono indicare processi in fuga che richiedono indagini e limitazioni | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Elaborazione in batch | ⚠️ Elaborare tutti i record in sequenza quando il volume di dati richiede l'esecuzione parallela partizionata (il partizionamento basato sulla data, sul tipo di record o sul titolare abilita l'elaborazione simultanea) | | Consumo API | ⚠️ Lo schema di integrazione aggiunge il 25% di consumo API senza pianificazione della capacità (gli errori "limite API superato" improvvisi influiscono sugli utenti) | | Monitoraggio dell'area di attesa | ⚠️ Nessun monitoraggio della profondità dell'area di attesa di integrazione asincrona (l'elaborazione rimane indietro rispetto al tasso di produzione senza visibilità) | | Gestione dei limiti governor | ⚠️ Operazioni sincrone che elaborano grandi volumi che raggiungono le dimensioni dell'heap o i limiti di tempo della CPU (dovrebbe passare all'elaborazione asincrona con limiti dedicati) | ## Mitigazione degli errori **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Gerarchia delle criticità delle funzioni | ✅ Livelli definiti: Critico (reddito/conformità, mai degradato), Importante (flussi di lavoro principali, deteriorato solo durante incidenti gravi), Supportante (esperienza ottimizzata, disabilitato durante l'errore di integrazione), Facoltativo (bello da avere, disabilitato durante carichi elevati) | | Implementazione dell'interruttore | ✅ Stati dei circuiti (Chiuso = normale, Aperto = non riesce subito dopo la soglia, Mezzo aperto = sonda di ripristino); Cache piattaforma memorizza lo stato, Eventi piattaforma trasmette modifiche; apre dopo errori consecutivi (ad esempio, 10 errori) | | Riprova logica | ✅ Backoff esponenziale per errori temporanei (1s, 2s, 4s, 8s, limite a 30-60s); riprovare i timeout di rete e gli errori 5xx con backoff, riprovare i limiti di traffico 429 dopo l'intestazione Retry-After; non riprovare mai gli errori client 4xx o gli errori limite governor nella stessa transazione | | Strategie di fallback | ✅ Fonti di dati alternative (cache piattaforma quando l'API in tempo reale non è disponibile), comportamento predefinito (regole standard quando il servizio di personalizzazione non è disponibile), processo manuale (interfaccia di amministrazione per le transazioni bloccate), area di attesa per riprovare (Eventi piattaforma con replay di 72 ore) | | Architettura di gestione degli errori | ✅ fallire velocemente (convalidare gli input all'ingresso), fallire in modo grazioso (elaborare 197 di 200 record quando 3 non convalidano), fallire in modo informativo (registrare con ID transazione, contesto utente, traccia dello stack), fallire in modo sicuro (ritirare transazioni parziali, non esporre mai gli elementi interni agli utenti) | | Automazione del ripristino | ✅ Il monitoraggio della piattaforma attiva il ripristino automatico: meccanismi di nuovo tentativo asincroni, aree di attesa senza risposta per elaborazione non riuscita, flussi di lavoro di autoguarigione che consentono un ripristino rapido senza intervento manuale | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Dipendenza di integrazione | ⚠️ L'invio dell'ordine non riesce completamente quando il servizio di convalida dell'indirizzo esterno non funziona (flusso critico bloccato dalla funzione di supporto; dovrebbe degradarsi con grazia con la revisione manuale) | | Strategia dell'interruttore | ⚠️ Nessun interruttore su chiamata esterna che causa ogni transazione di attendere 120 secondi per il timeout quando il sistema esterno è inattivo (tutti gli utenti interessati da un'integrazione non riuscita) | | Riprova logica | ⚠️ Riprova errore superato limite CPU Apex immediatamente nello stesso contesto della transazione (fallirà di nuovo; dovrebbe ripetere l'area di attesa come operazione asincrona con limiti dedicati) | | Riprova logica | ⚠️ Riprova indefinitamente fino al successo (rischio di loop infinito, la transazione non viene mai completata; dovrebbe limitare il numero massimo di tentativi di nuovo tentativo) | | Gestione degli errori | ⚠️ Eccezione di blocco Prova-cattura ingoia senza registrazione (errore invisibile agli operatori che impedisce la diagnosi e la riparazione) | | Gestione degli errori | ⚠️ Visualizza la traccia dello stack per l'utente finale nella pagina Lightning (rischio di sicurezza che rivela i dettagli dell'implementazione, scarsa esperienza utente) | | Strategia di fallback | ⚠️ Il servizio di calcolo delle imposte non riesce a bloccare tutti gli invii di ordini (funzionalità critica senza fallback; dovrebbe attendere l'elaborazione manuale o utilizzare le tariffe predefinite) | ## Proactive Monitoring **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Modellazione della salute | ✅ stato di salute aggregato: Salute dell'assistenza (percentuale di successo delle transazioni >99,5% verde, 98-99,5% giallo, <98% rosso), Salute dell'integrazione (verde tutto rispondente, giallo degradato, rosso aperto interruttore), Salute dei dati (verde corrente di sincronizzazione, dietro giallo, rosso obsoleto/non riuscito), Salute della capacità (<70% verde, 70-85% giallo, >85% rosso) | | Monitoraggio evento | ✅ oggetti EventLogFile con consegna 24h/1h instradata a SIEM esterno per la conservazione oltre i limiti di conservazione nativi; acquisisce chiamate API, visualizzazioni pagina, esportazioni di rapporti, attività di accesso, esecuzione Apex | | Avvisi di Proactive Monitoring | ✅ Picchi di limite delle richieste API (indagine sui trigger di soglia del 75%), errori di esecuzione Apex simultanei, problemi di limite delle righe SOQL, tendenze del consumo di memoria | | Cruscotto digitale di integrità integrazione | ✅ Metriche per integrazione: tasso di errore (target <1%), latenza p50/p95/p99 con SLO, tasso di timeout (target <0,1%), stato dell'interruttore, profondità dell'area di attesa asincrona; registri strutturati con ID richiesta, endpoint, codice risposta, durata | | Progettazione di avvisi fruibili | ✅ Ogni avviso definisce chi risponde, cosa controlla, come corregge; include la soglia superata, il valore corrente, il trend recente, il link al cruscotto digitale, il link al runbook; la gravità corrisponde all'urgenza (pagine CRITICHE su richiesta per l'impatto degli utenti, email di ATTENZIONE per le preoccupazioni di tendenza) | | Rilevamento dell'anomalia | ✅ anomalie del volume (300% del carico tipico), anomalie del tasso di errore (2% vs 0,5% tipico anche se al di sotto della soglia del 5%), fluttuazione della latenza (tendenza graduale verso l'alto), anomalie comportamentali (schemi di accesso insoliti, processi batch fuori programma); utilizzato per guidare l'indagine non attivare l'inoltro immediato al livello superiore | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Monitoraggio evento | ⚠️ Monitoraggio evento abilitato ma mai esportato (conservazione nativa insufficiente per l'analisi del trend, dati storici persi) | | Progettazione avviso | ⚠️ Messaggio di avviso "Si è verificato un errore" senza contesto, soglia o azione di risposta (genera affaticamento avviso, gli operatori non possono eseguire il triage in modo efficace) | | Gravità avviso | ⚠️ Considerare tutte le anomalie come avvisi critici (l'alto tasso di falsi positivi crea affaticamento degli avvisi causando la perdita di avvisi critici) | | Monitoraggio sanitario | ⚠️ Nessun modello sanitario aggregato, gli operatori sovraccaricati da singole metriche tecniche che mancano di schemi tra sistemi | | Monitoraggio dell'integrazione | ⚠️ Nessun tasso di errore specifico dell'integrazione, latenza o tracciamento dello stato dell'interruttore (errori di integrazione rilevati in modo reattivo tramite i rapporti utente) | | Monitoraggio della capacità | ⚠️ Nessuna revisione Proactive Monitoring o Scale Center (i rischi di affidabilità derivanti da transazioni che richiedono molte risorse non vengono rilevati fino all'impatto sulla produzione) | --- Per esempi in linea e istruzioni dettagliate, vedere il [pilastro Affidabilità](/docs/architect/it-it/well-architected/guide/reliability.html) o sfogliare l'Explorer [schemi e antischemi](/docs/architect/it-it/well-architected/guide/patterns-and-anti-patterns.html). # Eccellenza operativa Eccellenza operativa ## Panoramica Le grandi soluzioni Salesforce non si creano una volta sola, ma si perfezionano continuamente. Integrare l'eccellenza operativa nei propri sistemi monitorando le prestazioni delle soluzioni e perfezionandone il funzionamento, in modo che forniscano valore aziendale in modo prevedibile e si riprendano rapidamente quando qualcosa si rompe. Trascurare l'eccellenza operativa ha conseguenze prevedibili sulle soluzioni. I processi di distribuzione manuali diventano colli di bottiglia che rallentano la consegna delle funzioni e aumentano il rischio di errori. Un monitoraggio inadeguato ritarda il rilevamento degli incidenti fino a quando gli utenti non segnalano i problemi, estendendo la durata dell'impatto ed erodendo Trust. La mancanza di automazione richiede che i team operativi crescano in proporzione alla complessità delle soluzioni, creando traiettorie di costo insostenibili. Un processo batch mal monitorato che non riesce può danneggiare i dati o i processi a valle prima che qualcuno se ne accorga. Le soluzioni progettate per l'eccellenza operativa consentono ai team di osservare il comportamento del sistema attraverso un monitoraggio completo, distribuire le modifiche in modo sicuro utilizzando opportunità in corso di realizzazione automatiche, rispondere efficacemente agli incidenti con procedure predefinite e imparare dall'esperienza operativa attraverso revisioni senza colpe. Queste funzionalità si aggiungono nel tempo. I team che investono precocemente nelle basi operative offrono le funzionalità in modo più rapido e affidabile rispetto ai team che rinviano le preoccupazioni operative fino a quando problemi di produzione costringono a investire in modo reattivo. L'eccellenza operativa si collega direttamente ad altri pilastri architettonici. L'[affidabilità](/docs/architect/it-it/well-architected/guide/reliability.html) dipende dal monitoraggio che rileva gli errori e dall'automazione che consente un ripristino rapido. [Trust](/docs/architect/it-it/well-architected/guide/trust.html) richiede procedure sicure per il ciclo di vita dello sviluppo e percorsi di controllo per le modifiche operative. L'ottimizzazione delle risorse beneficia di un miglioramento continuo informato dalla telemetria operativa. L'ottimizzazione dei costi richiede efficienza di distribuzione e un'automazione che impedisce l'aumento delle spese operative. Insieme, questi pilastri creano soluzioni che offrono un valore aziendale costante con investimenti operativi sostenibili. Salesforce gestisce l'infrastruttura: i server, il database, il runtime e la rete. Quello che si opera è tutto ciò che si basa su di esso: i metadati che definiscono la soluzione, la configurazione che ne regola il comportamento, i dati che vi fluiscono, le integrazioni che la connettono e gli agenti che agiscono al suo interno. Questa divisione di responsabilità definisce ogni decisione operativa che si prende. Salesforce garantisce che la piattaforma sia disponibile, performante e sicura, ma è necessario progettare soluzioni osservabili, distribuibili, automatizzabili e recuperabili. L'architettura multi-tenant della piattaforma indica che i problemi operativi nella soluzione possono attivare limiti del governor che non superano le singole transazioni e blocchi delle righe o contese delle risorse che si verificano in tutta l'organizzazione. Non è possibile eseguire operazioni successive sull'osservabilità, la sicurezza della distribuzione o la preparazione agli incidenti senza ulteriore impegno o rielaborazione. Questa guida spiega come progettare e implementare le procedure operative (monitoraggio, automazione della distribuzione, risposta agli incidenti e miglioramento continuo) che trasformano le soluzioni Salesforce in sistemi affidabili e sostenibili. ## Principi di progettazione Utilizzare questi principi per guidare le decisioni relative all'architettura per l'eccellenza operativa sulla piattaforma. - **Evolvere con osservabilità.** Progettare un'osservabilità completa dalla versione iniziale anziché adattare la strumentazione in modo reattivo quando emergono problemi. I sistemi osservabili rivelano come si comportano effettivamente in condizioni reali, consentendo miglioramenti dell'architettura basati sui dati e una diagnosi rapida dei problemi. L'osservabilità è una preoccupazione architettonica che definisce la progettazione delle soluzioni fin dall'inizio: le decisioni relative a strumentazione, monitoraggio e raccolta telemetrica influiscono su modelli di dati, schemi di integrazione e confini dei componenti. - **Standardizzare le procedure operative.** Configurazione della versione e procedure operative nel controllo sorgente insieme al codice dell'applicazione. Le operazioni codificate abilitano le distribuzioni automatiche di Salesforce DX, l'automazione degli aggiornamenti Sandbox e le distribuzioni di metadati che vengono eseguite in modo coerente in tutti gli ambienti. Tribal Knowledge sulla configurazione dell'organizzazione si trasforma in script eseguibili che possono essere eseguiti da qualsiasi membro del team. Quando le procedure sono attive nel controllo di versione, evolvono attraverso gli stessi cicli di revisione e miglioramento delle funzioni dell'applicazione, creando schemi operativi riproducibili che riducono in modo significativo la fluttuazione della configurazione. Implementare un centro di eccellenza. - **Abbracciare una cultura DevOps.** Suddividere i silos organizzativi tra team di sviluppo, operativi e aziendali. La condivisione delle responsabilità per i risultati delle soluzioni sostituisce il gettare il lavoro oltre i muri. La cultura DevOps riduce gli attriti, accelera i cicli di feedback e crea responsabilità per l'impatto operativo. Gli architetti abilitano DevOps attraverso scelte tecnologiche che supportano la collaborazione e attraverso la promozione organizzativa che rimuove le barriere strutturali alla condivisione delle responsabilità. - **Automatizzare per l'efficienza.** Automatizzare le operazioni operative ripetitive per eliminare il lavoro manuale, ridurre gli errori umani e consentire la scalabilità delle operazioni ottimizzando i costi e l'utilizzo delle risorse. Le operazioni manuali ripetute di frequente sono buone candidate per l'automazione. Misurare il valore dell'automazione in base alle ore risparmiate, alla riduzione degli errori e alla capacità operativa creata. - **Impara da tutti gli eventi operativi.** Estrarre l'apprendimento organizzativo da incidenti, anomalie delle prestazioni, quasi mancanze e operazioni riuscite. Le automazioni post mortem senza colpa si concentrano sui miglioramenti del sistema piuttosto che sulla colpa individuale, creando sicurezza psicologica per una valutazione onesta. La telemetria operativa rivela gli schemi tra gli incidenti consentendo una prevenzione proattiva. La cultura dell'apprendimento trasforma l'esperienza operativa in capacità organizzativa che aumenta nel tempo. ## Operazioni piattaforma: Funzioni gestite da Salesforce Capire che cosa funziona Salesforce aiuta a concentrare le attività di progettazione operativa sugli elementi che si controllano. La piattaforma gestisce i problemi infrastrutturali che richiederebbero team dedicati negli ambienti IT tradizionali: - **Affidabilità e prestazioni dell'infrastruttura:** Salesforce monitora e gestisce la capacità del server, le prestazioni del database, la disponibilità della rete e i sistemi di archiviazione in tutte le istanze. Lo stato della piattaforma viene visualizzato all'indirizzo [status.salesforce.com](http://status.salesforce.com) con aggiornamenti degli incidenti in tempo reale e finestre di manutenzione pianificata. - **Aggiornamenti e patch della piattaforma:** Tre rilasci principali all'anno (primavera, estate, inverno) offrono nuove funzioni, patch di sicurezza e miglioramenti delle prestazioni. Salesforce gestisce i tempi di rilascio, il supporto e la deprecazione delle versioni API e la gestione delle modifiche per le modifiche a livello di piattaforma. Testare la soluzione in base ai rilasci negli ambienti Sandbox prima della distribuzione in produzione. - **Gestione delle risorse multi-tenant:** Esistono limiti del governor per mantenere equa l'infrastruttura condivisa: poiché si utilizzano le stesse risorse degli altri clienti, Salesforce impone limiti a elementi come il tempo CPU, le dimensioni dell'heap, le query SOQL (Salesforce Object Query Language), le istruzioni DML (Data Manipulation Language) e le chiamate API in modo che nessun tenant singolo possa consumare eccessivamente la capacità. Mentre Salesforce tiene traccia dell'utilizzo complessivo e consente ai clienti di richiedere allocazioni più elevate per alcuni limiti (ad esempio le chiamate API) tramite i livelli di licenza, i limiti del governor Apex per transazione vengono fissati e applicati allo stesso modo per tutti. - **Operazioni di sicurezza della piattaforma principali:** I team di sicurezza Salesforce monitorano le minacce, gestiscono la divulgazione delle vulnerabilità e le patch, gestiscono le certificazioni di sicurezza e rispondono agli incidenti di sicurezza a livello di piattaforma. Questa protezione di base crea la base di riferimento su cui creare controlli di sicurezza specifici della soluzione. - **Ripristino di emergenza e continuità operativa:** Salesforce gestisce data center distribuiti geograficamente, testa le procedure di ripristino di emergenza e gestisce sistemi ridondanti che abilitano il failover senza intervento del cliente. Il ripristino a livello di piattaforma avviene in modo trasparente durante i guasti dell'infrastruttura. Queste operazioni della piattaforma creano le basi su cui costruire. Non eseguire il provisioning di server, patchare database o progettare il ripristino di emergenza per l'infrastruttura. Tuttavia, si rimane responsabili di tutto ciò che si crea e si configura sulla base di questa base. ## Operazioni di soluzione: Elementi progettati e gestiti Il modello di responsabilità condivisa significa che si possiede l'eccellenza operativa per tutto ciò che si crea in Salesforce. Le operazioni piattaforma consentono il lavoro ma non lo sostituiscono. Le responsabilità operative riguardano cinque aree interconnesse: ### Osservabilità e monitoraggio L'osservabilità è la capacità di comprendere lo stato del sistema interno dagli output esterni. Le soluzioni Salesforce osservabili consentono agli operatori di rispondere a domande sul comportamento del sistema, diagnosticare errori e convalidare ipotesi senza distribuire nuova strumentazione per ogni indagine. La distinzione tra monitoraggio (rispondere a domande note con cruscotti digitali predefiniti) e osservabilità (rispondere a domande arbitrarie con telemetria completa) è importante perché i sistemi di produzione generano comportamenti imprevisti che superano quelli previsti durante la progettazione. #### Framework completo di osservabilità Per le soluzioni Salesforce, l'osservabilità si estende su tre tipi di segnali complementari adattati al modello multi-tenant della piattaforma: - **Registri:** acquisire eventi discreti con informazioni contestuali complete. Monitoraggio evento fornisce file registro eventi che acquisiscono chiamate API, eventi di accesso, esecuzione Apex, query SOQL, pagine Visualforce, pagine Lightning ed esecuzioni di rapporti con contesto della richiesta che include identità utente, indicazione oraria, durata ed esito. I registri rispondono a domande come "Quali utenti hanno riscontrato questo errore?" e "Cosa è cambiato tra esecuzioni riuscite e non riuscite?" - **Metriche -** Misure numeriche aggregate nel tempo che rivelano tendenze e schemi. Le metriche includono le percentuali di consumo API, le distribuzioni del tempo CPU Apex, le percentuali di successo dei processi batch, i percentili di latenza di integrazione e le percentuali di completamento dei flussi utente. Le metriche rispondono a domande come "Le prestazioni peggiorano nel tempo?" e "Ci stiamo avvicinando ai limiti imposti dai governatori?" - **Tracce:** mostra i percorsi delle richieste attraverso i sistemi distribuiti che rivelano le fonti di latenza e i punti di errore. Per le soluzioni Salesforce, le tracce possono connettere chiamate API sincrone a catene di elaborazione asincrone, eventi piattaforma a esecuzioni abbonato e richieste di integrazione a risposte di sistema esterne. Le tracce rispondono a domande come "Dove si accumula la latenza in questo flusso?" e "Quale componente non è riuscito in questo processo a più fasi?" Progettazione per l'osservabilità dall'architettura iniziale. Le decisioni sui tipi di evento di Monitoraggio evento da abilitare, su come strutturare i payload Evento piattaforma per la visibilità operativa, su dove posizionare i checkpoint di integrazione e su quale registrazione personalizzata implementare determinano l'operatività a lungo termine della soluzione. Il retrofitting dell'osservabilità nelle soluzioni esistenti richiede modifiche della strumentazione che riguardano la maggior parte dei componenti e rischiano di introdurre bug durante il lavoro di miglioramento operativo. | Fase | Aspetto | Scambi | | :---- | :---- | :---- | | **Ottimizzata**: velocità di consegna elevata con zero sovraccarico di impostazione | Registri di Monitoraggio evento piattaforma standard e registri errori nativi | Si adatta alle implementazioni standard. Man mano che la complessità aumenta, ad esempio le operazioni asincrone o le transazioni in più oggetti, viene impiegato più impegno per unire le informazioni disconnesse. | | **Ottimizzazione su scala**: riconoscimento dello schema, isolamento della soglia ed esecuzione tracciabile | Framework di registrazione personalizzati, inserimento del registro eventi standardizzato nelle visualizzazioni centralizzate e impostazione univoca del meccanismo di correlazione tra eventi piattaforma, payload di integrazione e catene asincrone | Mette in evidenza le tendenze delle prestazioni sistemiche e limita i rischi del governor in modo proattivo e individua il nodo di errore nell'esecuzione in più fasi. Man mano che l'impronta si espande, richiede una disciplina coerente da parte degli sviluppatori per incorporare questi hook in ogni nuovo asset, spostando la larghezza di banda dalla distribuzione delle funzioni. | | **Ottimizzazione della governance**: osservabilità dimostrabile e affidabile oltre i confini | La telemetria viene mantenuta in base a un obbligo definito, controllato dall'accesso e non alterabile, con la residenza dei dati di registro e la correlazione tra organizzazioni preservate oltre i limiti del team e della conformità | Produce una cronologia di grado di controllo e risponde chi ha fatto cosa, quando e chi l'ha visto. Richiede un'orchestrazione continua tra team di progettazione distinti per preservare le chiavi e la conservazione, introducendo un sovraccarico di governance significativo. | #### Funzionalità di monitoraggio piattaforma Salesforce offre funzionalità di monitoraggio appositamente create che gli architetti dovrebbero progettare fin dall'inizio. **Monitoraggio evento** acquisisce dati operativi dettagliati in tutta l'organizzazione. I tipi di evento includono l'utilizzo dell'API, l'attività di accesso, gli eventi di disconnessione, l'esecuzione Apex, le query SOQL, i caricamenti di pagine Visualforce, le visualizzazioni di pagina Lightning, le esecuzioni di rapporti, gli allegati di documenti, i trasferimenti di contenuto e gli eventi personalizzati definiti dall'utente. Monitoraggio evento offre le basi per l'analisi della sicurezza, l'ottimizzazione delle prestazioni, la pianificazione della capacità e la generazione di rapporti sulla conformità. Abilitare Monitoraggio evento per gli ambienti di produzione e stabilire l'esportazione automatica dei file registro eventi in piattaforme di aggregazione esterne. La conservazione nativa è limitata per la maggior parte dei tipi di eventi, insufficiente per l'analisi delle tendenze, la pianificazione della capacità e i requisiti di conformità. L'aggregazione esterna consente l'analisi storica, la correlazione con la telemetria aziendale da altri sistemi, analisi avanzate e periodi di conservazione corrispondenti ai requisiti normativi. **Proactive Monitoring** valuta continuamente i rischi per le prestazioni e la scalabilità dell'organizzazione, avvisando su segnali predefiniti prima che diventino incidenti visibili agli utenti. Proactive Monitoring rileva schemi tra cui picchi di limite delle richieste API che si avvicinano all'allocazione giornaliera, errori di esecuzione Apex simultanei che indicano una disputa sulle risorse condivise, limiti delle righe SOQL che si avvicinano alle soglie del governor e contesa sui blocchi delle righe che suggeriscono miglioramenti della progettazione. Proactive Monitoring utilizza una serie di soglie di avviso e avviso predefinite gestite da Salesforce. Per le organizzazioni che necessitano di una visibilità più approfondita delle prestazioni e desiderano analizzare i valori di riferimento e le tendenze, Scale Center offre analisi dettagliate in fase di esecuzione che coprono i timeout della CPU, la concomitanza e i blocchi delle righe, gli errori dei limiti del governor e le prestazioni del database. **Data Detect** (richiede Salesforce Shield) analizza i campi degli oggetti standard e personalizzati per identificare, classificare e correggere i dati sensibili, ad esempio le informazioni personali, nei campi di testo, RTF e crittografati. Utilizza l'elaborazione nativa della piattaforma con la corrispondenza degli schemi e la regolarità personalizzata per ridurre al minimo i falsi positivi. Eseguire analisi ricorrenti (settimanali o mensili) mirate ai record nuovi o modificati, con l'esclusione dei campi già classificati o deprecati. Utilizzare i risultati per favorire la governance a valle per aggiornare le classificazioni di conformità, applicare Shield Platform Encryption, attivare policy di sicurezza di Monitoraggio evento o applicare il mascheramento dei dati Sandbox. **Scale Center** offre visibilità a livello di transazione sulle operazioni di lunga durata, sugli schemi di produzione, sugli hotspot delle eccezioni e sul consumo limite del governor. Scale Center rivela quali operazioni consumano la maggior parte delle risorse, quali transazioni si avvicinano alle soglie di timeout e dove l'investimento in ottimizzazione produrrebbe il maggiore impatto operativo. Stabilire i valori di riferimento del Centro scala durante la stabilizzazione della soluzione e rivedere i valori di riferimento dopo ogni rilascio principale. Le prestazioni senza contesto sono difficili da interpretare. Il confronto di base rivela se le modifiche hanno migliorato o peggiorato le prestazioni, guidando ulteriori decisioni di ottimizzazione. - **Setup Audit Trail:** tiene traccia delle modifiche alla configurazione, incluse le modifiche delle autorizzazioni, le distribuzioni dei metadati, le azioni amministrative e gli aggiornamenti delle impostazioni di sicurezza con conservazione fino a 180 giorni in modo nativo. L'itinerario di controllo delle impostazioni supporta le indagini di sicurezza, la convalida della conformità e le automazioni post-mortem degli incidenti rivelando chi ha modificato quale configurazione e quando. Esportare le voci dell'itinerario di controllo impostazioni per conservarle oltre i 180 giorni quando i requisiti di conformità o contrattuali richiedono finestre storiche più lunghe. - **Field Audit Trail:** (richiede Salesforce Shield) tiene traccia delle variazioni storiche dei valori dei campi. Abilitare l'itinerario di controllo campi in modo selettivo per i campi contenenti dati sensibili, i dati regolamentati che richiedono la cronologia delle modifiche o i dati aziendali critici in cui la comprensione dei valori storici facilita le operazioni e la generazione di rapporti sulla conformità. - **Controllo dello stato:** fornisce una valutazione automatica della configurazione di sicurezza confrontando le impostazioni correnti con i consigli di base sulla sicurezza di Salesforce. Pianificare revisioni trimestrali del controllo dello stato e rimediare ai risultati in base alla priorità dei rischi per l'ambiente. Non tutti i risultati richiedono una riparazione se esistono controlli compensativi o tolleranze del rischio diverse rispetto alle raccomandazioni predefinite, ma ogni risultato merita una revisione deliberata. #### Monitoraggio delle applicazioni e dell'integrazione Il monitoraggio della piattaforma rivela lo stato a livello di organizzazione ma ignora i problemi specifici dell'applicazione. Monitorare lo stato delle applicazioni dal punto di vista dell'utente strumentando i journey aziendali critici: Definire i processi utente critici in base all'impatto sul business e monitorare le percentuali di successo end-to-end, il tempo di completamento, i punti di abbandono e le percentuali di errore. I flussi critici includono in genere attività generanti reddito (invio di ordini, esecuzione di contratti, chiusura di opportunità), attività a volume elevato (accesso degli utenti, operazioni di ricerca, creazione di record) e attività richieste per la conformità (acquisizione del consenso, evasione dei diritti degli interessati, flussi di lavoro sensibili al controllo). Processi strumentali con indicatori di punti salienti che indicano inizio, completamento, abbandono e fallimento in ogni fase significativa. Avvisa quando le percentuali di successo dei flussi scendono al di sotto delle soglie accettabili o la durata supera gli obiettivi di latenza. Il monitoraggio a livello di processo rivela problemi invisibili nel monitoraggio a livello di componente poiché un journey utente che tocca più classi Apex, diversi flussi, tre eventi piattaforma e due integrazioni esterne può non riuscire in qualsiasi punto di transizione. Monitorare l'integrità dell'integrazione in modo bidirezionale. Tenere traccia delle chiamate in uscita ai sistemi esterni per le percentuali di successo, la latenza, gli schemi di tentativo e i tipi di errore. Tenere traccia delle chiamate in entrata da sistemi esterni per rilevare schemi di volume, errori di autenticazione, errori di convalida dei dati e durata dell'elaborazione. Il monitoraggio dell'integrazione spesso rivela i problemi del sistema esterno prima che gli operatori li rilevino, abilitando l'inoltro al livello superiore proattivo. Stabilire SLA di integrazione con partner esterni e monitorare le prestazioni effettive rispetto agli obiettivi prefissati. Quando si verificano violazioni del contratto sul livello di servizio (SLA), la telemetria distingue se i problemi hanno origine in Salesforce, nel livello di integrazione, nel percorso di rete o nel sistema esterno. Questa distinzione è importante durante l'inoltro degli incidenti al livello superiore e le trattative sui contratti. #### Indicatori e obiettivi del livello di servizio Gli indicatori del livello di servizio (SLI) sono metriche accuratamente selezionate che rappresentano la qualità percepita dagli utenti. Gli obiettivi del livello di servizio (SLO) sono valori target per gli SLI che bilanciano le aspettative degli utenti con gli investimenti operativi. Per le soluzioni Salesforce, gli SLI efficaci includono: - **Disponibilità:** Percentuale di tempo in cui la soluzione risponde correttamente alle richieste degli utenti. Misurare la disponibilità dal punto di vista dell'utente, non dal punto di vista dell'infrastruttura. Una soluzione in cui la piattaforma è disponibile ma gli utenti non possono accedere a causa di una configurazione errata del Single Sign-On (SSO) non è disponibile indipendentemente dal tempo di attività della piattaforma. - **Latenza:** Tempo dall'avvio dell'azione utente alla risposta visibile. Definire obiettivi di latenza a percentili specifici (p50, p90, p99) anziché alle medie, poiché le medie oscurano le esperienze terribili subite dalle richieste più lente. Una latenza p99 di 8 secondi indica che 1 richiesta su 100 richiede più di 8 secondi, il che potrebbe rappresentare migliaia di esperienze negative giornaliere in soluzioni a traffico elevato. - **Percentuale di successo:** Percentuale di operazioni completate senza errori visibili agli utenti. Distinguere tra errori causati dall'utente (input non valido, autorizzazioni insufficienti) ed errori causati dal sistema (errori del limite del governor, timeout di integrazione, eccezioni non gestite). Solo gli errori causati dal sistema vengono conteggiati nei SLO delle percentuali di successo. - **Portata:** Volume di operazioni completate per unità di tempo. La produttività è importante per l'elaborazione batch, le importazioni di dati, i processi pianificati e le operazioni in blocco in cui il rispetto delle scadenze aziendali dipende dalla capacità di elaborazione. Impostare gli SLO in base ai requisiti degli utenti, non alle capacità tecniche. La domanda non è: "Quanto velocemente possiamo farlo?" ma piuttosto: "Quanto velocemente deve essere necessario affinché gli utenti raggiungano i loro obiettivi?" Una destinazione di caricamento pagina di 200 ms è priva di significato se gli utenti possono tollerare due secondi. Al contrario, un target di due secondi non ha senso se gli utenti abbandonano dopo 500ms. La ricerca degli utenti, l'analisi delle sessioni e i requisiti aziendali sono alla base di target SLO realistici. Monitorare la frequenza di combustione SLI per rilevare quando vengono accumulati i budget degli errori di scarico delle violazioni SLO. I budget per gli errori rappresentano percentuali di errore accettabili che bilanciano l'esperienza degli utenti con gli investimenti operativi. Quando la frequenza di combustione supera i livelli sostenibili, interrompere il lavoro delle funzioni e concentrarsi sui miglioramenti dell'affidabilità fino al recupero degli SLO. Questa disciplina evita lo schema comune in cui i team ignorano l'affidabilità degradante mentre inseguono le scadenze delle funzioni fino a quando guasti catastrofici costringono a intervenire in caso di emergenza. #### Architettura di avviso Gli avvisi notificano alle persone quando i sistemi automatici rilevano problemi che richiedono giudizio o azione da parte delle persone. Un avviso efficace bilancia la copertura (rilevando problemi reali) con precisione (evitando falsi allarmi). Un avviso inadeguato può far mancare gli incidenti (pochi avvisi, soglie troppo alte) o creare stanchezza (troppi avvisi, soglie troppo basse) in cui gli operatori imparano a ignorare le notifiche. Progettare avvisi sull'agibilità. Ogni avviso deve rispondere a tre domande: 1. Cosa c'è che non va? 2. Perche' importa? 3. Cosa devo fare? Gli avvisi privi di risposte chiare addestrano gli operatori a ignorarli. Ad esempio, un avviso che indica "Le chiamate API hanno superato l'80% del limite" senza contesto su quale API, quale integrazione o quale azione intraprendere fornisce informazioni insufficienti per la risposta. Implementare livelli di gravità degli avvisi corrispondenti alle procedure di inoltro al livello superiore operativo: - **Avvisi critici:** indicano il degrado del servizio rivolto agli utenti che richiede una risposta immediata indipendentemente dall'ora del giorno. Pagina di avvisi critici tecnici su chiamata. Gli esempi includono errori di accesso che superano la soglia impostata, flussi che generano reddito al di sotto dello SLO di disponibilità o rilevamento di perdite di dati. - **Avvisi di avvertenza:** indicano problemi che diventeranno critici senza intervento ma non interessano ancora gli utenti. Gli avvisi generano ticket per le indagini sull'orario di ufficio. Ad esempio, il consumo API tende verso i limiti giornalieri, i processi batch completati ma mancanti degli obiettivi SLA o gli errori di integrazione in aumento ma ancora al di sotto della soglia di errore. - **Avvisi informativi:** consentono di essere consapevoli delle modifiche operative senza necessità di intervento. Gli avvisi sulle informazioni vengono visualizzati nei cruscotti digitali di monitoraggio ma non generano notifiche. Gli esempi includono distribuzioni riuscite, completamento della manutenzione pianificata o modifiche della configurazione. Stabilire la cadenza di revisione degli avvisi per valutare la qualità degli avvisi e modificare le soglie in base agli schemi di incidente effettivi. Tenere traccia delle metriche degli avvisi, tra cui il tasso di veri positivi (avvisi che indicano problemi effettivi), il tasso di falsi positivi (avvisi in cui non esisteva alcun problema) e il tempo necessario per la risoluzione (la velocità con cui gli avvisi hanno portato alla risoluzione dell'incidente). I tassi di falsi positivi elevati indicano soglie eccessivamente sensibili che richiedono una rettifica per ripristinare il Trust operatore. ### Procedure DevOps La cultura DevOps combina le responsabilità di sviluppo e operative in team unificati che sono titolari dei risultati delle soluzioni dalla conferma iniziale del codice fino al funzionamento di produzione. DevOps consente una consegna più rapida, una qualità superiore e risultati operativi migliori rispetto alle organizzazioni tradizionali in silo in cui gli sviluppatori affidano il lavoro ai team operativi che non hanno il contesto per eseguirlo in modo efficace. | Fase | Aspetto | Scambi | | :---- | :---- | :---- | | **Ottimizzato**: spedizione rapida con costi di pipeline minimi | Metadati controllati dalla fonte distribuiti manualmente tramite l'interfaccia della riga di comando (CLI) o un ambiente/strumento di sviluppo integrato gestito (IDE). La convalida e il ritiro sono manuali, poiché il ritiro è l'annullamento manuale delle modifiche e la ridistribuzione della versione precedente. | Minimo sovraccarico della pipeline e percorso più veloce per la produzione per una piccola superficie. Man mano che il numero di team e componenti aumenta, la distribuzione manuale diventa il collo di bottiglia e la qualità dipende interamente dalla disciplina individuale anziché da un cancello imposto. | | **Ottimizzazione della scala**: modifica ripetibile chiusa a cadenza sicura | Integrazione/distribuzione continua automatizzata. Ogni conferma viene creata e testata in un ambiente fresco, un branch principale protetto blocca l'unione finché non vengono superati i controlli e le modifiche promosse attraverso i livelli Sandbox con convalida prima della produzione. | Modifiche ripetibili con gate a una cadenza di sicurezza più rapida, con regressioni rilevate prima dell'unione. Richiede all'ingegneria di creare e gestire la pipeline, di mantenere le suite di test da cui dipende e di mantenere aggiornati i livelli Sandbox. | | **Ottimizzazione della governance**: rilascio dimostrabile e controllato in tutta l'azienda | Rilascio controllato. Cancelli di approvazione e esposizione progressiva in corso di realizzazione, il cambiamento è regolato in modo coerente in più organizzazioni e sistemi, con ogni distribuzione controllabile e reversibile rispetto a uno standard definito. | Cambiamento dimostrabile, affidabile e reversibile su scala aziendale. Contro l'approvazione e il peso del controllo che rallenta ogni modifica e l'orchestrazione per mantenere coerente la governance del rilascio nelle organizzazioni. | #### Sviluppo basato sulla fonte Lo sviluppo basato sul sorgente considera tutti gli elementi della soluzione (metadati, configurazione, codice, documentazione) come file sorgente controllati dalla versione anziché come impostazione "point-and-click" che si verifica solo nelle organizzazioni. Il controllo sorgente consente build riproducibili, sviluppo collaborativo, tracciamento delle modifiche e opportunità di distribuzione automatizzate. Salesforce DX fornisce la toolchain per lo sviluppo basato sulla fonte. L'API dei metadati espone la configurazione dell'organizzazione come file XML. Le organizzazioni vuote offrono ambienti di sviluppo non riutilizzabili creati a partire dal controllo sorgente. Gli strumenti CLI abilitano la distribuzione con script e la manipolazione dell'organizzazione. I sistemi di controllo delle versioni, incluso Git, tengono traccia delle modifiche e abilitano flussi di lavoro collaborativi. Strutturare deliberatamente i metadati per consentire la collaborazione in team. Le strutture modulari dei pacchetti consentono ai team di lavorare in modo indipendente senza conflitti di unione. Separare i componenti condivisi (layout di pagina, insiemi di autorizzazioni e campi personalizzati) dai componenti specifici delle funzioni (classi Apex, flussi e componenti Lightning). Chiari confini di proprietà evitano il caos di tutti che cambiano tutto. #### Revisione codice La revisione del codice offre controllo della qualità, condivisione Knowledge e opportunità di apprendimento prima che le modifiche raggiungano la produzione. Revisioni efficaci del codice bilanciano precisione e velocità, fornendo feedback significativi senza creare colli di bottiglia nella distribuzione. Stabilire criteri di riesame chiari. I revisori controllano: - Correttezza: il codice fa ciò che dichiara? - Manutenibilità - Gli sviluppatori futuri possono comprenderlo e modificarlo? - Prestazioni - Questo approccio è scalabile in modo appropriato? - Sicurezza - Esistono rischi di iniezioni o bypass di autorizzazioni? - Coerenza: corrisponde agli schemi e agli standard del progetto? Senza criteri espliciti, le recensioni diventano soggettive o superficiali. Richiedere due approvazioni per le modifiche legate alla produzione. L'approvazione da parte di un revisore singolo crea silos Knowledge e non rileva i problemi che potrebbero emergere da prospettive alternative. Il requisito di due revisori distribuisce Knowledge, mantiene il fattore bus superiore a uno e rileva più difetti. Bilanciare i requisiti di approvazione con le dimensioni del team: la necessità di tre approvazioni in un team di cinque persone crea colli di bottiglia. Mantenere piccole le richieste di estrazione. Le pubbliche relazioni con centinaia di righe modificate ricevono un esame rapido perché i revisori affrontano un carico cognitivo schiacciante. Le pubbliche relazioni che modificano una funzione in 200-400 righe ricevono una revisione approfondita che rileva problemi sottili. Suddividere le funzionalità di grandi dimensioni in blocchi rivedibili che offrono risultati incrementali. Automatizzare i controlli meccanici. La formattazione del codice, la conformità alla convenzione di denominazione, i requisiti di copertura dei test e i controlli dell'analisi statica dovrebbero essere eseguiti automaticamente anziché richiedere l'attenzione del revisore. I revisori dovrebbero concentrarsi su questioni di logica, progettazione e manutenibilità che richiedono un giudizio umano. #### Strategia di test I test offrono la certezza che le soluzioni funzionino correttamente e continuino a funzionare man mano che le modifiche si accumulano. I test efficaci bilanciano la copertura (la quantità di esercizio dei test di codice e funzionalità) con la velocità di esecuzione (la velocità con cui vengono completate le suite di test) e il carico di manutenzione (la quantità di impegno richiesto per il mantenimento dei test). - **Test di unità:** convalidare i singoli componenti isolatamente. I test di unità Apex convalidano i metodi e le classi in modo isolato dai dati dell'organizzazione e dalle dipendenze esterne esistenti. I test dei componenti Web Lightning convalidano la logica dei componenti e il rendering senza API di backend. Test di unità ben progettati vengono eseguiti in pochi secondi, fornendo un feedback immediato durante lo sviluppo. Obiettivo di copertura del codice requisito minimo superiore al 75% solo dai test di unità, considerando la copertura come minimo e non come massimo. - **Test integrazione:** convalidare le interazioni tra i componenti. I test di integrazione eseguono operazioni di database effettive, chiamate reali a sistemi esterni fittizi e comportamento limite governor autentico. I test di integrazione individuano i presupposti che i test di unità non tengono presenti: stati dei dati imprevisti, problemi di autorizzazioni, limiti di operazioni in blocco e dipendenze degli ordini di attivazione. I test di integrazione vengono eseguiti da secondi a minuti per test. - **Test end-to-end (E2E):** convalidare i journey utente completi dall'accesso al completamento dell'operazione. I test E2E vengono eseguiti in ambienti Sandbox Completi, esercitando interazioni dell'interfaccia utente, processi di backend, operazioni asincrone e punti di contatto di integrazione. I test E2E rilevano i problemi che emergono solo quando viene eseguito il sistema completo: condizioni di gara, flussi di lavoro utente imprevisti, problemi di configurazione dell'ambiente. I test E2E vengono eseguiti da minuti a ore per le suite complete. - **Test prestazioni:** convalidare il comportamento della soluzione sotto carico. I test delle prestazioni misurano i tempi di risposta, la produttività, il consumo di risorse e la prossimità limite del governor in base a schemi di traffico realistici. I test delle prestazioni impediscono il rilascio di modifiche che peggiorano le prestazioni, rilevano gli schemi di query N+1 prima della produzione e convalidano lo spazio di attesa della capacità prima dei periodi di punta. I test delle prestazioni richiedono volumi di dati simili a quelli di produzione e vengono eseguiti in ambienti di test dedicati. Implementare la strategia della piramide di test: molti test di unità veloci, meno test di integrazione, test E2E selettivi e test delle prestazioni convalidati separatamente sotto carico. Questo bilanciamento consente un'iterazione rapida (test di unità rapidi forniscono un feedback immediato) assicurando al contempo che i punti di integrazione funzionino correttamente (i test di integrazione rilevano problemi tra i componenti) e che l'esperienza utente rimanga accettabile (i test E2E convalidano i journey completi). Automatizzare l'esecuzione dei test nelle pipeline CI. Non eseguire manualmente le suite di test prima delle conferme, ma lasciare che CI esegua automaticamente le suite di test prima di ogni conferma. I test automatici rilevano immediatamente le regressioni, applicano gli standard di qualità in modo coerente e impediscono il graduale decadimento della qualità che si verifica quando i test manuali diventano facoltativi durante la pressione delle scadenze. #### Pipeline CI/CD Le pipeline di integrazione continua (CI) e distribuzione continua (CD) automatizzano il percorso dalla conferma del codice alla distribuzione in produzione. CI/CD riduce gli errori umani, accelera il feedback, offre controlli di qualità coerenti e abilita la cadenza di rilascio rapida. - L'**integrazione continua** crea, testa e convalida automaticamente ogni conferma del codice. Quando gli sviluppatori inviano tramite push le conferme per il controllo delle versioni, i sistemi CI eseguono l'esecuzione di nuove organizzazioni, distribuiscono le modifiche, eseguono suite di test automatiche, eseguono analisi del codice statico, controllano i requisiti di copertura dei test e riportano i risultati in pochi minuti. Un feedback rapido consente agli sviluppatori di risolvere i problemi mentre il contesto è aggiornato anziché scoprire i problemi giorni dopo durante i test manuali di integrazione. Richiedere l'esito positivo del CI prima di consentire le unioni con il branch principale. Questa disciplina (spesso chiamata "protect main") impedisce l'accumulo di codice interrotto nei branch condivisi in cui blocca altri sviluppatori. Le filiali protette con gate CI mantengono il branch principale sempre distribuibile, abilitando il rilascio su richiesta anziché il rilascio quando-principale-accade-al-lavoro. - La **distribuzione continua** distribuisce automaticamente le modifiche convalidate attraverso gli ambienti verso la produzione. Quando CI convalida le modifiche in ambienti isolati, le pipeline CD vengono distribuite ai Sandbox di integrazione, eseguono ulteriori test, vengono distribuite alla gestione temporanea, eseguono la convalida finale e, se si desidera, vengono distribuite alla produzione automaticamente o dopo le autorizzazioni manuali. Implementare strategie di distribuzione progressiva che limitino il raggio di esplosione durante le distribuzioni di produzione: - **Distribuzione blu-verde:** mantiene due ambienti di produzione identici. Il traffico viene instradato all'ambiente blu mentre l'ambiente verde riceve una nuova distribuzione. Dopo la convalida, il traffico passa all'ambiente verde. L'ambiente blu rimane in esecuzione come destinazione di ritiro immediato. - **Distribuzione Canary:** rilascia le modifiche a un piccolo sottoinsieme di utenti prima della distribuzione completa. Il canarino iniziale riceve una piccola percentuale del traffico durante il monitoraggio dei tassi di errore, della latenza e del comportamento degli utenti. Il canarino riuscito si espande progressivamente (ad esempio, dal 5% al 25%, quindi al 50% e quindi al 100%). I problemi rilevati durante la distribuzione di Canary interrompono il rilascio prima di interessare tutti gli utenti. La distribuzione Canary funziona bene per le soluzioni Salesforce con livelli di instradamento esterni o flag di funzioni che abilitano l'esposizione selettiva delle funzioni. - **Feature flag:** abilitare il controllo in fase di esecuzione della visibilità delle funzioni indipendentemente dai tempi di distribuzione. Le nuove funzioni vengono distribuite all'ambiente di produzione ma rimangono nascoste dietro i flag finché non vengono abilitate esplicitamente. I flag delle funzioni supportano la distribuzione canary, i test A/B, l'implementazione graduale e il ritiro immediato attivando i flag anziché distribuire il codice. *Nota*: Gli schemi di distribuzione canarino e blu-verde si applicano alle applicazioni personalizzate ospitate su Heroku o MuleSoft distribuite su CloudHub 2.0 tramite l'allocazione delle risorse e i controlli di distribuzione del traffico. Le distribuzioni di metadati principali della piattaforma Salesforce sono transazioni "tutto o niente". #### Infrastruttura come codice Infrastructure as code (IaC) considera la definizione di un ambiente (forma dell'organizzazione, metadati, dipendenze e dati di configurazione e seed che lo rendono funzionale) come un'origine controllata dalla versione anziché come un'impostazione eseguita manualmente in ogni organizzazione. In Salesforce non sono presenti server di cui eseguire il provisioning, quindi IaC determina come viene assemblato un ambiente, non l'hardware sottostante. Gli ambienti codificati sono riproducibili, confrontabili e non riutilizzabili, ed è esattamente questo che li impedisce di andare alla deriva. Gli ambienti sono definiti in base all'origine anziché alla configurazione manuale. Un file di definizione organizzazione vuota specifica la versione, le funzioni abilitate e le impostazioni, in modo che chiunque, o una pipeline, possa avviare un'organizzazione identica e non riutilizzabile su richiesta. I Sandbox seguono un percorso diverso: vengono forniti a partire da una definizione che assegna un nome al tipo di copia e al modello, quindi ereditano la configurazione dall'organizzazione di produzione che clonano, offrendo ambienti a maggiore fedeltà per l'integrazione e la gestione temporanea. Le definizioni dei pacchetti dichiarano i componenti e le dipendenze di una soluzione, rendendo le build riproducibili dall'origine anziché dipendenti dallo stato accumulato di un'organizzazione longeva. Anche la base di riferimento che ogni ambiente presuppone è stata modificata. I metadati personalizzati, la configurazione delle credenziali denominate e le definizioni delle impostazioni personalizzate vengono distribuiti come metadati, mentre i valori di impostazione e i record di riferimento vengono caricati dai dati seed con versione. Mantenere entrambi il controllo sorgente insieme al codice significa che ogni ambiente inizia da una base di riferimento nota e coerente anziché configurata manualmente. Codificando gli ambienti in questo modo si attacca la fluttuazione della configurazione all'origine. Quando la definizione di un ambiente risiede nel controllo di versione, le differenze tra gli ambienti emergono come differenze visibili anziché come divergenze silenziose e la creazione di un ambiente pulito è più rapida del debug di un ambiente che è andato in fluttuazione. Il reprovisioning dall'origine abbrevia il ripristino quando un ambiente viene danneggiato e consente alle opportunità in corso di realizzazione di supportare gli ambienti usa e getta per ogni modifica senza impostazione manuale. #### Strategia Sandbox I Sandbox offrono ambienti isolati per lo sviluppo, il test e la formazione senza rischi per i dati di produzione o la configurazione. Una strategia Sandbox efficace bilancia la fedeltà dell'ambiente (la corrispondenza dei Sandbox con la produzione) con il costo e la frequenza di aggiornamento. - **I Developer Sandbox** offrono ambienti isolati leggeri per lo sviluppo di singole funzioni. Gli sviluppatori creano organizzazioni vuote dal controllo sorgente per il lavoro quotidiano, utilizzando Sandbox per sviluppatori per il test di integrazione con dipendenze condivise. I Developer Sandbox e le organizzazioni vuote si aggiornano spesso mantenendo la configurazione sincronizzata con l'ambiente di produzione. - I **Sandbox di integrazione** (developer pro o copia parziale) offrono ambienti condivisi in cui più funzioni si integrano e interagiscono. I Sandbox di integrazione includono dati di produzione sufficienti per testare flussi di lavoro realistici senza il costo e la complessità delle copie complete dei dati. I test di integrazione vengono eseguiti sui Sandbox di integrazione prima della promozione a gestione temporanea. - **I Sandbox di** gestione temporanea (copia completa) riproducono la configurazione e i dati di produzione, fornendo la convalida finale prima della distribuzione in produzione. I Sandbox di gestione temporanea ricevono i rilasci prima della produzione, abilitando test di produzione delle procedure di distribuzione, delle caratteristiche delle prestazioni e degli script di migrazione dei dati. I Sandbox di gestione temporanea si aggiornano trimestralmente o prima dei rilasci principali. - I **Sandbox di formazione** offrono ambienti realistici per la formazione e la demo degli utenti senza esporre dati reali dei clienti. I Sandbox di addestramento possono contenere dati sintetizzati o dati di produzione anonimizzati. Gli ambienti di formazione rimangono stabili per periodi prolungati per supportare materiali di formazione e processi di certificazione coerenti. Automatizzare l'aggiornamento del Sandbox e il caricamento dei dati. L'aggiornamento manuale del Sandbox diventa un collo di bottiglia che impedisce test frequenti con dati simili a quelli di produzione. Le procedure di aggiornamento automatico combinate con script di caricamento dati abilitano la reimpostazione dell'ambiente on-demand, supportando sia le opportunità di integrazione continua che le esigenze di test manuali. Nota: "Sandbox" ha due significati distinti in un'azienda agente. I Sandbox sopra sono ambienti: copie isolate di un'organizzazione in cui i team creano e testano prima che le modifiche raggiungano la produzione. Il Sandboxing delle azioni di un agente è diverso. È il confine in fase di esecuzione che limita dove e come viene eseguita un'azione autonoma, tramite autorizzazioni limitate, accesso limitato a oggetti e integrazione ed esecuzione controllata, in modo che l'agente non possa andare oltre l'ambito previsto. I due elementi sono complementari: uno Developer Sandbox è il luogo in cui si convalidano le azioni di un agente rispetto ai dati non di produzione e il Sandboxing azioni è ciò che contiene tali azioni nell'ambiente di produzione. #### Procedure di distribuzione sicura Anche con le opportunità in corso di realizzazione automatiche, le distribuzioni comportano dei rischi. Le procedure di distribuzione sicura riducono il rischio attraverso la convalida, il monitoraggio e l'esecuzione controllata: - **Convalida distribuzione:** esegue la distribuzione come esecuzione a secco senza confermare le modifiche. La convalida rileva errori di distribuzione (dipendenze mancanti, conflitti tra i componenti, riferimenti non validi) prima della distribuzione effettiva. Salesforce supporta le distribuzioni di convalida sia tramite l'interfaccia utente che tramite CLI, abilitando la convalida in produzione durante l'orario di ufficio anche quando la distribuzione effettiva attende le finestre di manutenzione. - **Monitoraggio distribuzione:** controlla le metriche chiave durante e dopo la distribuzione. Monitorare le percentuali di errore, le metriche delle prestazioni, le percentuali di successo dei flussi utente e il consumo dell'API. Modifiche improvvise dopo la distribuzione indicano una regressione che richiede un'analisi e un possibile ritiro. Il monitoraggio automatico confronta le metriche pre-distribuzione e post-distribuzione, avvisando quando la deviazione statistica supera le soglie. - **Runbook di distribuzione:** procedure di distribuzione dei documenti che includono prerequisiti, fasi di esecuzione, controlli di convalida, procedure di ritiro e piano di comunicazione. I Runbook trasformano le distribuzioni da stressanti cerimonie tribali di Knowledge in procedure di routine che chiunque può eseguire. I Runbook si evolvono attraverso retrospettive di distribuzione che acquisiscono le lezioni apprese e prevengono problemi ricorrenti. - **Funzionalità di rollback:** fornisce un percorso di escape quando le distribuzioni non riescono. Il ritiro dei metadati Salesforce richiede la ridistribuzione della versione precedente anziché dei comandi di ritiro nativi, rendendo il controllo delle versioni fondamentale. Gestire i pacchetti di distribuzione per ogni versione di produzione abilitando la distribuzione rapida. Per le modifiche dei dati, gestire backup pre-distribuzione che abilitano il ripristino. Per le modifiche alla configurazione, tenere traccia dei valori precedenti in Itinerario di controllo impostazioni. Pianificare le distribuzioni durante i periodi di traffico basso in cui l'impatto della distribuzione riguarda meno utenti. Le distribuzioni del fine settimana e della sera riducono al minimo i rischi aziendali ma aumentano il carico operativo. Bilanciare l'impatto degli utenti con la sostenibilità del team. Le soluzioni con procedure di distribuzione efficaci e un monitoraggio completo possono essere distribuite in modo sicuro durante l'orario di ufficio, ma le soluzioni non dimostrate traggono vantaggio dalla distribuzione fuori orario fino a quando non aumenta la fiducia. #### Gestione della configurazione La configurazione è un metadati che regola il comportamento delle soluzioni: impostazioni, funzioni, autorizzazioni, integrazioni e personalizzazione dell'organizzazione. Le modifiche alla configurazione influiscono immediatamente sulle soluzioni in esecuzione senza distribuzione di codice, rendendo la gestione della configurazione fondamentale per la stabilità operativa. Configurazione della versione nel controllo sorgente insieme al codice. Le definizioni dei profili, le assegnazioni degli insiemi di autorizzazioni, le impostazioni personalizzate, le definizioni degli eventi piattaforma, le credenziali denominate e le impostazioni dei siti remoti appartengono tutte al controllo delle versioni. La configurazione con versione abilita l'automazione della distribuzione, il tracciamento delle modifiche, la coerenza dell'ambiente e la funzionalità di ritiro. Rilevamento e correzione della fluttuazione della configurazione. Nel tempo, le organizzazioni di produzione si allontanano dalla configurazione documentata poiché gli amministratori apportano modifiche dirette, gli hot-fix ignorano i normali processi di distribuzione e si accumulano soluzioni non documentate. Il confronto automatico tra la configurazione di produzione e il controllo di versione rivela la fluttuazione. Pianificare il rilevamento e la correzione trimestrali delle fluttuazioni per evitare che il debito di configurazione si accumuli fino al punto in cui le distribuzioni diventano imprevedibili. Decisioni di configurazione dei documenti e relative motivazioni. I futuri manutentori devono capire non solo che cosa è configurato ma perché. L'impostazione delle impostazioni predefinite dell'organizzazione su Privato per account ma Pubblico per referente richiede la documentazione che spiega il requisito aziendale che ha determinato questa decisione. Senza una logica documentata, i cambiamenti futuri rischiano di rompere i presupposti sepolti nei processi aziendali. ### Automazione ed efficienza L'automazione elimina il lavoro manuale ripetitivo, riduce gli errori umani e consente di scalare le operazioni senza aumentare il personale in modo proporzionale. Per le soluzioni Salesforce, le opportunità di automazione riguardano le funzioni dichiarative della piattaforma, l'automazione programmatica e le procedure operative. #### Automazione dichiarativa al primo posto Gli strumenti di automazione dichiarativa di Salesforce Flow Builder, Campi formula, Regole di convalida, Processi di approvazione consentono ai non sviluppatori di implementare logica aziendale complessa senza codice. L'automazione dichiarativa offre vantaggi di governance (gli amministratori possono modificare senza distribuzioni), trasparenza (i documenti di progettazione visivi) e ottimizzazione della piattaforma (le operazioni dichiarative spesso vengono eseguite in modo più efficiente rispetto al codice equivalente). - **Flow Builder:** automatizza i processi complessi combinando interazione degli utenti, manipolazione dei dati, logica aziendale e integrazione. I flussi gestiscono schemi comuni, tra cui la creazione di record con ricerche dipendenti, l'instradamento condizionale dell'approvazione, le importazioni di dati in più fasi, i processi di pulitura pianificati e i flussi di lavoro di notifica degli errori. I flussi AutoLaunched vengono eseguiti in caso di modifiche dei record, intervalli pianificati o chiamata esplicita dal codice. I flussi schermata guidano gli utenti nei processi in più fasi con una logica di ramificazione basata sull'input dell'utente. Progettare i flussi per riutilizzarli e mantenerli. I sottoflussi incapsulano schemi comuni (come la gestione degli errori o la logica di blocco dei record) che più flussi controllanti riutilizzano. Variabili di flusso ben denominate e descrizioni esplicite creano una logica di autodocumentazione comprensibile per i futuri manutentori. La progettazione modulare del flusso consente di testare i singoli componenti prima dell'integrazione. - **Campi formula:** calcolare i valori dinamicamente da altri campi senza aggiornare il codice o il database. Le formule supportano calcoli complessi, logica condizionale, aritmetica delle date e manipolazione del testo. I campi formula funzionano in rapporti, visualizzazioni elenco, regole di convalida e flussi, offrendo calcoli coerenti in contesti diversi. Le formule vengono eseguite in modo efficiente perché non consumano memoria di database e calcolano al volo durante l'accesso ai record. - **Regole di convalida:** applicare la qualità dei dati per risparmiare tempo. Le regole di convalida rilevano gli errori di immissione dei dati, applicano le regole aziendali e impediscono le transizioni tra stati non validi. Posizionare le regole di convalida sugli oggetti standard e personalizzati per individuare gli errori indipendentemente dalla fonte di dati (interfaccia utente, API, Data Loader, integrazione). I messaggi di errore delle regole di convalida ben organizzati guidano gli utenti nella correzione dei problemi anziché frustrarli con messaggi tecnici criptici. - **Processi di approvazione:** instradare i record attraverso le approvazioni richieste prima dell'avanzamento di stato. I processi di approvazione implementano le gerarchie delle autorità di firma, i riesami della conformità, le approvazioni legali e i flussi di lavoro di consenso multiparte. I processi di approvazione forniscono automaticamente gli itinerari di controllo, registrando chi ha approvato cosa e quando senza sviluppo personalizzato. #### Schemi di automazione programmatica Mentre l'automazione dichiarativa gestisce molti scenari, requisiti complessi o vincoli di prestazioni a volte richiedono l'automazione a livello di programmazione in Apex. Un'efficace automazione Apex bilancia potenza e flessibilità rispetto alle sfide di manutenibilità e governance. - **I framework trigger** offrono una struttura coerente per la logica dei trigger di database. Framework di trigger ben progettati separano le preoccupazioni (quando viene eseguita la logica, quale logica viene eseguita, come vengono ordinate le dipendenze), abilitano/disabilitano i singoli handler senza modifiche del codice e impediscono problemi di ricorsione tramite il tracciamento del contesto. I framework di trigger rendono l'automazione Apex più manutenibile impedendo l'antipattern "one big trigger" in cui la logica non correlata si accumula in monoliti non manutenibili. - **Batch Apex** elabora grandi volumi di dati in modo asincrono a blocchi, rispettando i limiti del governor durante l'esecuzione di operazioni che andrebbero in timeout nell'esecuzione sincrona. I processi batch gestiscono la pulitura dei dati, gli aggiornamenti in blocco che superano i confini degli oggetti, i calcoli complessi che richiedono più query per record e le operazioni di migrazione dei dati. Progettare processi batch per l'impotenza: l'esecuzione dello stesso processo due volte dovrebbe produrre lo stesso risultato senza lavoro duplicato o danneggiamento. - Le catene **Apex inseribili in** area di attesa funzionano in modo asincrono tramite sequenze di processi esplicite. Quando i metodi futuri vengono attivati e dimenticati, Queueable Apex abilita sequenze strutturate in cui il completamento di un processo attiva quello successivo. I processi in area di attesa supportano un'orchestrazione complessa che include chiamate API seguite da elaborazione dei dati, trasformazioni dei dati a più fasi e logica di tentativo con backoff esponenziale. - **Apex pianificato** esegue processi a intervalli fissi. I processi pianificati gestiscono la pulitura periodica, la sincronizzazione notturna dei dati, i sondaggi di integrazione orari e l'elaborazione di fine giornata. Pianificare i processi durante i periodi di traffico basso e implementare il monitoraggio per rilevare le esecuzioni mancate. Valutare se gli intervalli pianificati soddisfano realmente le esigenze aziendali o se l'attivazione basata sugli eventi risponderebbe più rapidamente. Progettare l'automazione programmatica per la visibilità operativa. Registrare gli orari di inizio/fine, i conteggi dei record elaborati, gli errori riscontrati e le metriche delle prestazioni. Quando i processi batch falliscono silenziosamente, spesso passano inosservati finché gli utenti non notano problemi di dati giorni dopo. La registrazione e gli avvisi proattivi trasformano gli errori silenziosi in incidenti diagnosticabili. #### Eventi piattaforma per l'architettura basata sugli eventi Gli eventi piattaforma abilitano un'architettura basata sugli eventi in cui i produttori pubblicano eventi senza conoscere i consumatori e i consumatori si abbonano agli eventi senza dipendere dai produttori. L'architettura basata sugli eventi disaccoppia i componenti, abilita l'elaborazione asincrona e supporta schemi di integrazione multilingue. - **Pubblicazione evento piattaforma:** notifica agli abbonati interessati eventi aziendali significativi. L'inserimento degli ordini, l'elaborazione dei pagamenti, il completamento dell'evasione, la violazione degli SLA e le condizioni di errore rappresentano tutti eventi che meritano di essere pubblicati. I payload degli eventi includono un contesto sufficiente per consentire agli abbonati di reagire in modo appropriato senza ulteriori query. Pubblicare eventi da trigger, flussi, chiamate Apex o API, offrendo flessibilità nell'approvvigionamento degli eventi. - **Abbonamenti evento piattaforma:** reagire agli eventi pubblicati tramite trigger Apex, flussi o piattaforme di integrazione esterne. Gli abbonati elaborano gli eventi in modo asincrono, ovvero i publisher non attendono il completamento dell'abbonato. L'elaborazione basata sugli eventi rispetta i limiti del governor distribuendo il lavoro in contesti di esecuzione separati anziché consumare limiti in transazioni sincrone globali. - **Event replay:** consente agli abbonati di elaborare eventi storici. Utilizzare Platform Event Replay ID per riprodurre gli eventi da un punto specifico. Gli abbonati esterni devono gestire il proprio stato Replay ID. Poiché la consegna avviene almeno una volta, l'elaborazione dei duplicati è possibile: gestirla nella logica dell'abbonato. Configurare la conservazione degli eventi in base ai requisiti di ripristino dell'abbonato: 72 ore per gli eventi piattaforma a volume elevato e 24 ore per gli eventi standard legacy sono sufficienti per un ripristino rapido, una conservazione più lunga supporta gli scenari di ripristino di emergenza. Progettare eventi per la stabilità. Gli schemi degli eventi diventano contratti tra produttori e consumatori. Le modifiche dello schema richiedono il coordinamento tra più team e sistemi. Aggiungere nuovi campi anziché modificare i campi esistenti quando si estendono gli eventi. Gli eventi di versione diventano esplicitamente inevitabili quando si interrompono le modifiche. | Fase | Aspetto | Scambi | | :---- | :---- | :---- | | **Ottimizzato Lean**: logica standard con automazione senza codice | Automazione dichiarativa per la logica aziendale. I flussi, i campi formula, le regole di convalida e i processi di approvazione gestiscono gli schemi standard. Gli esseri umani gestiscono manualmente le eccezioni durante le esecuzioni. | Più veloce da creare e modificabile senza distribuzione. Man mano che il volume e la complessità aumentano, l'automazione solo dichiarativa raggiunge i limiti di prestazioni e manutenibilità e la logica non documentata si accumula più velocemente di quanto possa essere gestita. | | **Ottimizzazione su scala**: eseguire lavori complessi a volume elevato senza sforzo manuale | Automazione a livello di programmazione e basata sugli eventi per ciò che non può essere dichiarato. I framework di attivazione, i processi batch e di area di attesa in blocco sicuri e gli eventi piattaforma separano i produttori dai consumatori, ciascuno creato in modo idempotente e strumentato. | Gestisce il lavoro asincrono, a volume elevato, a più fasi che altrimenti richiederebbe limiti o errori su larga scala. Richiede che l'ingegneria lo costruisca in modo sicuro e idempotente, e la strumentazione per evitare errori silenziosi che si nascondano nell'esecuzione asincrona. | | **Ottimizzazione della governance**: consente di gestire l'automazione in modo affidabile in tutta l'azienda | Automazione orchestrata e governata. Contratti evento stabili con versione, abilitazione controllata degli elementi eseguiti e standard di automazione coerenti applicati in un'azienda, tutti controllabili. | Autonomia affidabile su scala aziendale con controllo comprovato su ciò che viene eseguito. Contro il coordinamento per mantenere i contratti degli eventi tra i team e il peso della governance che rallenta il cambiamento di qualsiasi automazione condivisa. | ### Gestione incidenti Gli incidenti sono interruzioni non pianificate o peggioramenti del servizio che richiedono una risposta per ripristinare le normali operazioni. Una gestione efficace degli incidenti rileva rapidamente i problemi, li instrada ai soccorritori qualificati, li risolve in modo efficiente ed estrae l'apprendimento per evitare che si ripetano. #### Rilevamento e risposta agli incidenti - **Velocità di rilevamento:** determina la durata dell'impatto dell'incidente. Più velocemente si rilevano i problemi, meno danni si accumulano prima che inizi la risposta. I meccanismi di rilevamento includono avvisi di monitoraggio automatico (dai sistemi di osservabilità), rapporti utente (ticket di assistenza e inoltro diretto al livello superiore) e monitoraggio esterno (transazioni sintetiche e servizi di controllo del tempo di attività dall'esterno della rete). Assegnare priorità agli incidenti in base all'impatto sull'utente anziché alla gravità tecnica. Ad esempio, un errore API che influisce sui processi batch interni ha un'urgenza diversa rispetto agli errori di accesso che impediscono l'accesso a tutti gli utenti. La gravità dell'incidente guida i tempi di risposta e i percorsi di inoltro al livello superiore: | Livello di gravità | Descrizione | Esempio | | :---- | :---- | :---- | | Gravità 1 | Incidenti che impediscono funzioni aziendali critiche, interessano tutti o la maggior parte degli utenti, causano perdite di dati o presentano emergenze di sicurezza. Gli incidenti di gravità 1 attivano una risposta immediata che include la notifica esecutiva, il coordinamento delle sale di guerra e la risposta globale fino alla risoluzione. | Errore di accesso completo, rilevamento di violazioni dei dati o interruzione del sistema del reddito | | Gravità 2 | Incidenti che degradano funzioni critiche o interessano popolazioni significative di utenti. Gli incidenti di gravità 2 richiedono una risposta rapida ma non giustificano l'interruzione del sonno o l'annullamento di qualsiasi altro lavoro. | Ricerca che restituisce risultati parziali, timeout dei rapporti o errori di integrazione con soluzioni alternative. | | Gravità 3 | Incidenti che influiscono su funzionalità limitate o popolazioni di utenti limitate. Gli incidenti di gravità 3 ricevono attenzione in orario di ufficio. | Singolo utente che riscontra problemi, problemi estetici dell'interfaccia utente o lievi incoerenze dei dati. | Stabilire procedure chiare di risposta agli incidenti che includano chi risponde, come inoltrare al livello superiore, quale cadenza di comunicazione mantenere e come coordinare i vari team. Documentare le procedure in runbook che i tecnici su chiamata possono seguire durante gli incidenti con stress elevato. Knowledge tribale non documentato crea ritardi di risposta mentre le persone capiscono chi chiamare e quali passaggi eseguire. #### On-Call e Inoltro al livello superiore - **Rotazione su chiamata:** distribuisce il carico operativo tra i membri del team anziché bruciare pochi eroi che rispondono a ogni incidente. Le rotazioni su chiamata bilanciano i requisiti di copertura (sempre qualcuno disponibile), l'equità (tutti condividono l'onere) e la sostenibilità (le persone hanno bisogno di tempo di recupero dopo incidenti intensi). Strutturare le rotazioni su chiamata con trasferimenti chiari e responsabilità documentate. La chiamata principale gestisce la risposta iniziale, la chiamata secondaria fornisce l'inoltro al livello superiore quando la chiamata principale necessita di assistenza o se la chiamata principale non è disponibile. I turni su chiamata dovrebbero essere di dimensioni giuste. Ad esempio, iniziare con una settimana e non superare le due settimane: i turni più brevi creano un cambiamento di contesto costante, mentre i turni più lunghi aumentano il rischio di burnout. Pianificare le rotazioni consentendo la pianificazione anticipata degli obblighi personali. - **Percorsi di inoltro** al livello superiore definiscono quando e come coinvolgere risorse aggiuntive. Chiari criteri di inoltro al livello superiore evitano due modalità di insuccesso: l'inoltro al livello superiore prematuro, che fa perdere tempo all'ingegnere senior per i problemi che i giovani possono gestire, e l'inoltro al livello superiore ritardato, in cui i giovani lottano con problemi che vanno oltre la loro esperienza mentre l'assistenza degli esperti è inattiva. I criteri di inoltro al livello superiore rientrano in genere in tre categorie: trigger basati sul tempo, ad esempio 30 minuti senza avanzamento; trigger di complessità, ad esempio un problema che richiede una competenza non attualmente disponibile; trigger di gravità, ad esempio gli incidenti di gravità 1, che vengono sempre inoltrati al livello superiore. Fornire ai tecnici su chiamata l'accesso, gli strumenti e le informazioni necessarie. Lo stato su chiamata senza accesso in produzione crea frustrazione e prolunga la durata dell'incidente mentre le persone attendono l'accesso. I toolkit su chiamata includono le credenziali di accesso in produzione, l'accesso ai runbook, i link ai cruscotti digitali di monitoraggio, i referenti per l'inoltro al livello superiore, le procedure di assistenza del fornitore e i modelli di comunicazione. Compensare equamente il servizio su chiamata. Il lavoro su chiamata interrompe il tempo personale e crea stress. Gli approcci retributivi includono retribuzione aggiuntiva, permessi sostitutivi o crediti di rotazione che riducono altre responsabilità. Senza un equo compenso, le rotazioni su chiamata creano risentimento e gli ingegneri di qualità lasciano le organizzazioni rispettando l'equilibrio tra vita lavorativa e vita privata. #### Revisioni post-incidente - **Automa post mortem senza colpa:** estrarre il massimo apprendimento dagli incidenti senza creare paura che impedisce una discussione onesta. La cultura Blameless riconosce che le persone commettono errori in sistemi complessi e si concentra sui miglioramenti del sistema che impediscono incidenti futuri anziché punire le persone per incidenti passati. Eseguire automazioni post-mortem per tutti gli incidenti di Gravità-1 e Gravità-2 e per tutti gli incidenti che rivelano nuovi schemi o problemi sistemici. La tempistica post mortem è fondamentale: condurre la revisione troppo presto rischia di rendere incomplete le informazioni, mentre condurre la revisione troppo tardi rischia di sbiadire i ricordi. Pianificare le autopsie post mortem entro un periodo di tempo ragionevole (24-48 ore) dopo la risoluzione dell'incidente, lasciando tempo per la raccolta dei dati mentre i dettagli rimangono aggiornati. Acquisizione post mortem del documento in formato coerente: - **Tempistica:** Sequenza cronologica degli eventi dal rilevamento iniziale alla risoluzione. Includere indicazioni orarie, azioni intraprese, risultati osservati e decisioni prese. La ricostruzione della sequenza temporale rivela l'efficacia della risposta e identifica i ritardi. - **Causa principale:** Debolezza del sistema sottostante che ha consentito il verificarsi di incidenti. Passare dalla causa prossima (il trigger immediato) alla causa sistemica (la lacuna di progettazione o processo che ha reso il trigger consequenziale). "L'ingegnere ha distribuito codice non valido" è la causa prossima. "La pipeline di distribuzione non dispone di test automatici per individuare questa classe di errore" è la causa sistemica. - **Impatto:** Durata dell'impatto utente, conteggio utenti interessati, impatto sul reddito, problemi di integrità dei dati e danni alla reputazione. L'impatto quantificato guida l'assegnazione delle priorità al lavoro di prevenzione: prevenire gli incidenti con impatto di 100.000 dollari merita più investimenti che prevenire gli incidenti con impatto di 1.000 dollari. - **Prevenzione:** Voci azioni specifiche che impediscono la ricorrenza. Gli elementi di prevenzione efficaci sono concreti e includono azione, assegnatario e completamento pianificato. Ad esempio, aggiungere il test di fumo integrazione alla pipeline CI, titolare: Jane, e completa per: prossimo sprint. Voci di prevenzione vaghe, come "migliora i test", vengono ignorate perché nessuno sa quale azione intraprendere. - **Miglioramento del rilevamento:** Come rilevare più rapidamente incidenti simili. Gli incidenti rilevati tramite i rapporti utente indicano lacune nel monitoraggio. Gli elementi migliorativi possono includere nuovi avvisi, una migliore strumentazione o un monitoraggio sintetico per i percorsi critici. Condividere ampiamente i risultati post mortem. L'apprendimento organizzativo richiede la condivisione oltre il team diretto. Gli esami post mortem condivisi a livello aziendale distribuiscono Knowledge sul comportamento del sistema, sugli schemi di errore comuni e sulle procedure di risposta efficaci. Le autopsie post mortem pubbliche (pubblicate esternamente) dimostrano trasparenza e aiutano i clienti a comprendere l'impegno per la qualità del servizio. | Fase | Aspetto | Scambi | | :---- | :---- | :---- | | **Ottimizzato**: risolvere gli incidenti tramite una chiara proprietà. | Una persona è titolare della risposta agli incidenti, che lavora dai runbook per le principali modalità di errore. Il rilevamento è vigile e guidato dall'utente, l'inoltro al livello superiore passa attraverso il supporto della piattaforma. | Minor carico operativo, nessuna rotazione al personale. Il ripristino dipende dalla disponibilità e Knowledge di una persona, il che crea un singolo punto di errore. | | **Ottimizzazione della scala**: rispondere in modo prevedibile indipendentemente da chi è disponibile. | Una rotazione su chiamata condivisa con livelli di gravità definiti, obiettivi di tempo di risposta per livello, trigger di inoltro al livello superiore documentati e accesso su chiamata e strumenti forniti in anticipo. | Risposta prevedibile disaccoppiata da qualsiasi individuo, con meccanismi di inoltro al livello superiore. Richiede che il personale sostenga la rotazione e la disciplina per mantenere aggiornati i runbook e l'accesso. | | **Ottimizzazione della governance**: raggiungere gli obiettivi di ripristino confermati ed esercitarli. | Ripristino misurato rispetto agli oggetti tempo di ripristino confermati (RTO), gestione degli incidenti e comunicazione registrati e controllabili, risposta coordinata in tutta l'azienda e notifica normativa o contrattuale integrata nella procedura. | Recupero dimostrabile a fronte di impegni e obblighi soddisfatti nel corso dell’audit. Contro il sovraccarico di coordinamento della risposta a livello aziendale e il peso del processo che la governance formale degli incidenti aggiunge a ogni evento. | ### Miglioramento continuo L'eccellenza operativa è una pratica continua che richiede continui investimenti in misurazione, apprendimento e miglioramento. I team che trattano le operazioni come impostazione singola si degradano nel tempo man mano che i sistemi diventano complessi e Knowledge operativo si diffonde. I team che abbracciano il miglioramento continuo combinano la capacità operativa, offrendo un valore crescente con uno sforzo sostenibile. #### Metriche operative e DORA Le metriche DORA, del programma DevOps Research and Assessment (DORA), basato sul Rapporto sullo sviluppo software assistito da AI 2025, forniscono misure convalidate dalla ricerca della fornitura del software e delle prestazioni operative. I team con prestazioni di consegna elevate mostrano risultati misurabilmente migliori nelle cinque metriche chiave seguenti: DORA suddivide queste cinque metriche in due fattori: produttività e instabilità. **Il throughput** è costituito da lead time per le modifiche, frequenza di distribuzione e tempo di ripristino della distribuzione non riuscito: misura la quantità di modifiche che passano alla produzione. **L'instabilità** ha la percentuale di errori di modifica e le metriche della percentuale di rielaborazione rimanenti: misura il grado di efficacia di queste distribuzioni. - **Frequenza di distribuzione:** misura la frequenza con cui viene rilasciata alla produzione. I team che si muovono più velocemente vengono distribuiti su richiesta, spesso più volte al giorno. La distribuzione frequente consente un feedback rapido, riduce il rischio di distribuzione attraverso modifiche più piccole e si correla a una consegna più rapida delle funzioni. Una bassa frequenza di distribuzione indica un dolore che i team evitano, creando un circolo vizioso in cui una distribuzione poco frequente rende ogni distribuzione più rischiosa. - **Lead time per modifiche:** misura il tempo dalla conferma del codice alla distribuzione in produzione. Il lead time sub-giornaliero è un segnale forte di consegna ad alte prestazioni e il lead time sub-orario indica una capacità di consegna eccezionale. Lead time brevi consentono di rispondere rapidamente alle esigenze degli utenti, alle minacce competitive e alle vulnerabilità della sicurezza. Lead time lunghi indicano un sovraccarico di processo eccessivo, un'automazione insufficiente o un disfunzionamento organizzativo. - **Change failure rate:** misura la percentuale di distribuzioni che causano incidenti di produzione che richiedono una riparazione. I team più affidabili mantengono questo tasso costantemente basso, una piccola frazione di tutte le distribuzioni. Un tasso elevato di errori nelle modifiche indica test insufficienti, convalida della distribuzione inadeguata o modifiche affrettate senza controlli di qualità adeguati. - **Failed deployment recovery time (FDRT):** misura la velocità con cui si esegue il ripristino da una distribuzione non riuscita che richiede un intervento immediato. Il recupero sotto un'ora è un forte segnale di maturità della consegna. Tempi di ripristino brevi indicano una risposta agli incidenti matura, funzionalità di ritiro efficaci e runbook ben collaudati. Tempi di ripristino lunghi indicano una convalida della distribuzione insufficiente, la mancanza di un ritiro automatico o la non chiara proprietà degli incidenti di produzione. - **Deployment Rework Rate:** misura la frequenza con cui si verificano distribuzioni non pianificate a causa di un incidente di produzione. Una bassa percentuale di rielaborazione indica rilasci stabili e ben testati che non generano interventi di ripristino a valle. Un'alta percentuale di rielaborazione indica che gli incidenti di produzione determinano regolarmente distribuzioni di emergenza, segnalando lacune nei test di pre-produzione, nella convalida dei rilasci o nelle pratiche di gestione del cambiamento. Misurare le metriche DORA in modo continuo e con trend nel tempo. Le traiettorie di miglioramento contano più dei valori assoluti. Un team che migliora le distribuzioni da mensili a settimana mantenendo la qualità dimostra i progressi. Tenere traccia delle metriche nei cruscotti digitali operativi visibili a tutta l'organizzazione, creando trasparenza sulle prestazioni operative e sull'avanzamento verso gli obiettivi di miglioramento. #### Retrospettive e recensioni - **Sprint retrospettive:** estrarre l'apprendimento dal lavoro recente, inclusi incidenti operativi, sfide di distribuzione, attrito dei processi e dinamiche del team. Le retrospettive dovrebbero avvenire regolarmente (ogni sprint o ogni mese) creando un ritmo di riflessione continua piuttosto che attendere le crisi. Eseguire retrospettive utilizzando formati strutturati che incoraggiano la partecipazione e risultati fruibili. I formati comuni includono: - Start/Stop/Continue - cosa dovremmo iniziare a fare, smettere di fare, continuare a fare? - Mad/Sad/Glad - riflessione emotiva sulle esperienze recenti - Sequenza temporale: ricostruire gli eventi sprint e identificare gli schemi). Convertire gli approfondimenti retrospettivi in voci azioni concrete con titolari e date di completamento. Retrospettive che generano lunghe discussioni ma nessuna azione fanno perdere tempo e alimentano cinismo. Le retrospettive efficaci producono 2-3 miglioramenti fruibili per sessione. Tenere traccia del completamento degli elementi azione in tutte le retrospettive in cui i team sono responsabili del follow-through. Assicurarsi di ruotare i facilitatori evitando che una sola persona domini la discussione. - **Revisioni operative:** valutare lo stato operativo aggregato attraverso revisioni aziendali trimestrali o mensili. I riesami operativi esaminano i dati delle tendenze, confrontano gli obiettivi, identificano le opportunità di miglioramento e allocano gli investimenti per il miglioramento. Queste revisioni coinvolgono anche la dirigenza, assicurando risorse per il lavoro di miglioramento operativo che compete con lo sviluppo delle funzioni. Includere le metriche operative nelle revisioni: - **Disponibilità:** Effettivo rispetto al target, per user journey e nel complesso - **Prestazioni:** Tendenze della latenza, per percentile e flussi critici - **Incidenti:** Conteggio per gravità, tempo medio di rilevamento, tempo medio di risoluzione - **Stato della distribuzione:** Frequenza, percentuale di successo, frequenza di ritiro - **Carico operativo:** Pagine su chiamata, interventi manuali, ore di fatica I riesami creano responsabilità per l'eccellenza operativa anziché considerare le operazioni come lavoro in background invisibile che riceve attenzione solo durante le crisi. Esami operativi periodici segnalano l'impegno dell'organizzazione per operazioni sostenibili. #### Revisioni ingegneristiche Le retrospettive analizzano come è andato il lavoro recente e le revisioni operative segnalano lo stato aggregato alla dirigenza. Le revisioni tecniche sono la cadenza ricorrente in cui il team trasforma i segnali operativi in decisioni di consegna. Questi elementi interagiscono, collegando i cruscotti digitali, le tendenze degli incidenti e i budget degli errori prodotti dal sistema ai piani di rilascio e alle priorità degli arretrati che il team si impegna a rispettare. L'esecuzione di questa revisione mantiene la salute operativa di proprietà delle persone che eseguono il lavoro, rendendola parte integrante della pianificazione anziché un ripensamento. - **Pianificazione dei rilasci:** Considerare la preparazione operativa come un input di prima classe insieme all'ambito delle funzioni, alle modifiche della sequenza per limitare il raggio di esplosione e ai rilasci in attesa quando si esaurisce il budget degli errori. In questo modo, la disciplina di distribuzione e le priorità aziendali vengono conciliate deliberatamente, non sotto la pressione delle scadenze. - **Triage backlog:** Collocare il lavoro operativo (ad esempio, voci azione incidente, operazioni di prevenzione, indebitamento tecnico, lacune di monitoraggio) nello stesso backlog del lavoro sulle funzioni in modo che sia competitivo per la capacità. Il triage regolare assegna i titolari e la priorità, chiudendo il ciclo dalle autopsie al lavoro impegnato. #### Revisioni della preparazione operativa - I **riesami della preparazione** valutano se le nuove funzioni o i nuovi sistemi soddisfano i requisiti operativi prima del lancio in produzione. Gli ORR prevengono i disastri operativi individuando lacune operative durante lo sviluppo quando le correzioni sono più economiche rispetto alla riparazione post-lancio. Eseguire ORR prima del lancio in produzione di nuove soluzioni, funzionalità principali o modifiche architettoniche con implicazioni operative. I tempi delle ORR sono importanti: troppo presto e l'implementazione rimane incompleta, troppo tardi e le preoccupazioni operative sembrano bloccare la distribuzione causando pressioni per ignorare le correzioni. Di seguito sono riportate le preoccupazioni e le domande da tenere presenti durante l'esecuzione di un ORR: - **Monitoraggio e avvisi:** Vengono strumentate metriche sufficienti? Esistono avvisi per gli scenari di errore? I cruscotti digitali configurati mostrano lo stato di salute? - **Documentazione:** Esistono runbook per le operazioni comuni? L'architettura è documentata e consente ai soccorritori di comprendere il sistema? Le procedure di inoltro al livello superiore sono chiare? - **Distribuzione e ritiro:** La distribuzione può essere eseguita in modo affidabile? Esiste una procedura di ritiro? La distribuzione è stata convalidata nella gestione temporanea? - **Prestazioni e scalabilità:** Gli obiettivi prestazionali sono stati convalidati sotto carico realistico? C'è spazio per la crescita? Ci sono rischi di limite del governor? - **Sicurezza e conformità:** I controlli di sicurezza sono stati completati? I requisiti di controllo sono soddisfatti? Il controllo dell'accesso soddisfa i requisiti? - **Dipendenze:** Vengono identificate le dipendenze esterne? I partner integrazione hanno SLA? Esiste un comportamento di fallback per gli errori di dipendenza? Lancio della produzione del cancello al completamento dell'ORR. I team prendono sul serio le preoccupazioni operative quando diventano requisiti di distribuzione anziché essere utili. I gate ORR impediscono l'accumulo di debito operativo che rende sempre più difficile l'eccellenza operativa futura. #### Loop di feedback e cultura dell'apprendimento Le organizzazioni di apprendimento acquisiscono sistematicamente l'esperienza operativa e la convertono in procedure migliorate. La cultura dell'apprendimento dipende da: sicurezza psicologica, in modo che le persone possano segnalare problemi senza paura; misurazione, in modo che i dati possano rivelare schemi; e impegno, in modo che la dirigenza dedichi tempo al miglioramento. - **Sicurezza psicologica:** consente una discussione onesta di problemi, errori e quasi mancanze senza paura di essere puniti. I team privi di sicurezza psicologica nascondono i problemi fino a renderli catastrofici, impedendo un intervento precoce. Costruire la sicurezza psicologica attraverso autopsie senza colpe, celebrare la scoperta dei problemi e modellare la vulnerabilità della leadership discutendo dei propri errori. - **Misurazione:** rende visibile lo stato operativo. Le metriche operative, le tendenze degli incidenti, gli indicatori DORA e i punteggi di soddisfazione degli utenti rivelano le prestazioni effettive rispetto alle prestazioni desiderate. La misurazione consente di stabilire in modo obiettivo la priorità del lavoro di miglioramento in base all'impatto anziché ai reclami più frequenti o agli incidenti più recenti. - **Tempo di miglioramento:** riconosce che l'eccellenza operativa richiede investimenti. I team che investono il 100% della capacità nelle funzioni non hanno tempo per migliorare le attività operative, creando indebitamento tecnico e operativo che alla fine costringe a reagire alla crisi. Riservare deliberatamente la capacità ingegneristica per il miglioramento operativo, la riduzione del debito tecnico, gli investimenti in attrezzature e automazione. Questa disciplina previene il degrado a lungo termine abilitando una velocità delle funzioni sostenibile. Creare loop di feedback che collegano l'esperienza operativa alle decisioni di progettazione. Quando gli incidenti rivelano debolezze architettoniche, assegnare la priorità ai miglioramenti architettonici per evitare incidenti simili. Quando il monitoraggio rileva un peggioramento delle prestazioni, assegnare la priorità al lavoro di ottimizzazione. Quando gli errori di distribuzione rivelano lacune nei test, assegnare la priorità ai miglioramenti della copertura dei test. I loop di feedback creano cicli virtuosi in cui le operazioni migliorano continuamente anziché degradarsi gradualmente. | Fase | Aspetto | Scambi | | :---- | :---- | :---- | | **Ottimizzato -** Migliora dall'esperienza operativa diretta. | Revisione informale. Retrospettive dopo incidenti e rilasci, miglioramenti tracciati come backlog, stato operativo giudicato in base ai segnali nativi e osservazione diretta. | Il costo minimo, l'apprendimento avviene vicino al lavoro. Il miglioramento è reattivo e non uniforme, dipende da chi ricorda cosa e il degrado è invisibile fino a quando non emerge come incidente. | | **Ottimizzazione scala -** Migliorare rispetto alle tendenze misurate. | Miglioramento misurato. DORA e le metriche operative hanno mostrato un trend nel tempo, revisioni operative pianificate rispetto agli obiettivi e un ORR che raccoglie i nuovi lanci. | Assegnazione di priorità agli obiettivi dai dati di trend e dai gap operativi rilevati prima del lancio. Richiede la strumentazione per calcolare le metriche e il tempo di permanenza per esaminarle e intervenire. | | **Ottimizzazione della governance -** Miglioramento a uno standard impegnato in tutta l'azienda. | Miglioramento gestito. Metriche operative riportate alla dirigenza in base a obiettivi impegnati, allocazione di capacità protetta per il lavoro operativo e standard di miglioramento applicati in modo coerente in tutta l'azienda. | Un miglioramento sostenibile e responsabile richiede investimenti e impegno continui. | ## Elenco di controllo riepilogo L'eccellenza operativa richiede la progettazione di soluzioni per l'osservabilità, la distribuzione tramite opportunità in corso di realizzazione automatiche, la risposta efficace agli incidenti e l'apprendimento continuo dall'esperienza operativa. Esaminare questo elenco di controllo per valutare la maturità operativa: **Osservabilità e monitoraggio** - La soluzione include l'acquisizione completa degli ID di correlazione per il tracciamento distribuito - Monitoraggio evento abilitato e File registro eventi esportati su piattaforma esterna per la conservazione oltre i limiti nativi - Proactive Monitoring configurato con soglie sintonizzate sulla base di riferimento dell'organizzazione - Basi di riferimento del Centro scala stabilite e riviste dopo ogni rilascio - Imposta Itinerario di controllo esportazioni per la conservazione oltre 180 giorni - Itinerario di controllo campi abilitato per i campi di dati sensibili e regolamentati ] - Le analisi di Data Detect identificano e classificano i dati sensibili nei campi, con risultati che determinano la classificazione e la correzione della conformità - Controllo dello stato rivisto trimestralmente rispetto alla base di riferimento per la sicurezza con i risultati corretti in base alla priorità del rischio - Processi utente critici con indicatori di punti salienti e monitoraggio della percentuale di successo - Monitoraggio integrazione tiene traccia dello stato bidirezionale di tutte le dipendenze esterne - Obiettivi dei livelli di servizio definiti per disponibilità, latenza, percentuale di successo e produttività - L'architettura di avviso include livelli di gravità, contesto fruibile e chiaro inoltro al livello superiore **Pratiche di sviluppo** - Controllata da tutte le versioni dei metadati che abilitano build riproducibili dall'origine - Le organizzazioni vuote o i Developer Sandbox supportano lo sviluppo isolato - Le modifiche della configurazione seguono lo stesso processo di revisione delle modifiche del codice - Il rilevamento della fluttuazione della configurazione viene eseguito ogni trimestre con correzione documentata - La strategia Sandbox include ambienti di sviluppo, integrazione, gestione temporanea e formazione - Aggiornamento Sandbox e caricamento dati automatico - La pipeline CI convalida ogni conferma con test automatici - Il branch principale protetto richiede il successo dell'IC prima dell'unione - La pipeline CD viene distribuita attraverso gli ambienti con convalida progressiva - La convalida della distribuzione viene eseguita prima della distribuzione in produzione - Monitoraggio della distribuzione tiene traccia delle metriche chiave durante e dopo le distribuzioni - I runbook di distribuzione documentano le procedure, la convalida e il ritiro - La piramide di test include test di unità, test di integrazione e test end-to-end - Esecuzione di test automatizzata in pipeline CI - La revisione del codice richiede due approvazioni con criteri di revisione espliciti - Richieste di estrazione mantenute piccole (200-400 righe) per una revisione approfondita **Automazione ed efficienza** - Automazione dichiarativa utilizzata ove applicabile (flusso, formula, convalida, approvazioni) - Flussi progettati in modo modulare con sottoflussi riutilizzabili - Il framework trigger offre una struttura coerente per l'automazione Apex - I processi batch implementano l'impotenza e la registrazione completa - Processi pianificati eseguiti durante periodi di traffico basso con monitoraggio - Gli eventi piattaforma abilitano l'architettura basata sugli eventi per l'elaborazione asincrona - Schemi degli eventi progettati per la stabilità con la strategia di controllo delle versioni - La visibilità operativa dell'automazione include registrazione, monitoraggio e avviso **Gestione incidenti** - Il monitoraggio automatico fornisce il rilevamento principale degli incidenti - Livelli di gravità degli incidenti definiti con chiari requisiti di tempistica di risposta - Procedure di risposta agli incidenti documentate nei runbook - La rotazione su chiamata distribuisce equamente l'onere operativo in tutto il team - Cancellazione dei percorsi di inoltro al livello superiore con trigger basati sul tempo e sulla complessità - I tecnici su chiamata dispongono dell'accesso, degli strumenti e delle informazioni necessari - Diritto su chiamata compensato equamente - Automazioni post mortem senza colpa condotte per tutti gli incidenti di gravità 1 e 2 - L'autopsia documenta tempistica, causa principale, impatto, miglioramento del rilevamento e azioni di prevenzione specifiche - Risultati post mortem ampiamente condivisi per l'apprendimento organizzativo **Miglioramento continuo** - Metriche DORA monitorate continuamente (frequenza di distribuzione, lead time, percentuale di errori di modifica, tempo di ripristino, percentuale di rielaborazione) - Le retrospettive Sprint si svolgono regolarmente con formato strutturato e risultati fruibili - I riesami operativi valutano lo stato aggregato trimestralmente o mensilmente - Lancio di nuove funzioni in produzione per il cancello di controllo - La sicurezza psicologica consente una discussione onesta dei problemi e degli errori - Capacità ingegneristica deliberatamente riservata al miglioramento operativo - I cicli di feedback collegano l'esperienza operativa per progettare miglioramenti - L'eccellenza operativa vista come responsabilità di tutti, non solo del team operativo

Condividere i propri commenti sul framework ben progettato.

# Eccellenza operativa - DevOps Patterns
Ulteriori informazioni sull'[eccellenza operativa](/docs/architect/it-it/well-architected/guide/operational-excellence.html) ben progettata → [DevOps Practices](/docs/architect/it-it/well-architected/guide/operational-excellence.html#devops-practices) ## Sviluppo basato sulla fonte **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Impostazione controllo versione | ✅ Tutti i metadati memorizzati in formato sorgente Git utilizzando la struttura del progetto Salesforce DX con .forceignore configurato per escludere i file non pertinenti; tutti i membri del team si clonano dall'archivio centrale | | Utilizzo organizzazione vuota | ✅ Gli sviluppatori creano organizzazioni vuote effimere dall'origine per il lavoro sulle funzioni, confermano le modifiche al controllo delle versioni ed eliminano le organizzazioni vuote al completamento delle funzioni | | Messaggi di conferma | ✅ Ogni conferma include un messaggio chiaro e conciso che spiega cosa è cambiato e perché; i messaggi seguono la convenzione del team (ad esempio, "feat:", "fix:", "docs:") | | Tracciamento delle modifiche | ✅ Ogni modifica dei metadati acquisita nel controllo di versione con identità autore, indicazione oraria e differenza che mostra le modifiche esatte | | Processo di revisione codice | ✅ Tutte le modifiche legate alla produzione passano attraverso le richieste di estrazione che richiedono l'approvazione del riesame prima dell'unione; la configurazione dichiarativa riceve lo stesso esame del codice | | Procedure di ritiro | ✅ Versioni precedenti recuperabili dalla cronologia Git tramite Checkout o operazioni di ripristino; il team ha documentato procedure di ritiro testate in non produzione | | Itinerario di controllo | ✅ Cronologia completa delle modifiche conservata nel controllo delle versioni a supporto dei requisiti di conformità e delle indagini di sicurezza | | Strategia di ramificazione | ✅ Modello di ramificazione Git coerente (GitFlow, GitHub Flow o basato su trunk) appropriato alle dimensioni del team e alla frequenza di rilascio; documentato e applicato | | Migrazione da organizzazione | ✅ Transizione allo sviluppo basato sulla fonte completata all'inizio del ciclo di vita della soluzione prima che le abitudini si solidifichino intorno allo sviluppo basato sull'organizzazione | | Configurazione .gitignore | ✅ Il repository esclude i file generati, le impostazioni e le credenziali specifiche dell'utente; include solo i file di origine che i team intendono modificare | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Organizzazione come fonte di verità | ⚠️ Lo sviluppo avviene direttamente nei Sandbox condivisi con i metadati esportati nel controllo di versione come ripensamento; le organizzazioni e il controllo di versione divergono creando errori di distribuzione | | .gitignore inadeguato | ⚠️ Il repository include i file generati, le impostazioni specifiche dell'utente, i binari di grandi dimensioni o le credenziali; il repository si gonfia e rischia l'esposizione alla sicurezza | | Messaggi di conferma vaghi | ⚠️ Commit come "correggi bug" o "aggiornamenti" non forniscono contesto per ciò che è cambiato o perché; ostacola le indagini di controllo e la manutenzione futura | | Impegni molto rari | ⚠️ Gli sviluppatori confermano serie di modifiche di grandi dimensioni ogni settimana anziché piccole conferme incrementali più volte al giorno; difficile da rivedere, difficile isolare gli errori | | Impegno diretto al principale | ⚠️ Gli sviluppatori inviano le modifiche direttamente al branch principale/di produzione ignorando la revisione e la convalida; elimina i cancelli di qualità | | Nessuna strategia di ramificazione | ⚠️ Il team manca di un modello di ramificazione coerente; gli sviluppatori creano nomi di branch e schemi di unione arbitrari; crea confusione e conflitti di unione | | File binari in Git | ⚠️ File binari di grandi dimensioni (PDF, video, archivi) confermati per Git che gonfiano le dimensioni del repository e rallentano le operazioni di clonazione | | Impegno delle credenziali | ⚠️ Chiavi API, password, credenziali di integrazione o token di protezione per il controllo delle versioni; crea vulnerabilità di sicurezza anche dopo la rimozione da conferme successive | | Ignorare i conflitti di unione | ⚠️ Conflitti di unione risolti accettando un lato senza analisi; perde le modifiche o introduce bug | | Verifica senza impegno | ⚠️ Il team non verifica mai che i metadati confermati rappresentino effettivamente le modifiche previste; gli errori di formato dei metadati o le modifiche non intenzionali vengono ignorati | ## Strategia Sandbox **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Developer Sandbox | ✅ I singoli sviluppatori utilizzano Developer Sandbox per il lavoro delle funzioni, test di unità e iterazione rapida; ogni sviluppatore ha un ambiente dedicato | | Developer Pro Sandbox | ✅ I team che sviluppano pacchetti gestiti o richiedono limiti di memoria più elevati utilizzano i Sandbox Developer Pro per il lavoro collaborativo | | Sandbox Copia parziale | ✅ I test di integrazione utilizzano Sandbox Copia parziale con esempi di dati rappresentativi (10.000 record per oggetto) configurati tramite modelli di dati | | Sandbox copia completa | ✅ Test delle prestazioni, gestione temporanea simile alla produzione e convalida della migrazione dei dati utilizzano Sandbox Copia completa contenenti dati di produzione e configurazione completi | | Controlli della riservatezza dei dati | ✅ Accesso Sandbox Copia completa limitato ai ruoli che richiedono dati di produzione; mascheramento dei dati Shield Platform Encryption applicato per uso non di produzione quando appropriato | | Configurazione endpoint integrazione | ✅ Ogni livello Sandbox si collega agli endpoint di test corrispondenti per le integrazioni esterne; le integrazioni di produzione non si connettono mai dai Sandbox | | Configurazione specifica dell'ambiente | ✅ L'architettura di integrazione utilizza tipi di metadati personalizzati o impostazioni personalizzate per esternalizzare URL endpoint, credenziali e flag di funzioni per ambiente | | Automazione post-aggiornamento | ✅ Gli aggiornamenti Sandbox attivano script Salesforce CLI automatici che ripristinano le impostazioni specifiche del Sandbox, incluse le credenziali di integrazione, il seeding dei dati di test, gli stati flag delle funzioni e la consegna delle email | | Aggiorna pianificazione | ✅ Pianificazione degli aggiornamenti Sandbox documentata e comunicata; aggiornamenti pianificati durante i periodi di bassa attività per ridurre al minimo le interruzioni del team | | Modelli di dati | ✅ I Sandbox Copia parziale utilizzano modelli di dati ben progettati per selezionare i dati rappresentativi tra gli oggetti mantenendo l'integrità referenziale | | Convenzioni di denominazione | ✅ I Sandbox seguono una chiara convenzione di denominazione che indica scopo, titolare e ciclo di aggiornamento (ad esempio, "dev-integration-q2", "uat-release-2-4") | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Sandbox di sviluppo condiviso | ⚠️ Tutti gli sviluppatori lavorano in un unico Sandbox condiviso sovrascrivendo le modifiche reciproche; crea confusione sullo stato distribuibile | | Sandbox obsoleti | ⚠️ Sandbox non aggiornati per mesi che divergono in modo significativo dalla configurazione di produzione; i test in un ambiente non rappresentativo portano a errori di distribuzione | | Nessuna governance dei dati in copia completa | ⚠️ Sandbox Copia completa contenenti informazioni personali di produzione, dati finanziari, dati HIPAA accessibili a tutto il team di sviluppo senza controlli di accesso o mascheramento dei dati | | Integrazioni di produzione da Sandbox | ⚠️ I Sandbox si connettono direttamente agli endpoint di integrazione di produzione creando il rischio che le transazioni di test influiscano sui dati di produzione o sui sistemi esterni | | Configurazione manuale post-aggiornamento | ⚠️ Gli aggiornamenti dei Sandbox richiedono ore di ripristino manuale delle impostazioni; il sovraccarico scoraggia l'aggiornamento dei Sandbox con la frequenza necessaria | | Nessuna documentazione Sandbox | ⚠️ Il team non dispone di documentazione sugli scopi del Sandbox, le pianificazioni degli aggiornamenti, il contenuto dei dati o le procedure di accesso; gli sviluppatori indovinano quale ambiente utilizzare per quale scopo | | Tipo di ambiente singolo | ⚠️ Il team utilizza un solo tipo di Sandbox (tipicamente Developer o Copia completa) per tutti gli scopi; manca dei vantaggi di una strategia Sandbox appropriata per attività | | Accumulo Sandbox | ⚠️ Sandbox allocati a singoli individui o progetti e mai rilasciati quando non sono più necessari; scarsità artificiale nonostante le licenze disponibili | | Dati di test inadeguati | ⚠️ I dati di test nei Sandbox non rappresentano le caratteristiche dei dati di produzione (volumi, relazioni, casi limite); i test in un ambiente non realistico non consentono problemi di produzione | ## Pipeline CI/CD **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Fase impegno di origine | ✅ Gli sviluppatori confermano le modifiche ai branch delle funzioni in Git con messaggi di conferma chiari che spiegano il contesto e la logica | | Fase di analisi statica | ✅ Salesforce Code Analyzer analizza Apex per individuare vulnerabilità di sicurezza (OWASP Top 10), modelli anti-prestazioni (SOQL in loop, DML in loop), problemi di qualità del codice (complessità, duplicazione) e rischi del governor limit; viene eseguito in pochi secondi fornendo un feedback immediato | | Fase di test di unità | ✅ I test Apex eseguono la convalida della logica aziendale e limitano la conformità del governor nell'organizzazione vuota effimera o in un Sandbox di integrazione dedicato; i test correttamente isolati vengono completati in meno di 5 minuti | | Fase di distribuzione convalida | ✅ I metadati vengono distribuiti nel Sandbox di integrazione utilizzando Salesforce CLI con flag --checkonly per la distribuzione solo convalida che esegue test senza confermare modifiche | | Fase di test di integrazione | ✅ I test automatici convalidano i flussi di lavoro multi-componente, i contratti di integrazione esterni, i flussi evento piattaforma e le catene di elaborazione asincrona rispetto all'ambiente di integrazione condiviso con la gestione dei dati di test | | Fase di scansione della sicurezza | ✅ Strumenti di sicurezza aggiuntivi ricercano credenziali codificate, dipendenze vulnerabili, violazioni CRUD/FLS e violazioni delle policy di conformità; i risultati critici interrompono le build | | Fase di distribuzione UAT | ✅ Le modifiche che passano tutti i cancelli automatici vengono distribuite all'ambiente di test di accettazione utente per la convalida aziendale; la distribuzione può essere automatizzata o richiedere l'approvazione manuale in base al rischio di modifica | | Fase di distribuzione della produzione | ✅ Dopo l'approvazione UAT, le modifiche vengono distribuite alla produzione con l'esecuzione automatica con un solo clic, la registrazione completa e la funzionalità di ritiro immediato | | Tempo di esecuzione della pipeline | ✅ End-to-end pipeline completa in meno di 15 minuti per le modifiche tipiche che consentono un feedback rapido; più a lungo per le grandi distribuzioni o suite di test estese | | Creazione di artefatti | ✅ Pipeline conserva i pacchetti di distribuzione, i risultati dei test, i rapporti di analisi della sicurezza e i registri di esecuzione per la conformità e la risoluzione dei problemi | | Tooling opportunità in corso di realizzazione | ✅ I team utilizzano Salesforce DevOps Center per CI/CD nativi della piattaforma o si integrano con piattaforme esterne (Azioni GitHub, CI GitLab, Azure DevOps, CircleCI, Jenkins, Copado, Gearset, AutoRABIT) | | Notifiche di errore | ✅ Gli errori delle opportunità in corso di realizzazione attivano le notifiche per confermare l'autore e i canali pertinenti con contesto diagnostico che consente una risoluzione rapida | | Protezione branch | ✅ Filiali principali/di produzione protetti che richiedono il superamento dei controlli CI e delle revisioni approvate prima dell'unione; Impediti gli impegni diretti | | Promozione dell'ambiente | ✅ flusso di modifiche attraverso il percorso di promozione definito (sviluppo → integrazione → UAT → produzione) con convalida in ogni fase | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Distribuzioni manuali | ⚠️ Modifiche distribuite manualmente tramite serie di modifiche o comandi Salesforce CLI con passaggi incoerenti; errori umani, passaggi mancati, mancanza di itinerario di controllo | | Nessuna analisi statica | ⚠️ Le opportunità in corso di realizzazione saltano Salesforce Code Analyzer o strumenti simili; vulnerabilità della sicurezza, anti-schemi delle prestazioni, problemi di qualità del codice raggiungono la produzione | | Test insufficienti | ⚠️ Pipeline convalida solo una copertura minima del 75% senza eseguire test di integrazione o convalidare i flussi degli utenti chiave; le regressioni scivolano attraverso | | Nessuna scansione di sicurezza | ⚠️ Le opportunità in corso di realizzazione non rilevano mai credenziali codificate, dipendenze vulnerabili o violazioni di CRUD/FLS; problemi di sicurezza rilevati nei riesami di produzione o di sicurezza | | Esecuzione lenta delle opportunità in corso di realizzazione | ⚠️ La pipeline end-to-end richiede più di 45-60 minuti scoraggiando le conferme frequenti e rallentando i loop di feedback; gli sviluppatori si impegnano meno frequentemente accumulando modifiche più grandi | | Errori della pipeline ignorati | ⚠️ I team ignorano o ignorano gli errori delle opportunità in corso di realizzazione per rispettare le scadenze; i cancelli di qualità diventano teatro anziché controlli effettivi | | Nessuna parità dell'ambiente di test | ⚠️ CI/CD convalida in un ambiente con configurazione, limiti o caratteristiche dei dati diverse da quelle di produzione; il superamento della convalida non garantisce il successo della produzione | | Capacità di ritiro mancante | ⚠️ Pipeline automatizza la distribuzione ma non fornisce alcun ritiro automatico; il ripristino da una distribuzione non corretta richiede procedure di emergenza manuali | | Nessun registro di distribuzione | ⚠️ Distribuzioni eseguite senza registrazione completa; la risoluzione degli errori o il controllo delle distribuzioni diventa difficile | | Test "tutto o niente" | ⚠️ Pipeline esegue tutti i test per ogni modifica indipendentemente da ciò che è cambiato; la suite di test di 30 minuti viene eseguita anche per gli aggiornamenti della documentazione | ## Procedure di distribuzione sicura **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Flag funzioni | ✅ Le modifiche ad alto rischio vengono implementate con le funzioni disabilitate dietro il tipo di metadati personalizzato o la configurazione dell'impostazione personalizzata; consente il test in produzione senza esposizione degli utenti, l'implementazione graduale ai segmenti, il test A/B e il ritiro immediato tramite modifica della configurazione | | Ambito flag funzione | ✅ Flag delle funzioni riservati a modifiche ad alto rischio che influiscono su processi aziendali critici, operazioni sensibili alle prestazioni o nuovi schemi di integrazione; non tutte le funzioni necessitano di flag | | Distribuzioni Canarie | ✅ Le modifiche critiche per l'azienda vengono rilasciate per prime a un piccolo sottoinsieme di utenti (5-10% tramite insiemi di autorizzazioni o filtro degli attributi utente); la coorte canarino monitorata intensamente 24-48 ore misurando le percentuali di successo, le prestazioni e le percentuali di errore prima di espandere l'implementazione | | Finestre di distribuzione | ✅ Distribuzioni pianificate durante periodi di basso utilizzo informati dai registri di utilizzo dell'API di Monitoraggio evento che mostrano gli schemi di traffico effettivi; evita picchi di utilizzo, chiusura di fine mese, chiusura di fine trimestre, eventi aziendali importanti | | Comunicazione di distribuzione | ✅ Gli stakeholder ricevono una notifica preventiva delle finestre di distribuzione, inclusa la durata prevista, le funzionalità interessate e la tempistica delle decisioni di ritiro | | Procedure di ritiro | ✅ Procedure di ritiro documentate e testate per ogni tipo di distribuzione; il team può eseguire il ritiro in meno di 30 minuti quando necessario | | Test di rollback | ✅ Procedure di ritiro convalidate in un ambiente non di produzione prima di distribuzioni significative che garantiscono la funzionalità di ripristino | | Convalida della distribuzione | ✅ I test fumo post-distribuzione convalidano i flussi utente critici, gli endpoint di integrazione e le funzionalità chiave immediatamente dopo il rilascio | | Coordinamento modifiche | ✅ Strategia di distribuzione coordinata quando le modifiche riguardano più sistemi o richiedono rilasci sincronizzati tra Salesforce e piattaforme esterne | | Monitoraggio durante la distribuzione | ✅ Monitoraggio ottimizzato attivo durante la finestra di distribuzione e il periodo di osservazione post-distribuzione (24-48 ore) per rilevare picchi di tasso di errore, peggioramento delle prestazioni o errori del flusso utente | | Schema blu-verde per le integrazioni | ✅ I servizi esterni fronting Salesforce utilizzano distribuzioni blu-verdi mantenendo due ambienti simili a quelli di produzione, distribuendo prima inattivi, passando al traffico dopo la convalida | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Distribuzioni Big Bang | ⚠️ Rilasci di grandi dimensioni contenenti molte funzioni, refactoring e modifiche distribuiti simultaneamente senza implementazione graduale; l'errore influisce immediatamente su tutti gli utenti | | Distribuzioni ore di punta | ⚠️ Rilasci pianificati durante l'orario di ufficio di punta (mezzo giorno, fine mese, fine trimestre) quando l'utilizzo è massimo e l'impatto degli utenti dei problemi massimizzato | | Nessun piano di ritiro | ⚠️ Le distribuzioni procedono senza procedure di ritiro documentate e testate; quando emergono problemi, il team si sforza di capire il ripristino | | Attiva/disattiva funzione come ripensamento | ⚠️ Flag delle funzioni aggiunti in modo reattivo quando si verificano problemi anziché progettati in modo proattivo per le modifiche ad alto rischio; limita le opzioni di ritiro all'inversione completa della distribuzione | | Nessuna convalida della distribuzione | ⚠️ Modifiche distribuite alla produzione senza test fumogeni post-distribuzione; il team presume che la distribuzione sia riuscita e prosegue; problemi rilevati ore dopo dagli utenti | | Procedure di ritiro non testate | ⚠️ Procedure di ritiro documentate ma mai testate in non produzione; durante l’incidente effettivo, la procedura non riesce o si rivela inadeguata | | Modifiche simultanee multi-sistema | ⚠️ Modifiche coordinate tra Salesforce e i sistemi esterni distribuite senza test di sincronizzazione o compatibilità; crea errori di integrazione | | Nessun miglioramento del monitoraggio | ⚠️ Le distribuzioni procedono senza un monitoraggio ottimizzato durante la finestra di distribuzione; i problemi vengono rilevati attraverso i reclami degli utenti anziché gli avvisi proattivi | | Distribuzioni del fine settimana | ⚠️ Rilasci principali distribuiti venerdì sera o nei fine settimana quando la copertura su chiamata è ridotta e la disponibilità del supporto del fornitore è limitata | ## Strategia di test **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Copertura test di unità | ✅ Copertura test significativa che convalida le regole aziendali, i casi limite, i percorsi di errore e l'approccio al limite del governor; supera in modo significativo il requisito minimo del 75% | | Qualità test di unità | ✅ I test convalidano la logica aziendale, non la funzionalità della piattaforma; i test di unità ben scritti sono veloci (millisecondi), isolati (nessuno stato condiviso) e focalizzati (ogni test convalida un comportamento) | | Test della strategia dati | ✅ I test utilizzano i metodi @TestSetup per i dati di test comuni; evitare query SOQL nei test ove possibile; utilizzare Test.loadData() per caricare risorse statiche | | Dipendenze esterne fittizie | ✅ Test di unità simulano chiamate esterne utilizzando stub di test e iniezione di dipendenze che consentono un'esecuzione rapida senza richieste HTTP effettive | | Test di integrazione | ✅ Convalidare le interazioni tra trigger, flussi, eventi piattaforma, processi batch e chiamate esterne in esecuzione nei Sandbox con dati di test rappresentativi | | Affidabilità del test di integrazione | ✅ I test di integrazione sono ripetibili e deterministici; errori sporadici risolti tramite meccanismi di sincronizzazione come ID replay evento piattaforma e polling processo batch | | Test end-to-end | ✅ Test automatici del browser (Selenium, Playwright, Provar) convalidano i journey utente completi per i flussi business-critical esercitando il sistema attraverso l'interfaccia utente esattamente come gli utenti interagiscono | | Focus test E2E | ✅ I test E2E si concentrano sui percorsi utente di valore più alto a causa di un'esecuzione più lenta (minuti per test) e un maggiore carico di manutenzione dovuto alle modifiche dell'interfaccia utente | | Test di carico | ✅ Prestazioni convalidate in carichi simultanei realistici degli utenti e volumi di dati utilizzando i servizi di test del carico Salesforce o strumenti di terze parti; rivela problemi di limiti governor, contese di blocco, deterioramento delle prestazioni | | Frequenza test di carico | ✅ Test di carico eseguiti prima dei rilasci principali e periodicamente (trimestralmente) per convalidare le prestazioni a volumi di produzione correnti 3x-5x | | Piramide di prova | ✅ distribuzione dei test bilanciata: molti test di unità (centinaia, minuti), meno test di integrazione (decine, minuti), pochi test E2E (meno di 20, minuti); feedback rapido alla base, convalida completa in alto | | Isolamento test | ✅ I test non dipendono l'uno dall'altro; possono essere eseguiti in qualsiasi ordine; ogni test lascia il sistema in stato pulito o utilizza @TestSetup per un punto di partenza coerente | | Casi di test negativi | ✅ I test convalidano la gestione degli errori, l'applicazione delle regole di convalida, l'applicazione delle autorizzazioni e il deterioramento in condizioni avverse | | Test limite governor | ✅ I test convalidano specificamente il comportamento in avvicinamento ai limiti del governor, inclusi i limiti delle query SOQL, i limiti DML, il tempo CPU, le dimensioni dell'heap | | Esecuzione di test continui | ✅ I test vengono eseguiti automaticamente a ogni conferma tramite pipeline CI/CD; i test non riusciti impediscono la distribuzione in ambienti superiori | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Test della copertura | ⚠️ Test scritti esclusivamente per raggiungere una copertura minima del 75% senza convalidare regole aziendali o casi limite; test che non affermano nulla o testano percorsi di codice banali | | Test delle funzionalità della piattaforma | ⚠️ I test confermano che Salesforce salva i record o che le query SOQL funzionano anziché convalidare la logica aziendale; spreca fatica per le garanzie della piattaforma | | Nessuna strategia fittizia | ⚠️ I test di unità eseguono chiamate effettive ai sistemi esterni; i test sono lenti, fragili per la disponibilità dei sistemi esterni e consumano limiti API | | Errori sporadici dei test | ⚠️ I test vengono superati o non vengono eseguiti in modo imprevedibile in base ai tempi di esecuzione, allo stato dei dati o all'ordine di esecuzione del test; i team imparano a ignorare gli errori e riproducono i test fino a quando non vengono superati | | Nessun test di integrazione | ⚠️ Esistono solo test di unità; il team non convalida mai che trigger, flussi, eventi piattaforma e processi batch funzionino correttamente insieme | | Solo test manuale E2E | ⚠️ Flussi utente critici convalidati manualmente prima di ogni rilascio; nessun test E2E automatico; regressioni rilevate in produzione quando i test manuali mancano gli scenari | | Nessuna prova di carico | ⚠️ Prestazioni mai convalidate sotto carichi simultanei realistici; problemi di limite del governor, contesa di blocco o deterioramento delle prestazioni rilevati in produzione | | Test delle dipendenze dei dati | ⚠️ I test dipendono da record specifici esistenti nell'organizzazione o assumono una configurazione utente particolare; si interrompono quando il Sandbox viene aggiornato o la configurazione cambia | | Nessun caso di test negativo | ⚠️ I test convalidano solo scenari di percorso felice; non testare mai la gestione degli errori, l'imposizione della convalida o i controlli delle autorizzazioni; le modalità di errore non vengono rilevate | | Test saltati | ⚠️ Test non riusciti commentati da @isTest e ignorati anziché corretti; la suite di test si degrada nel tempo poiché altri test vengono ignorati | ## Revisione codice **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Esamina copertura | ✅ Tutte le modifiche legate alla produzione passano attraverso la revisione del codice tramite richieste di estrazione che richiedono l'approvazione prima dell'unione; include Apex, Aura, LWC, flussi, regole di convalida, insiemi di autorizzazioni, regole di condivisione | | Esamina elenco di controllo criteri | ✅ Elenco di controllo esplicito che copre sicurezza (imposizione CRUD/FLS, convalida degli input), prestazioni (bulkification, ottimizzazione SOQL), conformità del governor limit (schemi di elaborazione, prevenzione ricorsione), manutenibilità (denominazione, documentazione, complessità), copertura dei test (test significativi, casi limite), coerenza architettonica (schemi di progettazione, separazione delle preoccupazioni) | | Revisione dei limiti di dimensione | ✅ Trascinare le richieste mantenute sotto le 400 righe di modifiche significative che consentono una revisione approfondita; grandi funzioni suddivise in modifiche incrementali più piccole che possono essere riviste singolarmente e distribuite in modo indipendente | | Esamina tempistica | ✅ revisioni completate entro un giorno lavorativo mantenendo lo slancio dello sviluppo e fornendo un feedback rapido; revisioni ritardate creano overhead di passaggio dal contesto | | Controlli pre-revisione automatici | ✅ L'analisi statica, i test di unità e la scansione della sicurezza vengono eseguiti automaticamente prima della revisione umana richiesta; i controlli automatici rilevano problemi meccanici in modo che i revisori si concentrino sulla progettazione e sulla logica aziendale | | Responsabilità revisione distribuita | ✅ responsabilità di revisione del codice distribuita tra i team per evitare colli di bottiglia e condividere Knowledge; gli sviluppatori junior rivedono il codice senior e spiegano il proprio codice durante le revisioni | | Revisione della qualità dei commenti | ✅ I revisori forniscono un feedback specifico e fruibile con logica; distinguono tra modifiche richieste (problemi di blocco) e suggerimenti (miglioramenti piacevoli) | | Esamina documentazione | ✅ Le descrizioni delle richieste di estrazione spiegano che cosa è cambiato, perché è cambiato, quali test sono stati eseguiti ed eventuali considerazioni speciali sulla distribuzione o procedure di ritiro | | Revisione configurazione dichiarativa | ✅ Flussi, regole di convalida e modifiche delle autorizzazioni ricevono lo stesso rigore di revisione del codice; la configurazione è architettonica e merita un esame | | Follow-up sui commenti | ✅ Tutti i commenti di riesame affrontati prima dell'unione; domande con risposta, modifiche implementate o motivazione fornita per il motivo per cui il suggerimento non è stato adottato | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Nessuna revisione codice | ⚠️ Modifiche confermate direttamente alla filiale di produzione senza revisione paritaria; elimina il meccanismo di rilevamento dei difetti principali | | Stampaggio di gomma | ⚠️ I revisori approvano le richieste di estrazione in pochi secondi senza esaminare le modifiche; la revisione diventa conformità della casella di controllo anziché controllo della qualità | | Collo di bottiglia revisore singolo | ⚠️ Un solo sviluppatore senior autorizzato a rivedere il codice; crea collo di bottiglia e singolo punto di errore; Knowledge concentrato anziché distribuito | | Richieste di estrazione massiva | ⚠️ Richieste di estrazione contenenti migliaia di righe di modifiche che coprono più funzioni; impossibile da esaminare a fondo che porta a un esame superficiale | | Revisioni ritardate | ⚠️ Le richieste di estrazione non vengono riviste per giorni o settimane; gli sviluppatori perdono contesto e si spostano su altro lavoro; i commenti di revisione arrivano quando lo sviluppatore ha cambiato contesto mentale | | Nessun criterio di revisione | ⚠️ Il team non dispone di criteri espliciti per ciò che i revisori dovrebbero esaminare; la qualità dei revisori varia enormemente a seconda del revisore; alcuni revisori si concentrano sullo stile, altri sulla logica, nessuno completo | | Revisione senza test | ⚠️ I revisori approvano le modifiche solo in base all'ispezione del codice senza estrarre branch e testare localmente o convalidare il superamento dei test automatici | | Controlli automatici ignorati | ⚠️ I revisori approvano le richieste di estrazione nonostante l'analisi statica, le analisi di sicurezza o i test di unità non siano riusciti; vanifica lo scopo dei cancelli di qualità automatici | | Recensione culturale ostile | ⚠️ Le recensioni diventano critiche personali o esercizio competitivo anziché miglioramento collaborativo della qualità; scoraggia l'apprendimento e la sicurezza psicologica | | Nessun riesame dichiarativo | ⚠️ Flussi, regole di convalida, insiemi di autorizzazioni e regole di condivisione vengono distribuiti senza revisione mentre Apex Code riceve esame; crea lacune di qualità nella configurazione dichiarativa | # Eccellenza operativa - Schemi agentici Ulteriori informazioni su [Eccellenza operativa](/docs/architect/it-it/well-architected/guide/operational-excellence.html) ben progettata → [Eccellenza operativa aziendale](/docs/architect/it-it/well-architected/guide/agentic-enterprise-operational-excellence.html) ## Osservabilità degli agenti **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Agentforce \| Tracciamento delle sessioni | ✅ Utilizzare il modello di dati STDM (Session Tracing Data Model) nativo per acquisire le interazioni degli agenti in un modello di dati unificato in Data 360 anziché creare un sistema di telemetria parallelo, registrando ogni conversazione come una gerarchia di traccia di sessioni, interazioni (turn) e fasi (UserInputStep, LLMExecutionStep, FunctionStep) | | Agentforce \| Tracciamento delle sessioni | ✅ Basarsi sugli oggetti STDM standard (AIAgentSession, AIAgentSessionParticipant, AIAgentInteraction, AIAgentInteractionStep, AIAgentInteractionMessage), che acquisiscono le azioni in modo nativo come fasi di interazione anziché richiedere un registro azioni separato | | Agentforce \| Tracciamento delle sessioni | ✅ Recuperare l'utilizzo del token, il modello e i dettagli del prompt unendo le fasi di interazione ai relativi record chiamata LLM (tramite GenerationId e riferimenti GenAiGatewayRequest/Response) anziché memorizzarli come campi sessione personalizzati | | Agentforce \| Tracciamento delle sessioni | ✅ Acquisizione di tracce di ragionamento dal Motore di ragionamento Atlas — Il tracciamento della sessione registra le fasi del pianificatore come parte di ogni interazione — per rivelare i processi decisionali degli agenti e migliorare la possibilità di debug | | Agentforce \| Configurazione agente | ✅ Registrare i dettagli a livello di turno tra cui l'input dell'utente, la risposta dell'agente, la spiegazione del ragionamento, i punteggi di confidenza, il contesto recuperato, le azioni tentate e gli errori incontrati | | Einstein \| Livello Trust | ✅ Attivare l'itinerario di controllo AI generativo Einstein Trust Layer (testo del prompt e della risposta, versioni con mascheramento delle informazioni personali, dati di base, punteggi di sicurezza e tossicità, dettagli del modello) in streaming su Data 360, oltre all'intelligenza artificiale generativa Einstein e alla raccolta e archiviazione dei dati di feedback per la conservazione a lungo termine | | Piattaforma \| Oggetti personalizzati | ✅ Riservare gli oggetti di registrazione personalizzati a eccezioni deliberate, ad esempio un oggetto leggero che correla il comportamento degli agenti ai risultati aziendali, anziché renderli il substrato di registrazione principale | | Piattaforma \| Cruscotto digitale | ✅ Correlare il comportamento degli agenti ai risultati aziendali, identificare le opportunità di miglioramento tramite l'analisi degli schemi e alimentare le opportunità di apprendimento continuo con esempi con etichetta di qualità | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| Oggetti personalizzati | ⚠️ Creazione manuale di oggetti transazionali personalizzati come substrato principale per la registrazione delle conversazioni anziché come modello di dati di tracciamento delle sessioni nativo, incorrendo in problemi di scala che memorizzano le conversazioni a più turni, carichi utili JSON di grandi dimensioni e rapida crescita dei dati | | Agentforce \| Tracciamento delle sessioni | ⚠️ Creazione di un sistema di telemetria parallelo quando il tracciamento delle sessioni Agentforce acquisisce già le interazioni in un modello di dati unificato in Data 360 | | Agentforce \| Configurazione agente | ⚠️ Registrare solo le risposte degli agenti senza acquisire input, tracce di ragionamento, contesto recuperato e azioni intraprese | | Einstein \| Livello Trust | ⚠️ Disabilitazione dell'itinerario di controllo Einstein Trust Layer in produzione o mancata attivazione della raccolta e dell'archiviazione dei dati di feedback per la conservazione a lungo termine in Data 360 | | Piattaforma \| Monitoraggio | ⚠️ Affidarsi esclusivamente al successo/errore della conversazione senza acquisire l'utilizzo del token, il modello e i dettagli del prompt tramite i join di chiamata LLM STDM | ## Monitoraggio delle prestazioni **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Monitoraggio | ✅ Misurare la latenza delle risposte ai percentili (p50, p95, p99) rivelando le prestazioni tipiche e le esperienze peggiori | | Piattaforma \| Monitoraggio | ✅ Strumentare ogni fase di latenza separatamente (inferenza del modello, recupero del contesto, esecuzione delle azioni, rete) abilitando l'ottimizzazione mirata | | Piattaforma \| Monitoraggio | ✅ Avviso quando la latenza p95 supera le soglie che indica un deterioramento delle prestazioni | | Piattaforma \| Monitoraggio | ✅ Tenere traccia della distribuzione dei token (token di prompt, token di completamento, token totali) per conversazione, per agente e per caso d'uso | | Piattaforma \| Monitoraggio | ✅ Rileva le conversazioni anomale che consumano token eccessivi suggerendo problemi urgenti o un uso improprio | | Piattaforma \| Monitoraggio | ✅ Confrontare la produttività corrente con i limiti di traffico noti o i valori di riferimento della capacità che avvisano quando si avvicinano alle soglie | | Piattaforma \| Monitoraggio | ✅ Calcolare le percentuali di errore come percentuale del totale delle richieste abilitando il confronto tra agenti e periodi di tempo | | Piattaforma \| Monitoraggio | ✅ Distinguere tra categorie di errore (errori del modello, errori di autorizzazione, errori di integrazione) che richiedono risposte diverse | | Piattaforma \| Monitoraggio | ✅ Calcola la disponibilità come percentuale di tempo in cui gli agenti rispondono correttamente alle richieste e tengono traccia degli SLO | | Piattaforma \| Proactive Monitoring | ✅ Configurare le soglie Proactive Monitoring in base agli schemi di comportamento degli agenti di base anziché accettare le impostazioni predefinite | | Piattaforma \| Scale Center | ✅ Esaminare i dati del Centro scala dopo aver distribuito nuovi agenti o aver apportato modifiche rapide significative per convalidare che il consumo di risorse corrisponde alle aspettative | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| Monitoraggio | ⚠️ Misurare solo la latenza media anziché i percentili, mascherando le esperienze utente peggiori | | Piattaforma \| Monitoraggio | ⚠️ Tracciamento della latenza totale senza strumentazione delle singole fasi (inferenza, recupero, esecuzione delle azioni) | | Piattaforma \| Monitoraggio | ⚠️ Considerare tutti gli errori allo stesso modo anziché classificarli per tipo (modello, autorizzazione, integrazione) per una risposta appropriata | | Piattaforma \| Proactive Monitoring | ⚠️ Accettazione delle soglie predefinite di Proactive Monitoring senza sintonizzarsi sugli schemi di comportamento degli agenti di riferimento | | Piattaforma \| Scale Center | ⚠️ Distribuire nuovi agenti o apportare modifiche immediate senza rivedere i dati del Centro scala per convalidare il consumo delle risorse | | Piattaforma \| Monitoraggio | ⚠️ Ignorare gli schemi di consumo dei token e non rilevare le conversazioni anomale che utilizzano token tipici 10x | ## Metriche di qualità e valutazione **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Agentforce \| Centro di test | ✅ Iniziare con strumenti di test e valutazione nativi: gestire gli insiemi di casi di test riutilizzabili nel Centro test Agentforce ed eseguire gli agenti in batch, controllando se l'agente ha selezionato l'argomento e l'azione previsti e ha prodotto una risposta accettabile | | Agentforce \| Centro di test | ✅ Utilizzare valutatori nativi (dimensioni della qualità pronte all'uso e approccio LLM-as-Judge per il calcolo del punteggio della qualità della conversazione) e creare valutatori personalizzati per criteri specifici dell'organizzazione, utilizzando conversazioni rappresentative in modo che la valutazione rifletta l'utilizzo reale | | Agentforce \| Centro di test | ✅ Per le domande fattuali con risposte note, mantenere le asserzioni con risposte note come casi di test ripetibili nel Centro test; per le domande aperte, aggiungere la revisione umana delle conversazioni campione | | Data 360 \| Qualità di recupero | ✅ Per gli agenti basati su una Knowledge Base, utilizzare l'analisi della qualità di recupero nativa per valutare la pertinenza del contesto, la pertinenza delle risposte e la fedeltà (fondatezza) delle risposte | | Einstein \| Livello Trust | ✅ Affidarsi al rilevamento della tossicità in fase di esecuzione Einstein Trust Layer come prima linea di difesa dal guardrail, quindi migliorare il monitoraggio della sicurezza attraverso il filtraggio dei contenuti, il campionamento manuale, la segnalazione degli utenti e i controlli dell'equità nei gruppi demografici | | Data 360 \| GenAIFeedback | ✅ Acquisire la soddisfazione degli utenti tramite il feedback Agentforce che scorre nei DMO GenAIFeedback / GenAIFeedbackDetail in Data 360 (pollice su / giù, accetta / rifiuta, modifiche, commenti testuali) insieme alla richiesta gateway e ai dati di generazione | | Piattaforma \| Analytics | ✅ Combinare feedback espliciti (domanda prima dell'inoltro al livello superiore, dopo la conversazione, sondaggi di follow-up) con segnali impliciti (percentuali di completamento, inoltro al livello superiore, abbandono, tentativi ripetuti), correlati alle caratteristiche della conversazione per guidare la definizione delle priorità di miglioramento | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Agentforce \| Centro di test | ⚠️ Creazione ed esecuzione di un cablaggio di test personalizzato anziché iniziare con gli insiemi di test riutilizzabili del Centro test Agentforce e i valutatori nativi | | Agentforce \| Centro di test | ⚠️ Affidarsi esclusivamente alla valutazione automatica senza revisione umana per la valutazione della qualità delle risposte aperte | | Piattaforma \| Monitoraggio | ⚠️ Monitoraggio solo dell'accuratezza senza tenere traccia delle dimensioni di pertinenza, sicurezza e soddisfazione degli utenti | | Data 360 \| GenAIFeedback | ⚠️ Non raccogliere alcun feedback utente (esplicito o implicito) sulla qualità della risposta dell'agente quando il feedback Agentforce scorre già nei DMO GenAIFeedback | | Agentforce \| Configurazione agente | ⚠️ Saltare i controlli di equità che valutano la distribuzione dei risultati tra i gruppi demografici | ## Rilevamento della fluttuazione del modello **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Agentforce \| Configurazione agente | ✅ Stabilire le prestazioni di base immediatamente dopo la distribuzione degli agenti misurando l'accuratezza, la pertinenza, la sicurezza e la soddisfazione in casi di test rappresentativi | | Agentforce \| Configurazione agente | ✅ Rivalutare periodicamente rispetto agli stessi casi di test che rivelano modifiche delle prestazioni indipendentemente dai turni dello schema di utilizzo | | Piattaforma \| Monitoraggio | ✅ Avvisare quando le metriche di qualità diminuiscono oltre le soglie accettabili definite dalla tolleranza dell'impatto aziendale | | Piattaforma \| Analytics | ✅ Monitorare le caratteristiche di input (lunghezza delle domande, distribuzione degli argomenti, complessità della lingua, terminologia del dominio) rilevando turni di distribuzione significativi | | Piattaforma \| Monitoraggio | ✅ Monitorare le caratteristiche della risposta (lunghezza media della risposta, percentuali di chiamata delle azioni, frequenze di inoltro al livello superiore, schemi di errore) stabilendo valori di riferimento comportamentali | | Piattaforma \| Monitoraggio | ✅ Configurare gli avvisi automatici attivati quando le metriche di fluttuazione superano le soglie attivando indagini e rimedi | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Agentforce \| Configurazione agente | ⚠️ Impossibile stabilire le prestazioni di base dopo la distribuzione iniziale dell'agente, rendendo la fluttuazione non rilevabile | | Piattaforma \| Monitoraggio | ⚠️ Ignorare la fluttuazione della distribuzione quando gli schemi di input degli utenti cambiano in modo significativo rispetto a ciò che gli agenti sono stati progettati per gestire | | Piattaforma \| Monitoraggio | ⚠️ Non monitorare i cambiamenti comportamentali (lunghezza della risposta, tassi di azione, frequenze di inoltro al livello superiore) rispetto ai valori di riferimento stabiliti | | Piattaforma \| Monitoraggio | ⚠️ Non avere avvisi automatici per le metriche di deriva, affidandosi solo all'osservazione manuale per rilevare il degrado | ## Rilevamento e avviso delle anomalie **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Monitoraggio | ✅ Monitorare le distribuzioni del consumo di token rilevando le conversazioni anomale e analizzare quelle che consumano token tipici 10x | | Piattaforma \| Monitoraggio | ✅ Rileva improvvisi aumenti delle percentuali di errore, nuovi tipi di errore non nella base di riferimento o concentrazioni di errori localizzate che interessano utenti o agenti specifici | | Piattaforma \| Analytics | ✅ Tenere traccia dell'abbandono della conversazione in base alla fase della conversazione identificando se gli utenti abbandonano durante l'interazione iniziale, a metà conversazione o dopo il completamento dell'operazione | | Piattaforma \| Monitoraggio | ✅ Instradare immediatamente i guasti critici degli agenti ai tecnici su chiamata, il deterioramento della qualità ai team di prodotto durante l'orario di ufficio e le anomalie minori ai rapporti giornalieri | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| Monitoraggio | ⚠️ Trattare tutti gli avvisi con la stessa urgenza, causando stanchezza e mancati errori critici | | Piattaforma \| Monitoraggio | ⚠️ Ignorare anomalie dei costi come picchi di consumo dei token che possono indicare problemi immediati, abusi o problemi dell'infrastruttura | | Piattaforma \| Analytics | ⚠️ Non tenere traccia dei tassi di abbandono delle conversazioni o non analizzare l'abbandono per fase | | Piattaforma \| Monitoraggio | ⚠️ Attendere i rapporti utente anziché rilevare in modo proattivo i picchi di tasso di errore attraverso il monitoraggio automatico | ## Controllo versione prompt **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Controllo sorgente | ✅ Memorizzazione dei modelli di prompt in Git insieme al codice dell'applicazione che tratta i prompt come logica applicativa critica che merita revisione, test e distribuzione controllata del codice | | Einstein \| Generatore di prompt | ✅ Utilizzare il Generatore di prompt per lo sviluppo iterativo dei prompt con la cronologia delle versioni e le funzionalità di test, quindi esportare nel controllo delle versioni per le opportunità in corso di realizzazione di distribuzione | | Piattaforma \| Controllo sorgente | ✅ Memorizza le configurazioni (selezione del modello, temperatura, limiti dei token, configurazioni di recupero, autorizzazioni azioni, flag delle funzioni) come codice che abilita valori specifici dell'ambiente e rilevamento della fluttuazione | | Piattaforma \| Controllo sorgente | ✅ Applicare il controllo semantico delle versioni ai componenti degli agenti: maggiore (modifiche dell'interruzione), minore (funzionalità), patch (correzioni di bug) con i numeri di versione visualizzati nei registri | | Piattaforma \| Documentazione | ✅ Documentare cosa è cambiato, perché è cambiato, quali test hanno convalidato la modifica e quali procedure di ritiro esistono per ogni prompt e modifica della configurazione | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Einstein \| Generatore di prompt | ⚠️ Apportare modifiche immediate senza revisione del codice, test o processi di distribuzione controllati | | Piattaforma \| Configurazione | ⚠️ Memorizzazione delle configurazioni degli agenti al di fuori del controllo sorgente in cui la fluttuazione non può essere rilevata e le distribuzioni non possono essere automatizzate | | Piattaforma \| Documentazione | ⚠️ Apportare modifiche immediate senza documentare la logica, i risultati dei test o le procedure di ritiro | | Piattaforma \| Controllo sorgente | ⚠️ Non applicare il controllo semantico delle versioni, rendendo impossibile correlare gli incidenti a distribuzioni specifiche | ## Registro modelli e tracciamento della distribuzione **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Documentazione | ✅ Gestire un registro del modello registrando le versioni del modello distribuite, incluse famiglia di modelli, versione specifica, stato di messa a punto, ambiente, data di distribuzione e team responsabile | | Piattaforma \| Documentazione | ✅ Registrare ogni distribuzione agente, inclusi versione, ambiente, indicazione oraria, utente di distribuzione, approvazioni ottenute e risultato della distribuzione | | Piattaforma \| Documentazione | ✅ Mappare le dipendenze tra agenti, prompt, Knowledge Base, azioni e integrazioni in modo esplicito anziché scoprirle durante gli incidenti | | Business \| Processo | ✅ Stabilire una pianificazione di deprecazione con un periodo di preavviso minimo supportato dalla policy comunicato con sufficiente anticipo, abilitando le migrazioni pianificate anziché le risposte di emergenza alle deprecazioni forzate | | Piattaforma \| Documentazione | ✅ Procedure di ritiro dei documenti per ogni agente, incluse la versione di destinazione, le fasi di esecuzione, i test di convalida e i requisiti di notifica | | Piattaforma \| Gestione temporanea | ✅ Testare le procedure di ritiro in ambienti non di produzione convalidandone il funzionamento prima di dipendere da esse durante gli incidenti di produzione | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| Documentazione | ⚠️ Rilevamento delle dipendenze tra agenti, prompt e Knowledge Base solo durante gli incidenti anziché mantenere mappe delle dipendenze esplicite | | Business \| Processo | ⚠️ Fornire un avviso di deprecazione insufficiente costringendo le migrazioni di emergenza anziché le transizioni pianificate | | Piattaforma \| Documentazione | ⚠️ Avere procedure di ritiro non testate che falliscono quando necessario durante gli incidenti di produzione | | Piattaforma \| Distribuzione | ⚠️ Distribuire gli agenti senza registrare versione, ambiente, approvazioni o esito, perdendo la capacità di correlare gli incidenti alle distribuzioni | ## Formazione continua e adattamento del dominio **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Interfaccia utente | ✅ Raccogliere feedback espliciti (pollice su / giù, punteggi di qualità, commenti) e feedback impliciti (percentuali di completamento, frequenze di inoltro al livello superiore, schemi di nuovo tentativo) in modo sistematico | | Data 360 \| Gestione dei dati | ✅ Curare i registri delle conversazioni nelle serie di dati di addestramento filtrando per qualità, eliminando esempi problematici, garantendo la rappresentatività e deduplicando | | Data 360 \| Messa a terra | ✅ Adattare gli agenti al vocabolario del dominio, ai processi aziendali e a Knowledge specifiche dell'organizzazione principalmente tramite RAG basato su Data 360 e la regolazione rapida, ovvero il percorso di adattamento nativo di Salesforce | | Einstein \| BYOLLM | ✅ Quando la messa a terra e la regolazione del prompt sono insufficienti, perfezionare un modello esternamente e collegarlo tramite BYOLLM anziché aspettarsi una regolazione generativa all'interno della piattaforma | | Einstein \| Generatore di prompt | ✅ Stabilire una cadenza periodica di revisione rapida che esamina le conversazioni recenti, le metriche di qualità e i commenti degli utenti che identificano le opportunità di miglioramento | | Einstein \| Generatore di prompt | ✅ Implementare modifiche rapide in modo incrementale con test A / B di convalida dei miglioramenti prima dell'implementazione completa | | Agentforce \| Configurazione agente | ✅ Mantenere insiemi di test che coprono percorsi felici, casi limite, input avversari e scenari di problemi storici, espandendosi continuamente man mano che vengono scoperti nuovi casi limite | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| Dati | ⚠️ Tentare di migliorare senza raccogliere feedback sistematici, rendendo il miglioramento congetturato anziché basato sui dati | | Data 360 \| Gestione dei dati | ⚠️ Utilizzo di registri di conversazione non curati per la formazione, incluse violazioni della sicurezza, errori ed esempi non rappresentativi | | Data 360 \| Messa a terra | ⚠️ Raggiungere la messa a punto esterna prima di esaurire il radicamento RAG e la messa a punto rapida, il percorso nativo che risolve la maggior parte delle esigenze di adattamento del dominio senza un modello personalizzato | | Einstein \| Generatore di prompt | ⚠️ Considerare l'ingegneria tempestiva come un esercizio singolo anziché come una pratica continua adattata man mano che gli schemi di utilizzo si evolvono | | Agentforce \| Configurazione agente | ⚠️ Avere insiemi di test statici che non si espandono mai per coprire nuovi casi limite scoperti in produzione | ## Implementazione graduale e test A/B **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Tipi di metadati personalizzati | ✅ Implementare i flag delle funzioni utilizzando tipi di metadati personalizzati o impostazioni personalizzate per separare la distribuzione dal rilascio per le modifiche degli agenti ad alto rischio | | Piattaforma \| Insiemi di autorizzazioni | ✅ Implementare le distribuzioni canary rilasciando le modifiche degli agenti a un piccolo sottoinsieme di utenti utilizzando prima gli insiemi di autorizzazioni che controllano l'accesso degli agenti | | Agentforce \| Configurazione agente | ✅ Monitorare la coorte di canarini misurando intensamente le percentuali di successo, la qualità, le percentuali di errore, la latenza, il consumo di token e la soddisfazione, ed espandere l'implementazione solo quando il canarino corrisponde o migliora rispetto al gruppo di controllo che esegue la versione agente precedente | | Piattaforma \| Analytics | ✅ Definire criteri di successo prima di iniziare i test A/B per evitare risultati ambigui, in linea con gli obiettivi aziendali | | Agentforce \| Configurazione agente | ✅ Distribuire test campione-sfidante mantenendo la versione collaudata come fallback durante il confronto con la versione challenger migliorata | | Business \| Processo | ✅ Stabilire criteri di promozione obiettivi, tra cui la dimensione minima del campione, le soglie di qualità e la durata della valutazione prima delle decisioni sulla promozione | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Agentforce \| Configurazione agente | ⚠️ Implementazione contemporanea delle modifiche degli agenti a tutti gli utenti senza test canarino, massimizzando il raggio di esplosione dei problemi | | Piattaforma \| Distribuzione | ⚠️ Distribuzione di modifiche degli agenti ad alto rischio senza flag delle funzioni che abilitano il ritiro immediato senza ridistribuirlo | | Piattaforma \| Analytics | ⚠️ Esecuzione di test A/B senza criteri di successo predefiniti, che portano a risultati ambigui e decisioni inadeguate | | Piattaforma \| Analytics | ⚠️ Esecuzione di esperimenti con dimensioni del campione insufficienti che producono risultati rumorosi che portano a conclusioni errate | | Agentforce \| Configurazione agente | ⚠️ Utilizzo dei flag delle funzioni per ogni piccola modifica del prompt anziché riservarli a modifiche ad alto rischio per gli agenti business-critical | ## Rilevamento e classificazione degli incidenti **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Monitoraggio | ✅ Rilevamento degli errori degli agenti tramite il monitoraggio automatico che avvisa sui tassi di errore, il degrado delle metriche di qualità, le anomalie dei costi, gli aumenti di latenza e gli inoltri degli utenti al livello superiore | | Piattaforma \| Monitoraggio | ✅ Integrare il rilevamento automatico con meccanismi di segnalazione degli utenti che consentono l'inoltro al livello superiore dei problemi mancati dal monitoraggio automatico | | Business \| Processo | ✅ Definire i criteri di gravità in modo obiettivo in base all'impatto dell'utente, al raggio di esplosione, al rischio di integrità dei dati e all'urgenza di ripristino | | Piattaforma \| Documentazione | ✅ Documentare le procedure di risposta iniziale come runbook eseguibili da ingegneri su chiamata senza una profonda esperienza degli agenti | | Agentforce \| Configurazione agente | ✅ Includere nella risposta iniziale: disabilitare l'agente guasto (interruttore), instradare al fallback, raccogliere la diagnostica, informare le parti interessate, avviare la comunicazione dell'incidente | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| Monitoraggio | ⚠️ Affidarsi ai rapporti utente come meccanismo di rilevamento principale anziché al monitoraggio automatico degli errori degli agenti | | Business \| Processo | ⚠️ Utilizzo della classificazione soggettiva della gravità che porta a problemi reali sottodimensionati o a problemi minori sottodimensionati | | Piattaforma \| Documentazione | ⚠️ Non avere runbook, che richiedono indagini specifiche sugli incidenti da parte di ingegneri con profonda esperienza degli agenti durante ogni incidente | | Business \| Processo | ⚠️ Trattare gli errori degli agenti in modo identico agli errori delle applicazioni tradizionali senza tenere conto di allucinazioni, risposte fuori argomento o violazioni della sicurezza | ## Interruttori automatici e fallback **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Apex | ✅ Implementare interruttori automatici con soglia di errore configurabile (ad esempio, tasso di errore del 50%), finestra di durata (ad esempio, finestra continuativa di 5 minuti) e test di ripristino (richieste di prova periodiche) | | Agentforce \| Configurazione agente | ✅ Progettare le gerarchie di fallback: Agente sofisticato principale → Agente di backup più semplice → Risposte alle domande frequenti statiche → Passaggio di consegne umano | | Piattaforma \| Orchestrazione | ✅ Implementare la logica di fallback nel livello di orchestrazione anziché all'interno dei singoli agenti abilitando un comportamento coerente in tutto l'ecosistema degli agenti | | Agentforce \| Configurazione agente | ✅ Progettare flussi di lavoro di handoff umano conservando il contesto della conversazione, comunicando il motivo della consegna e instradando a un agente umano appropriato con esperienza pertinente | | Piattaforma \| Monitoraggio | ✅ Monitorare le percentuali di trasferimento per argomento, agente e motivo dell'errore per identificare le lacune di capacità degli agenti | | Agentforce \| Configurazione agente | ✅ Quando il ragionamento sofisticato fallisce, fallback a una logica più semplice; quando i dati in tempo reale non sono disponibili, operare sui dati memorizzati nella cache; quando le integrazioni falliscono, operare in modalità di sola lettura | | Piattaforma \| Orchestrazione | ✅ Testare i percorsi di fallback regolarmente convalidandoli quando necessario | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Agentforce \| Configurazione agente | ⚠️ Non avere interruttori, consentendo agli agenti in errore di influire ripetutamente sugli utenti mentre i problemi vengono risolti | | Piattaforma \| Orchestrazione | ⚠️ Implementazione della logica di fallback all'interno dei singoli agenti anziché a livello di orchestrazione, creando comportamenti incoerenti | | Agentforce \| Configurazione agente | ⚠️ Progettare agenti di passaggio/errore binari che funzionano perfettamente o completamente falliscono senza opzioni di degradazione graziose | | Piattaforma \| Orchestrazione | ⚠️ Mai testare i percorsi di fallback, scoprendo che non funzionano solo durante gli incidenti effettivi | | Agentforce \| Configurazione agente | ⚠️ Handoff umano che perde il contesto della conversazione costringendo gli utenti a ripetere le informazioni | ## Analisi post-incidente **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Business \| Processo | ✅ Condurre revisioni post-incidente senza colpe concentrandosi sui miglioramenti del sistema anziché sui singoli errori che creano sicurezza psicologica | | Business \| Processo | ✅ Creare una sequenza temporale dettagliata dalle condizioni iniziali attraverso rilevamento, indagine, risposta, ripristino e convalida con indicazioni orarie | | Business \| Processo | ✅ Utilizzare la tecnica "Cinque Perché" perforando dai sintomi alle cause fondamentali piuttosto che conclusioni semplicistiche | | Business \| Processo | ✅ Analizzare i fattori che contribuiscono, tra cui il monitoraggio di lacune, lacune nei test, lacune nella documentazione, lacune nell'automazione e lacune architettoniche | | Business \| Processo | ✅ Valuta rilevamento: quale segnale avrebbe dovuto rilevare il problema prima, quale monitoraggio consente un rilevamento più rapido | | Business \| Processo | ✅ Specificare voci azioni concrete, assegnate e limitate nel tempo che impediscono la ricorrenza (ad esempio, "aggiungi avviso per la percentuale di errore superiore al 5% in 10 minuti - assegnato: Alex - due: 2 settimane") | | Business \| Processo | ✅ Tenere traccia del completamento dell'elemento azione nelle revisioni successive assicurando che il miglioramento continuo avvenga effettivamente | | Piattaforma \| Documentazione | ✅ Documentare le revisioni post-incidente nella Knowledge Base condivisa con tag che abilitano l'analisi degli schemi in più incidenti | | Business \| Processo | ✅ Condividere le revisioni post-incidente in generale oltre i soccorritori immediati attraverso riunioni del team o sessioni di pranzo e apprendimento | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Business \| Processo | ⚠️ Automi post mortem incentrate sulla colpa che riducono la sicurezza psicologica e impediscono una valutazione onesta degli insuccessi | | Business \| Processo | ⚠️ Conclusioni semplicistiche sulle cause principali ("l'agente aveva un bug") anziché risultati specifici che consentono una risoluzione efficace | | Business \| Processo | ⚠️ Voci azioni vaghe come "migliora monitoraggio" anziché operazioni specifiche, assegnate e limitate nel tempo | | Business \| Processo | ⚠️ Bassi tassi di completamento delle voci azione che indicano un errore del processo di miglioramento continuo | | Business \| Processo | ⚠️ Mantenere gli apprendimenti post-incidente in silo per i soccorritori diretti anziché condividerli ampiamente per l'apprendimento organizzativo | ## Approvazione della distribuzione **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Business \| Processo | ✅ Convalida l'elenco di controllo pre-distribuzione che include test, revisione della sicurezza, convalida della conformità, documentazione, configurazione di monitoraggio e approvazione degli stakeholder | | Business \| Processo | ✅ Valutare il rischio in base al raggio di esplosione, alla sensibilità dei dati, all'autorità dell'azione, alle dipendenze di integrazione, alla complessità del ripristino e alle implicazioni di conformità | | Business \| Processo | ✅ Scalare i requisiti di approvazione in base al rischio: ad alto rischio richiede l'approvazione esecutiva, la revisione della sicurezza e l'implementazione graduale; a basso rischio richiede la revisione tra pari e test standard | | Piattaforma \| Processi di approvazione | ✅ Implementare flussi di lavoro di approvazione automatizzati, tracciati e controllabili utilizzando processi di approvazione Salesforce o strumenti di distribuzione esterni | | Business \| Processo | ✅ Definire procedure di bypass di emergenza che richiedono l'approvazione esecutiva, la documentazione logica e un riesame post-distribuzione accelerato | | Piattaforma \| Monitoraggio | ✅ Tracciare le distribuzioni di emergenza separatamente; l'alta frequenza di distribuzione di emergenza indica problemi del processo che richiedono un'indagine | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Business \| Processo | ⚠️ Applicare una profondità di approvazione uniforme indipendentemente dal profilo di rischio dell'agente, sprecando sforzi per gli agenti a basso rischio o sottovalutando quelli ad alto rischio | | Business \| Processo | ⚠️ Distribuzione di agenti di produzione senza convalida elenco di controllo pre-distribuzione di test, sicurezza, conformità e monitoraggio | | Piattaforma \| Distribuzione | ⚠️ Non avere procedure di bypass di emergenza, causando ritardi di correzione critici durante gli incidenti di produzione | | Business \| Processo | ⚠️ Richiede spesso distribuzioni di emergenza, indicando processi standard interrotti anziché circostanze eccezionali | ## Cancelli di qualità e test **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Agentforce \| Configurazione agente | ✅ Caratteristiche dell'output del test (contiene le informazioni richieste, mantiene il tono appropriato, include le citazioni) anziché il testo esatto per gli output degli agenti non deterministici | | Agentforce \| Configurazione agente | ✅ Stabilire soglie minime di qualità (ad esempio, "accuratezza del 95% sul set di test di resistenza, zero violazioni della sicurezza, controllo dell'equità non mostra disparità demografiche superiori al 5%") | | Agentforce \| Configurazione agente | ✅ Eseguire test di sicurezza con input avversari, tra cui prompt injection, tentativi di jailbreak, richiesta di inoltro al livello superiore e richieste fuori dall'ambito | | Agentforce \| Configurazione agente | ✅ Far eseguire i test di sicurezza da membri del team non coinvolti nello sviluppo degli agenti offrendo una nuova prospettiva sulle vulnerabilità | | Platform \| Test delle prestazioni | ✅ Test sotto carico realistico tra cui conversazioni simultanee, lunghezze tipiche delle conversazioni e volume di utilizzo previsto | | Piattaforma \| Sicurezza | ✅ Verificare che gli agenti non possano accedere a dati non autorizzati, non possano eseguire azioni non autorizzate e che l'iniezione rapida non possa inoltrare i privilegi al livello superiore | | Piattaforma \| CI/CD | ✅ Integrare la scansione della sicurezza nella pipeline di distribuzione utilizzando Salesforce Code Analyzer e strumenti di sicurezza AI specializzati | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Agentforce \| Configurazione agente | ⚠️ Testare la corrispondenza del testo esatto sugli output non deterministici anziché testare le caratteristiche degli output | | Platform \| Test delle prestazioni | ⚠️ Test solo con scenari per utente singolo, problemi di limiti governor mancanti, vincoli delle risorse e colli di bottiglia della scalabilità | | Agentforce \| Configurazione agente | ⚠️ Ignorare i test di sicurezza o chiedere agli sviluppatori di testare i propri agenti senza nuove prospettive sulle vulnerabilità | | Piattaforma \| Sicurezza | ⚠️ Non testare se l'iniezione rapida può inoltrare al livello superiore i privilegi degli agenti o accedere a dati non autorizzati | | Agentforce \| Configurazione agente | ⚠️ Avere insiemi di test statici che non rappresentano la vera diversità di utilizzo, inclusi diversi tipi di utenti e complessità delle conversazioni | ## Gestione del cambiamento **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Documentazione | ✅ Documentare ogni modifica: cosa è cambiato, perché, quali test lo hanno convalidato e quale procedura di ritiro esiste | | Business \| Comunicazione | ✅ Notifica a tutti gli stakeholder (utenti, team operativi, assistenza, business) descrivendo cosa sta cambiando, quando, quali vantaggi, quali rischi e chi contattare | | Business \| Comunicazione | ✅ Stabilire modelli di comunicazione per diversi tipi di modifica standardizzando i messaggi e riducendo il sovraccarico di preparazione | | Piattaforma \| Monitoraggio evento | ✅ Distribuzioni degli agenti del tempo durante i periodi di basso utilizzo informate dai dati di Monitoraggio evento che mostrano gli schemi di utilizzo effettivi | | Business \| Processo | ✅ Distribuire le principali modifiche degli agenti dall'inizio alla metà della settimana evitando i fine settimana con ridotta capacità di risposta agli incidenti | | Business \| Processo | ✅ Stabilire periodi di congelamento del cambiamento prima dei principali eventi aziendali (fine anno fiscale, lancio di prodotti, principali campagne di marketing) | | Business \| Processo | ✅ Modifica documento congela il calendario ogni anno comunicando periodi limitati con sufficiente anticipo | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| Distribuzione | ⚠️ Distribuzione durante i picchi di utilizzo, la chiusura di fine mese, la chiusura di fine trimestre o i principali eventi aziendali | | Piattaforma \| Distribuzione | ⚠️ Distribuzione il lunedì (aumento del personale) o il venerdì (riduzione del personale) quando la capacità di risposta agli incidenti è limitata | | Business \| Processo | ⚠️ Avere un cambiamento eccessivo congela la velocità di miglioramento senza una riduzione del rischio proporzionata | | Business \| Comunicazione | ⚠️ Distribuzione delle modifiche degli agenti senza informare gli utenti, i team operativi, i team di assistenza o gli stakeholder aziendali interessati | | Piattaforma \| Documentazione | ⚠️ Apportare modifiche senza documentare la logica, creando organizzazioni che riscoprano le lezioni anziché costruire sull'esperienza | ## Architettura del loop di feedback **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Interfaccia utente | ✅ Implementare la raccolta di feedback nell'interfaccia utente della conversazione abilitando la risposta immediata mentre l'interazione è fresca anziché raccolta ritardata | | Piattaforma \| Analytics | ✅ Eseguire query sui registri delle conversazioni analizzando i tipi di domande, la durata delle conversazioni, le percentuali di successo per argomento e la soddisfazione degli utenti per caratteristiche delle conversazioni | | Piattaforma \| Analytics | ✅ Analizzare i registri errori raggruppando per tipo di errore, utenti interessati, schemi di conversazione e distribuzione temporale per rivelare problemi sistematici | | Piattaforma \| Analytics | ✅ Assegnare priorità alla correzione degli errori in base alla frequenza e all'impatto: gli errori ad alta frequenza che interessano molti utenti richiedono un'attenzione immediata | | Piattaforma \| Monitoraggio | ✅ Stabilire valori di riferimento di qualità dopo la distribuzione iniziale e monitorare la qualità in corso rispetto ai valori di riferimento avvisando quando le tendenze diminuiscono | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| Interfaccia utente | ⚠️ Ritardo della raccolta di feedback (ad esempio, email di follow-up giorni dopo) riduzione dei tassi di risposta e introduzione della distorsione del richiamo | | Piattaforma \| Analytics | ⚠️ Non analizzare gli schemi di utilizzo per determinare se gli agenti giustificano la complessità operativa o se le funzionalità sono sottoutilizzate | | Piattaforma \| Analytics | ⚠️ Considerare tutti gli errori allo stesso modo anziché assegnare priorità in base alla frequenza e all'impatto sul business | | Piattaforma \| Monitoraggio | ⚠️ Prendere decisioni di miglioramento senza dati, senza valori di riferimento di qualità e monitoraggio delle tendenze | ## Tracciamento degli esperimenti **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Business \| Processo | ✅ Fornire una struttura coerente dell'esperimento: ipotesi, progettazione sperimentale, metriche, dimensioni del campione e criteri di successo | | Business \| Processo | ✅ Documentare gli esperimenti prima dell'esecuzione evitando interpretazioni ambigue dei risultati | | Piattaforma \| Analytics | ✅ Tenere traccia dell'assegnazione delle varianti nei metadati della conversazione abilitando la correlazione dei risultati per variante | | Piattaforma \| Analytics | ✅ Calcolare le dimensioni del campione richieste prima degli esperimenti in base alle dimensioni previste dell'effetto, alla potenza statistica e alle percentuali di errore accettabili | | Piattaforma \| Analytics | ✅ Utilizzare l'ottimizzazione delle bandite multi-braccio per allocare dinamicamente più traffico alle varianti con prestazioni migliori riducendo il costo delle opportunità | | Piattaforma \| Documentazione | ✅ Mantenere il catalogo degli esperimenti con le varianti testate, i risultati misurati, i risultati raggiunti e le decisioni prese per evitare di ripetere i test degli approcci non riusciti | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Business \| Processo | ⚠️ Esecuzione di esperimenti senza ipotesi predefinite e criteri di successo che portano a risultati ambigui | | Piattaforma \| Analytics | ⚠️ Utilizzo di campioni di dimensioni insufficienti che producono risultati rumorosi che portano a decisioni di miglioramento inadeguate | | Piattaforma \| Documentazione | ⚠️ Non avere un catalogo di esperimenti, che fa sì che i team ripetano approcci non riusciti in precedenza e perdano Knowledge organizzativa | | Piattaforma \| Analytics | ⚠️ Non tracciare quali utenti hanno ricevuto quali varianti, rendendo impossibile la correlazione del risultato | # Eccellenza operativa - Schemi di automazione
Ulteriori informazioni sull'[eccellenza operativa](/docs/architect/it-it/well-architected/guide/operational-excellence.html) ben progettata → [Automazione ed efficienza](/docs/architect/it-it/well-architected/guide/operational-excellence.html#automation-and-efficiency) ## KPI e metriche **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Cruscotti digitali | ✅ Tutte le metriche correlate ai KPI sono incluse in almeno un cruscotto digitale | | Piattaforma \| Documentazione | ✅ Gli output per ogni automazione sono misurabili e temporizzati | | Piattaforma \| Documentazione | ✅ Gli stakeholder responsabili sono elencati per ogni KPI | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| Cruscotti digitali | ⚠️ La generazione di rapporti KPI non esiste o mancano nei cruscotti digitali metriche correlate ad alcuni KPI | | Piattaforma \| Documentazione | ⚠️ Esistono KPI senza stakeholder responsabili | | Piattaforma \| Documentazione | ⚠️ Non esistono KPI per le automazioni o hanno intervalli di tempo non chiari per le misurazioni | ## Automazione dichiarativa **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Flusso | ✅ Flow Builder viene utilizzato per l'automazione attivata da record (sostituendo Process Builder e le regole di flusso di lavoro) | | Piattaforma \| Flusso | ✅ I flussi attivati da record con esecuzione prima del salvataggio vengono utilizzati per la popolazione dei campi prima della creazione del record | | Piattaforma \| Flusso | ✅ I flussi gestiscono la logica decisionale, i loop, le chiamate API, le operazioni DML e la complessa orchestrazione a più fasi | | Piattaforma \| Flusso | ✅ Il controllo delle transazioni del flusso viene utilizzato per confermare le modifiche intermedie quando necessario | | Piattaforma \| Flusso | ✅ La gestione dei guasti è implementata per il ripristino grazioso degli errori nei flussi | | Piattaforma \| Flusso | ✅ I flussi schermata reattivi offrono esperienze utente dinamiche | | Piattaforma \| Flusso | ✅ L'automazione dichiarativa viene scelta quando gli utenti aziendali o gli amministratori devono modificare la logica senza il coinvolgimento dello sviluppatore | | Piattaforma \| Flusso | ✅ Le variabili non fanno riferimento a valori codificati (per tipi di record, utenti, ecc.) | | Piattaforma \| Flusso | ✅ La logica dei flussi passa ad Apex in contesti con grandi volumi di dati | | Piattaforma \| Flusso | ✅ I sottoflussi vengono utilizzati per le sezioni dei processi che devono essere riutilizzate in tutta l'azienda | | Piattaforma \| Flusso | ✅ Tutti i flussi AutoLaunched utilizzano elementi decisionali e/o di pausa per valutare i criteri di immissione e impedire loop o esecuzioni infinite su grandi volumi di dati | | Piattaforma \| Flusso | ✅ Gli utenti sono invitati a fornire dati solo quando i dati di sistema esistenti non possono essere utilizzati | | Piattaforma \| Flusso | ✅ I flussi sono organizzati in una struttura gerarchica costituita da un flusso principale e sottoflussi di supporto | | Piattaforma \| Flusso | ✅ Tutti gli input utente hanno uno scopo chiaro all'interno del flusso | | Piattaforma \| Flusso | ✅ Ogni flusso serve un unico scopo specifico | | Piattaforma \| Flusso | ✅ Ogni fase esegue un'operazione specifica e granulare | | Piattaforma \| Flusso | ✅ Tutti i flussi avviati nel contesto utente astraggono le transazioni del contesto di sistema ai sottoflussi, posizionate in modo coerente dopo l'elemento Pausa per creare una nuova transazione | | Piattaforma \| Flusso | ✅ Tutti i flussi attivati da record hanno valori di ordine di attivazione compilati | | Piattaforma \| Flusso | ✅ I flussi che coinvolgono chiamate di sistema esterne o processi di lunga durata utilizzano percorsi asincroni | | Piattaforma \| Flusso | ✅ Sequenze complesse di operazioni sui dati correlate vengono create con Orchestrator (invece di invocare più sottoflussi all'interno del flusso monolitico) | | Piattaforma \| Convalida | ✅ L'integrità dei dati viene applicata a livello di piattaforma utilizzando regole di convalida, regole di duplicazione e campi obbligatori | | Piattaforma \| Convalida | ✅ Le regole di convalida impediscono l'immissione di dati non validi prima del salvataggio (più efficiente della convalida dei trigger) | | Piattaforma \| Processi di approvazione | ✅ L'instradamento delle approvazioni in più fasi gestisce i percorsi di approvazione paralleli e sequenziali con i responsabili approvazioni delegati | | Piattaforma \| Processi di approvazione | ✅ L'architettura di approvazione tiene conto degli scenari di eccezione (tutti i responsabili approvazioni in vacanza, esigenze aziendali urgenti che ignorano le normali approvazioni) | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| Flusso | ⚠️ Process Builder e regole di flusso di lavoro utilizzate per la nuova automazione (Flow Builder è la direzione strategica) | | Piattaforma \| Flusso | ⚠️ Automazione programmatica utilizzata quando gli utenti aziendali o gli amministratori devono modificare la logica senza il coinvolgimento dello sviluppatore | | Piattaforma \| Flusso | ⚠️ I flussi mancano della gestione dei guasti con conseguente scarso ripristino degli errori | | Piattaforma \| Flusso | ⚠️ Le variabili hanno valori codificati | | Piattaforma \| Flusso | ⚠️ I flussi devono essere disattivati manualmente prima del caricamento in blocco dei dati | | Piattaforma \| Flusso | ⚠️ Porzioni di un flusso vengono ripetute tra i flussi anziché utilizzare sottoflussi | | Piattaforma \| Flusso | ⚠️ I flussi attivano avvisi di "eccezione non gestita" | | Piattaforma \| Flusso | ⚠️ Anche i flussi semplici causano regolarmente errori relativi ai limiti del governor | | Piattaforma \| Flusso | ⚠️ I flussi richiedono input aggiuntivi per fornire contesto | | Piattaforma \| Flusso | ⚠️ I flussi hanno più scopi | | Piattaforma \| Flusso | ⚠️ I gruppi di fasi correlate contengono funzionalità che si sovrappongono a gruppi di fasi in altri flussi | | Piattaforma \| Flusso | ⚠️ I flussi richiedono gli input degli utenti quando è possibile utilizzare i dati memorizzati | | Piattaforma \| Flusso | ⚠️ I flussi richiedono input i cui dati non vengono utilizzati | | Piattaforma \| Flusso | ⚠️ Esecuzione di DML utilizzando la raccolta che viene generata dal componente schermata (utilizzando l'impostazione "Utilizza gli ID e tutti i valori dei campi di un record o di una raccolta di record" per creare, aggiornare o eliminare l'elemento quando la raccolta viene generata dal componente schermata) | | Piattaforma \| Flusso | ⚠️ I flussi attivati da record non utilizzano affatto gli attributi dell'ordine di attivazione o non utilizzano i valori dell'ordine di attivazione in modo coerente | | Piattaforma \| Flusso | ⚠️ Percorsi asincroni non utilizzati in modo coerente o per nulla | | Piattaforma \| Flusso | ⚠️ Grandi flussi monolitici tentano di coordinare sequenze complesse di operazioni correlate sui dati (con o senza sottoflussi) | | Piattaforma \| Processi di approvazione | ⚠️ L'architettura di approvazione non tiene conto degli scenari di eccezione (tutti i responsabili approvazioni in vacanza, esigenze aziendali urgenti) | | Piattaforma \| Convalida | ⚠️ Integrità dei dati applicata solo nei trigger anziché nelle regole di convalida (validazione dei trigger meno efficiente e più complessa) | ## Automazione programmatica **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Apex | ✅ Il framework trigger handler impone il trigger singolo per oggetto, l'in blocco, la separazione delle preoccupazioni e la prevenzione dell'esecuzione ricorsiva | | Piattaforma \| Apex | ✅ Gli handler trigger delegano alle classi di servizio per la logica aziendale, mantenendo una chiara separazione delle preoccupazioni | | Piattaforma \| Apex | ✅ I trigger utilizzano la protezione ricorsione utilizzando flag statici o una classe di controllo ricorsione dedicata | | Piattaforma \| Apex | ✅ Future Apex viene utilizzato con parsimonia, per chiamate o DML oggetto di sistema | | Piattaforma \| Apex | ✅ Le chiamate Apex asincrone utilizzano Area di attesa per 'concatenare' DML complessi tra le transazioni | | Piattaforma \| Apex | ✅ Batch Apex viene utilizzato per grandi volumi di dati (elabora grandi quantità di dati con limiti governor dedicati per blocco) | | Piattaforma \| Apex | ✅ I processi batch hanno una gestione degli errori che registra i record non riusciti senza arrestare l'intera esecuzione batch | | Piattaforma \| Apex | ✅ API in blocco viene utilizzata solo quando devono essere elaborate grandi quantità di dati (API native SOAP e REST sfruttate per quantità di dati più piccole) | | Piattaforma \| Apex | ✅ Queueable Apex è utilizzato per l'orchestrazione di flussi di lavoro complessi, chiamate esterne con logica di nuovo tentativo e l'elaborazione che beneficia dei limiti asincroni | | Piattaforma \| Apex | ✅ Pianificato Apex esegue l'elaborazione su pianificazioni fisse per la manutenzione notturna, la generazione di rapporti giornalieri, la sincronizzazione periodica dell'integrazione e le regole aziendali basate sul tempo | | Piattaforma \| Standard di progettazione | ✅ I casi d'uso per le operazioni sincrone e asincrone all'interno delle automazioni sono delineati chiaramente come parte degli standard di progettazione | | Piattaforma \| Documentazione | ✅ I percorsi di esecuzione pianificati e potenziali per le automazioni sono delineati chiaramente | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| Apex | ⚠️ Più trigger su un unico oggetto con ordine di esecuzione imprevedibile e logica sovrapposta | | Piattaforma \| Apex | ⚠️ Logica aziendale incorporata direttamente nei file trigger che rende difficile il test | | Piattaforma \| Apex | ⚠️ Nessun framework di handler trigger o schemi di trigger incoerenti tra gli oggetti | | Piattaforma \| Apex | ⚠️ I processi batch Apex hanno dimensioni dell'ambito molto piccole (ad esempio, dimensioni dell'ambito = 1) | | Piattaforma \| Apex | ⚠️ Batch Apex utilizzato per le chiamate esterne (grandi volumi di dati Salesforce inviati al sistema esterno utilizzando Batch Apex) | | Piattaforma \| Apex | ⚠️ Funzioni Apex asincrone utilizzate in modo arbitrario (Metodi futuri e Apex inseribile in coda utilizzati in modo incoerente o intercambiabile) | | Piattaforma \| Apex | ⚠️ Apex asincrono usato raramente | | Piattaforma \| Apex | ⚠️ Le operazioni del database non hanno una logica chiara e coerente per passare l'esecuzione ad Apex batch quando necessario | | Piattaforma \| Standard di progettazione | ⚠️ I casi d'uso per le operazioni sincrone e asincrone non sono affrontati | | Piattaforma \| Documentazione | ⚠️ L'invocazione dell'automazione non è documentata | ## Eventi piattaforma **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Eventi piattaforma | ✅ Gli eventi piattaforma vengono utilizzati per l'automazione basata sugli eventi che separa i publisher dagli abbonati | | Piattaforma \| Eventi piattaforma | ✅ Gli editori non sono a conoscenza degli abbonati e pubblicano fire-and-forget | | Piattaforma \| Eventi piattaforma | ✅ Più abbonati reagiscono in modo indipendente agli eventi tramite flussi attivati da eventi piattaforma, trigger Apex o integrazioni esterne | | Piattaforma \| Eventi piattaforma | ✅ I replay ID vengono utilizzati per riprodurre gli eventi mancati da qualsiasi punto della finestra di conservazione di 72 ore | | Piattaforma \| Eventi piattaforma | ✅ Gli eventi piattaforma consentono la comunicazione tra organizzazioni, la notifica del sistema esterno e l'orchestrazione del flusso di lavoro interno | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| Eventi piattaforma | ⚠️ Accoppiamento diretto tra publisher e abbonati che impedisce l'automazione componibile | | Piattaforma \| Eventi piattaforma | ⚠️ L'aggiornamento del livello account chiama direttamente l'aggiornamento opportunità, la notifica del team account e la sincronizzazione del data warehouse in un'unica transazione (l'accoppiamento stretto richiede modifiche alla logica dell'account ogni volta che è necessaria una nuova elaborazione a valle) | | Piattaforma \| Apex | ⚠️ Pubblica immediatamente Eventi piattaforma utilizzati adhoc (eventi in tempo reale utilizzati al posto di Pubblica dopo l'impegno indipendentemente dai requisiti degli ordini di pubblicazione o dai rischi di blocco dei record) | ## Standard di sviluppo Apex **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Apex | ✅ Le istruzioni SOQL utilizzano operatori di confronto di logica positiva (`INCLUDES`, `IN`) come logica principale o unica | | Piattaforma \| Apex | ✅ SOQL evita `= NULL`, `!= NULL` o li utilizza con parsimonia dopo operatori di confronto positivi | | Piattaforma \| Apex | ✅ SOQL non utilizza istruzioni `LIMIT 1` | | Piattaforma \| Apex | ✅ SOQL non utilizza la parola chiave `ALL ROWS` | | Piattaforma \| Apex | ✅ SOQL non viene visualizzato all'interno dei loop | | Piattaforma \| Apex | ✅ I criteri dei caratteri jolly vengono visualizzati in SOSL (non SOQL) | | Piattaforma \| Apex | ✅ le istruzioni SOQL evitano confronti di `LIKE` o confronti di testo parziali | | Piattaforma \| Apex | ✅ SOQL è racchiuso in blocchi di `try-catch` | | Piattaforma \| Apex | ✅ Le variabili non fanno riferimento a valori codificati (per tipi di record, utenti, ecc.) | | Piattaforma \| Apex | ✅ Ogni classe serve un unico scopo specifico | | Piattaforma \| Apex | ✅ Ogni metodo esegue un'operazione specifica e granulare | | Piattaforma \| Apex | ✅ Tutte le variabili di input hanno uno scopo chiaro all'interno della classe | | Piattaforma \| Apex | ✅ L'esecuzione di codice richiede un numero minimo di risorse | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| Apex | ⚠️ Le istruzioni SOQL utilizzano `NOT`, criteri di `NOT IN` come operatore principale o solo di confronto (non selettivo) | | Piattaforma \| Apex | ⚠️ Le istruzioni SOQL utilizzano la parola chiave `ALL ROWS` (non selettiva) | | Piattaforma \| Apex | ⚠️ Le istruzioni SOQL utilizzano `= NULL`, criteri di `!= NULL` come operatore principale o solo di confronto (non selettivo) | | Piattaforma \| Apex | ⚠️ Le variabili hanno valori codificati | | Piattaforma \| Apex | ⚠️ SOQL viene visualizzato all'interno dei loop | | Piattaforma \| Apex | ⚠️ Le istruzioni SOQL utilizzano frequentemente criteri di filtro per `LIKE` e caratteri jolly (non selettivi) | | Piattaforma \| Apex | ⚠️ SOQL non racchiuso in blocchi di `try-catch` | | Piattaforma \| Apex | ⚠️ Le istruzioni SOQL utilizzano `LIMIT 1` (non selettivo) | | Piattaforma \| Apex | ⚠️ SOSL utilizzato raramente o in modo non coerente per i criteri di selezione dei caratteri jolly | | Piattaforma \| Apex | ⚠️ Le classi hanno più scopi | | Piattaforma \| Apex | ⚠️ I metodi eseguono più operazioni o i metodi eseguono operazioni che non sono in linea con lo scopo dichiarato della classe di cui fanno parte | | Piattaforma \| Apex | ⚠️ Le variabili di input non vengono effettivamente utilizzate nei metodi | | Piattaforma \| Apex | ⚠️ I metodi recuperano inutilmente i dati dal database o da sistemi esterni | ## Gestione degli errori **Schemi** | Dove cercare | Che bell'aspetto | | --- | --- | | Piattaforma \| Apex | ✅ Le eccezioni personalizzate vengono utilizzate per creare messaggi di errore avanzati e logica | | Piattaforma \| Apex | ✅ Il codice racchiude tutte le chiamate DML, SOQL e altre fasi critiche del processo in blocchi di `try-catch` | | Piattaforma \| Apex | ✅ I metodi delle classi di database possono essere utilizzati esclusivamente per tutte le operazioni sui dati (anziché DML) | | Piattaforma \| Apex | ✅ In contesti asincroni e in blocco, vengono utilizzati metodi di classe Database anziché DML | | Piattaforma \| Aura | ✅ JavaScript racchiude tutte le operazioni sui dati e le fasi critiche del processo in blocchi di `try-catch` | | Piattaforma \| Aura | ✅ All'interno dei blocchi di `try-catch`, `Error` JavaScript nativo viene utilizzato nelle istruzioni throw (nessun utilizzo di `$A.error()`) | | Piattaforma \| Aura | ✅ Tutta la logica di errore recuperabile viene visualizzata all'interno degli estratti `catch` e fornisce messaggi utente chiari | | Piattaforma \| Flusso | ✅ I flussi con operazioni sui dati, chiamate e altre logiche di elaborazione critiche hanno percorsi di errore per tutte le azioni chiave | | Piattaforma \| Flusso | ✅ I flussi schermata utilizzano costantemente connettori di errore per mostrare gli errori agli utenti | | Piattaforma \| Flusso | ✅ I messaggi di errore personalizzati sono configurati per gli errori che verranno visualizzati sullo schermo | | Piattaforma \| Componenti Web Lightning (LWC) | ✅ JavaScript racchiude tutte le operazioni sui dati e le fasi critiche del processo in `if ()` /`else if ()` blocchi | | Piattaforma \| Componenti Web Lightning (LWC) | ✅ Tutte le funzioni di `@wire` utilizzano le proprietà `data` e `error` fornite dall'API | | Piattaforma \| Componenti Web Lightning (LWC) | ✅ Tutte le `if (error)`/`else if (error)` istruzioni contengono logica per elaborare gli errori e fornire messaggi informativi | **Anti-schemi** | Dove cercare | Che brutto aspetto | | --- | --- | | Piattaforma \| Apex | ⚠️ DML, SOQL, callout o altre fasi critiche del processo non racchiuse in blocchi try-catch | | Piattaforma \| Apex | ⚠️ Non vengono utilizzati metodi di classe Database | | Piattaforma \| Apex | ⚠️ Operazioni sui dati eseguite esclusivamente con DML | | Piattaforma \| Apex | ⚠️ Le istruzioni di `System.debug` vengono visualizzate nel codice di produzione (e non vengono commentate) | | Piattaforma \| Aura | ⚠️ JavaScript non racchiude in modo coerente le operazioni sui dati e le fasi critiche del processo nei blocchi di `try-catch` | | Piattaforma \| Aura | ⚠️ I componenti utilizzano `$A.error()` | | Piattaforma \| Aura | ⚠️ La logica degli errori recuperabili non viene visualizzata in modo coerente nelle istruzioni di `catch` e i messaggi di errore agli utenti non sono chiari | | Piattaforma \| Flusso | ⚠️ I flussi non utilizzano i percorsi di errore in modo coerente o del tutto | | Piattaforma \| Flusso | ⚠️ Messaggi di errore personalizzati non utilizzati, in modo che gli utenti visualizzino il messaggio predefinito "Si è verificato un errore non gestito in questo flusso" | | Piattaforma \| Componenti Web Lightning (LWC) | ⚠️ Le funzioni di `@wire` non utilizzano le proprietà `data` e `error` fornite dall'API (o non le utilizzano in modo coerente) | | Piattaforma \| Componenti Web Lightning (LWC) | ⚠️ Se utilizzate, le istruzioni `if (error)`/`else if (error)` non contengono in realtà logica per elaborare gli errori e fornire messaggi di errore utili | | Piattaforma \| Componenti Web Lightning (LWC) | ⚠️ JavaScript non utilizza in modo coerente `if ()` /`else if ()` blocchi con operazioni sui dati o fasi del processo critiche | # Eccellenza operativa — Schemi Il pilastro Eccellenza operativa si concentra su automazione, procedure DevOps, osservabilità, monitoraggio e gestione degli incidenti, in modo che le operazioni si svolgano senza problemi e si riprendano rapidamente. Questi schemi trasformano i principi di progettazione del pilastro in pratiche concrete e riesaminabili: cosa cercare in una soluzione, che aspetto ha e gli schemi anti-schema che la minano. ## Principi di progettazione Questi schemi mettono in pratica i principi di progettazione del pilastro Eccellenza operativa. Leggerli insieme al [pilastro Eccellenza operativa](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/operational-excellence.md) per informazioni complete su ciascuno di essi. - **Evolvere con osservabilità**: progettare strumentazione, monitoraggio e telemetria dalla versione iniziale anziché adattarla dopo l'insorgere dei problemi. - **Standardizzare le procedure operative**: configurazione della versione e procedure operative nel controllo sorgente in modo che vengano eseguite in modo coerente e riducano la fluttuazione della configurazione. - **Abbracciare la cultura DevOps**: abbattere i silos tra team di sviluppo, operativi e aziendali condividendo la responsabilità dei risultati. - **Automatizzare per efficienza**: automatizzare le operazioni operative ripetitive per eliminare il lavoro manuale, ridurre gli errori e lasciare scalare le operazioni. - **Imparare da tutti gli eventi operativi**: estrarre l'apprendimento da incidenti, quasi mancanze e successi tramite autopsie e telemetria operativa irreprensibili. ## Come utilizzare questi schemi Ogni categoria abbina **modelli** (aspetto positivo) e **anti-schemi** (cosa evitare), organizzati in modo da poter rivedere una soluzione area per area. Iniziare dall'esito operativo necessario: - **Ottenere visibilità sul comportamento del sistema?** Utilizzare **Osservabilità** per registrare, monitorare, tracciare, avvisare e visualizzare il sistema. - **Eliminare le operazioni manuali?** Utilizzare **Automazione** per l'automazione dei processi, l'infrastruttura come codice e l'eliminazione del lavoro ripetitivo. - **Le modifiche di spedizione sono sicure e frequenti?** Utilizzare **DevOps** per le pipeline CI/CD, il controllo delle versioni, l'automazione dei test e le strategie di distribuzione. - **Pronti a rilevare e risolvere gli incidenti?** Utilizzare **Gestione incidenti** per il rilevamento, le procedure di risposta e l'autopsia. - **Migliorare col tempo?** Utilizzare il **miglioramento continuo** per le metriche DORA, le revisioni operative, le revisioni della preparazione e una cultura dell'apprendimento. - **Agenti operativi nella produzione?** Utilizzare gli **schemi degli agenti** per la gestione del ciclo di vita degli agenti, l'automazione della distribuzione e il monitoraggio operativo. ## Categorie di schema ### [Schemi agente](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/operational-excellence-agentic-patterns.md) Schemi di eccellenza operativa per i sistemi agenti che includono la gestione del ciclo di vita degli agenti, l'automazione della distribuzione e il monitoraggio operativo. ### [Automazione](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/operational-excellence-automation-patterns.md) Schemi per l'automazione dei processi, infrastruttura come codice ed eliminazione delle operazioni manuali. ### [Miglioramento continuo](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/operational-excellence-continuous-improvement-patterns.md) Schemi per le metriche DORA, retrospettive e revisioni operative, revisioni della preparazione operativa e creazione di una cultura dell'apprendimento. ### [DevOps](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/operational-excellence-devops-patterns.md) Schemi per le pipeline CI/CD, il controllo delle versioni, l'automazione dei test e le strategie di distribuzione. ### [Gestione incidenti](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/operational-excellence-incident-patterns.md) Schemi per il rilevamento degli incidenti, le procedure di risposta, le automazioni e il miglioramento continuo. ### [Osservabilità](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/operational-excellence-observability-patterns.md) Schemi di registrazione, monitoraggio, tracciamento, avviso e visibilità del sistema. ## Risorse correlate - [Pilastro Eccellenza operativa](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/operational-excellence.md): i principi di progettazione e le linee guida architettoniche implementate da questi schemi - [Eccellenza operativa per Agentic Enterprise](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/agentic-enterprise-operational-excellence.md) — indicazioni operative per le soluzioni basate sugli agenti - [Well-Architected Framework](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/framework.md) – come l’eccellenza operativa si integra con gli altri pilastri - [Patterns and Anti-Patterns](https://architect.salesforce.com/docs/architect/it-it/well-architected/guide/patterns-and-anti-patterns.md) — la libreria completa di schemi in tutti i pilastri # Eccellenza operativa per l'azienda agente Eccellenza operativa per l'azienda agente ## Panoramica L'eccellenza operativa per i sistemi agentici estende le pratiche DevOps tradizionali per affrontare le caratteristiche specifiche degli agenti AI: comportamento non deterministico, ragionamento e memoria dipendenti dal contesto, complessità degli obiettivi e costi di inferenza variabile. Le applicazioni convenzionali seguono percorsi di codice prevedibili, ma gli agenti generano nuove risposte basate sul contesto. Il monitoraggio tradizionale tiene traccia delle metriche note, mentre l'osservabilità degli agenti richiede la comprensione del ragionamento del modello linguistico e degli schemi decisionali. I test standard convalidano gli output deterministici, ma la convalida degli agenti valuta la qualità della risposta in più dimensioni, tra cui precisione, pertinenza, sicurezza ed equità. Poiché i prodotti e i sistemi cambiano nel tempo, applicare questi cinque principi di progettazione per incorporare l'eccellenza operativa nel modo in cui vengono eseguiti: evolvere con osservabilità, standardizzare le procedure operative, adottare una cultura DevOps, automatizzare per l'efficienza e imparare da tutti gli eventi operativi. Il principio di eccellenza operativa fondamentale, "Evolvere con osservabilità", diventa fondamentale per i sistemi agenti poiché il comportamento degli agenti emerge da interazioni complesse tra prompt, contesto recuperato, comportamento del modello e cronologia delle conversazioni anziché dall'esecuzione di codice deterministico. Poiché gli architetti non sono in grado di prevedere ogni risposta degli agenti al momento della progettazione, poiché le risposte dipendono dal modello, dal prompt e dal contesto live, progettare per l'osservabilità e i guardrail. L'osservabilità completa rivela come si comportano effettivamente gli agenti in condizioni reali. Questa visibilità consente miglioramenti basati sui dati e una diagnosi rapida dei problemi quando gli agenti producono output imprevisti. "Operations as Code" assume nuove dimensioni per gli agenti. L'infrastruttura tradizionale come codice si estende al controllo delle versioni del prompt, alla gestione della configurazione del modello e all'automazione della distribuzione degli agenti. Le procedure operative degli agenti riguardano le modifiche della versione del modello, l'evoluzione rapida e gli aggiornamenti della Knowledge Base e le operazioni convenzionali di distribuzione e ritiro. "Impara da tutti gli eventi operativi" diventa ancora più utile con i sistemi agenti. Gli incidenti degli agenti spesso rivelano piccoli problemi di prompt engineering, errori di scripting e orchestrazione, lacune della Knowledge Base o schemi di interazione utente imprevisti. L'autopsia combinata con l'analisi sistematica della telemetria degli agenti trasforma l'esperienza operativa in capacità organizzativa che aumenta nel tempo. ## Architettura osservabilità agente ### Registrazione delle conversazioni e Itinerari di controllo La registrazione completa delle conversazioni costituisce la base dell'osservabilità degli agenti. Acquisire ogni conversazione, inclusi gli input degli utenti, le risposte degli agenti, le fasi di ragionamento, le azioni richiamate, i dati recuperati e gli esiti finali. Questa telemetria ha diversi scopi: debug di incidenti specifici, analisi della qualità in molte interazioni, controllo della conformità, miglioramento del modello e analisi dello schema di utilizzo. Utilizzare il modello nativo di tracciamento delle sessioni anziché la registrazione personalizzata. Agentforce Session Tracing acquisisce i dati di interazione degli agenti in un modello di dati unificato in Data 360 anziché richiedere la creazione di un sistema di telemetria parallelo. Il modello di dati di tracciamento delle sessioni (STDM) registra la conversazione come gerarchia delle tracce. Ogni sessione contiene interazioni (turni), ogni interazione contiene fasi (UserInputStep, LLMExecutionStep, FunctionStep) e fasi contengono messaggi (comunicazioni utente e agente). STDM utilizza oggetti Data 360 standard come AIAgentSession, AIAgentSessionParticipant, AIAgentInteraction, AIAgentInteractionStep e AIAgentInteractionMessage. Le interazioni contengono identificatori di tracciamento distribuito (TelemetryTraceId e TelemetryTraceSpanId) e le fasi contengono un identificatore di span (TelemetryTraceSpanId), che riflette un modello di span in stile OpenTelemetry. La modellazione delle conversazioni degli agenti come tracce è l'approccio standard del settore all'osservabilità degli agenti e il riutilizzo del modello nativo evita i problemi di scala in cui si trovano gli oggetti creati a mano: archiviazione di conversazioni a più turni, carichi utili JSON di grandi dimensioni e rapida crescita dei dati. La creazione di oggetti transazionali personalizzati per registrare le conversazioni è un'eccezione deliberata, ad esempio un oggetto personalizzato leggero che correla il comportamento degli agenti ai risultati aziendali e non al substrato di registrazione principale. I metadati delle sessioni e delle conversazioni acquisiscono il contesto critico, inclusi gli identificativi di sessione e interazione, l'identità dell'utente, l'identità dell'agente, l'ora di inizio e l'ora di fine. STDM collega inoltre ogni fase di interazione ai relativi record di chiamata LLM (large language model) (tramite GenerationId e riferimenti GenAiGatewayRequest/Response). L'utilizzo dei token, il modello e i dettagli del prompt sono disponibili tramite questi join anziché memorizzati come campi di sessione. I metadati consentono di filtrare e aggregare le conversazioni per l'analisi degli schemi. I dettagli delle interazioni e delle fasi acquisiscono ogni turno, inclusi l'input dell'utente, la risposta dell'agente, la spiegazione del ragionamento (se disponibile), i punteggi di confidenza, il contesto recuperato, le azioni tentate e gli errori riscontrati. Il tracciamento a livello di fase consente un'indagine dettagliata degli incidenti che ricostruisce esattamente ciò che è accaduto in ogni punto della catena di ragionamento. Le fasi azione registrano ogni azione eseguita da un agente, incluse le chiamate API, le modifiche dei dati, le interazioni con i sistemi esterni e le integrazioni richiamate. I record azione rispondono a domande come "cosa ha modificato questo agente?" e "a quali sistemi ha avuto accesso questo agente?". Queste risposte supportano le indagini di sicurezza e i requisiti di conformità. STDM acquisisce le azioni in modo nativo come fasi di interazione. Le tracce di ragionamento del Motore di ragionamento Atlas rivelano i processi decisionali degli agenti, consentendo di diagnosticare perché gli agenti hanno scelto azioni specifiche o generato risposte particolari. Il tracciamento della sessione registra le fasi del pianificatore come parte di ogni interazione. La profondità del ragionamento esposto dipende dal modello e dal pianificatore, ma quando disponibili queste tracce migliorano notevolmente la possibilità di debug. L'itinerario di controllo AI generativo Einstein Trust Layer acquisisce ogni interazione generativa-intelligenza artificiale, il prompt e il testo della risposta, incluse le versioni mascherate con informazioni personali (PII), i dati di base recuperati, i punteggi di sicurezza e tossicità della risposta e i dettagli del modello LLM, tutti trasmessi e archiviati in Data 360\. Attivare AI generativa Einstein e Raccolta e archiviazione dati di feedback per acquisire i dati di controllo e feedback in Data 360, dove è possibile eseguirne query e analisi con i rapporti di Data 360 per la conservazione a lungo termine. > **Esempio:** > > Bene: Registri delle conversazioni archiviati in oggetti Salesforce personalizzati con campi per l'input dell'utente, la risposta dell'agente, le azioni intraprese, il consumo di token e l'esito della conversazione. Il cruscotto digitale mostra le percentuali di successo delle conversazioni per agente e caso d'uso. Meglio: La registrazione completa include tracce di ragionamento che mostrano il processo decisionale dell'agente, il contesto recuperato che mostra le risposte basate sulle informazioni e i punteggi di confidenza che indicano incertezza. Meglio: L'analisi delle conversazioni correla il comportamento degli agenti ai risultati aziendali, identifica le opportunità di miglioramento tramite l'analisi degli schemi e alimenta le opportunità di apprendimento continuo con esempi con etichetta di qualità. ### Monitoraggio delle prestazioni degli agenti Monitorare le prestazioni operative assicurando che gli agenti soddisfino i livelli di servizio e operino entro i parametri previsti. La **latenza della risposta** tiene traccia del tempo end-to-end dall'input dell'utente alla risposta dell'agente. La latenza influisce direttamente sull'esperienza utente. Misurare la latenza ai percentili (p50, p95, p99) rivelando le prestazioni tipiche e le esperienze peggiori. Avviso quando la latenza p95 supera le soglie che indica un peggioramento delle prestazioni. I fattori di latenza per gli agenti includono il tempo di inferenza del modello, la durata del recupero di dati e contesto, l'esecuzione di strumenti e azioni esterni e la latenza di rete. Strumentare ogni fase separatamente abilitando l'ottimizzazione mirata quando la latenza complessiva supera gli obiettivi. Il **consumo di token** misura i token utilizzati per conversazione, per agente e per caso d'uso. Il consumo di token determina i costi di inferenza e influisce sul tempo di risposta (più token richiedono più calcolo dell'inferenza). Tenere traccia della distribuzione dei token che rivela se l'utilizzo effettivo corrisponde alle proiezioni. Rileva conversazioni anomale che consumano token eccessivi suggerendo problemi immediati o un uso improprio. Le metriche dei token includono token di prompt (input al modello), token di completamento (output del modello) e token totali (somma di prompt e completamento). I token di prompt sono più controllabili dei token di completamento. Ottimizzare i prompt e il contesto recuperato riducendo il consumo di token prompt mantenendo la qualità. Il **monitoraggio della produttività** tiene traccia delle conversazioni simultanee, delle richieste al secondo e delle tendenze del volume delle conversazioni e può aiutare a prevedere i requisiti di capacità e scalabilità. Confrontare la produttività corrente con i limiti di traffico noti o le linee di base di capacità che avvisano quando si avvicinano alle soglie. Il **tracciamento del tasso** di errore monitora gli errori in base al tipo, inclusi gli errori specifici del modello, gli errori di timeout, gli errori di autorizzazione negata e gli errori di integrazione esterna. Gli schemi di errore rivelano problemi sistematici che richiedono una correzione. Calcolare le percentuali di errore come percentuale del totale delle richieste abilitando il confronto tra agenti e periodi di tempo. Distinguere le categorie di errore che richiedono risposte diverse. Gli errori specifici del modello possono richiedere correzioni immediate o passare a un modello migliore. Gli errori di autorizzazione richiedono modifiche della configurazione di sicurezza. Gli errori di integrazione richiedono un'analisi del sistema esterno o l'attivazione di un interruttore. Il **monitoraggio della disponibilità** misura il tempo di attività degli agenti e i periodi di funzionamento riusciti. Calcolare la disponibilità come percentuale di tempo in cui gli agenti rispondono correttamente alle richieste. Tenere traccia della disponibilità rispetto agli obiettivi del livello di servizio (SLO), abilitando una risposta proattiva quando la disponibilità scende al di sotto dei target. **Proactive Monitoring** valuta la presenza di anomalie della piattaforma e problemi di utilizzo delle risorse che possono influire sullo stato dell'infrastruttura degli agenti. Fa emergere i segnali prima che vengano inoltrati al livello superiore in problemi visibili agli utenti. Utilizzarlo per anticipare le condizioni a livello di infrastruttura, ad esempio l'attività API insolita o il consumo di risorse che tende verso i limiti della piattaforma, che potrebbero peggiorare le prestazioni degli agenti. Esaminare i segnali rispetto alla normale base di riferimento operativa degli agenti per poter distinguere le anomalie fruibili dalla variazione prevista. ### Metriche di qualità e valutazione Monitorare continuamente la qualità della risposta, rilevando il degrado prima che influisca sui risultati aziendali. Quando la piattaforma offre strumenti di valutazione integrati, utilizzarli al posto di processi personalizzati o manuali. Iniziare con gli strumenti di test e valutazione nativi. Centro test Agentforce consente di gestire gli insiemi di casi di test riutilizzabili e di eseguire gli agenti in batch, verificando se l'agente ha selezionato l'argomento e l'azione previsti e ha prodotto una risposta accettabile anziché creare ed eseguire il proprio cablaggio di test. Supporta anche i valutatori nativi, incluse le dimensioni di qualità pronte all'uso e un approccio LLM-as-judge per il calcolo del punteggio della qualità della conversazione, e consente di creare valutatori personalizzati per criteri specifici dell'organizzazione. Utilizzare conversazioni rappresentative negli insiemi di test in modo che la valutazione rifletta l'utilizzo reale. L'**accuratezza della risposta** misura se le risposte degli agenti contengono informazioni corrette. Una valutazione accurata richiede asserzioni con risposta nota o un riesame umano. Per le domande fattuali con risposte note, la valutazione automatica confronta le risposte degli agenti con le risposte corrette; conservarle come casi di test nel Centro test per una valutazione ripetibile. Per le domande a risposta aperta, i valutatori umani valutano la precisione delle conversazioni campionate. Tenere traccia delle tendenze della precisione nel tempo, rivelando se modifiche rapide, aggiornamenti del modello o modifiche della Knowledge Base migliorano o peggiorano le prestazioni. La **pertinenza della risposta** misura se le risposte degli agenti rispondono alle domande degli utenti in modo appropriato anche se non sono perfettamente accurate. Le risposte pertinenti comprendono l'intento dell'utente e forniscono informazioni utili anche quando non è possibile una risposta completa. Valutare la pertinenza tramite valutatori nativi, se disponibili, revisione umana delle conversazioni campionate e dei segnali degli utenti. Per gli agenti basati su una Knowledge Base, l'analisi della qualità di recupero nativa può valutare la pertinenza del contesto, la pertinenza delle risposte e la fedeltà (fondatezza) delle risposte. **I guardrail** rilevano risposte non sicure, inappropriate o dannose, tra cui distorsioni, contenuti offensivi, consigli pericolosi e risposte fuori dall'ambito. Einstein Trust Layer applica il rilevamento della tossicità alle interazioni LLM in fase di esecuzione, che è la prima linea di difesa. Migliorare il monitoraggio della sicurezza attraverso filtri dei contenuti, campionamenti manuali delle revisioni, meccanismi di segnalazione degli utenti e controlli dell'equità che valutano la distribuzione dei risultati tra i gruppi demografici. Le metriche di **soddisfazione degli utenti** acquisiscono la qualità soggettiva dell'esperienza. Il feedback Agentforce confluisce nei modelli di dati generativi di Controllo AI e Feedback di Einstein (GenAIFeedback/GenAIFeedbackDetail in Data 360). Questi modelli acquisiscono segnali utente espliciti (pollice su/giù, accettazione/rifiuto, modifiche e commenti integrali) da una fonte umana o di sistema, insieme alla richiesta gateway e ai dati di generazione.Acquisire feedback espliciti (domanda prima dell'inoltro al livello superiore, dopo la fine di una conversazione e tramite sondaggi di follow-up) dove necessario e combinare segnali espliciti e impliciti per una prospettiva di qualità completa. ### Rilevamento della fluttuazione del modello Salesforce fornisce varie superfici del modello. Il livello generativo fornisce gli elementi di ragionamento conversazionale eseguiti dagli agenti: I modelli ospitati da Agentforce offrono un ragionamento pronto all'uso all'interno del confine Trust Salesforce e portano i propri link LLM (BYOLLM) a LLM o provider esterni. Il livello predittivo fornisce i punteggi strutturati su cui gli agenti basano le loro decisioni: BYOM estrae i punteggi predittivi a copia zero dalle piattaforme ospitate esternamente e i modelli Einstein nativi producono punteggi e classificazioni automatici sugli oggetti CRM. Insieme, queste superfici consentono a un agente autonomo di ragionare in linguaggio naturale, basando il flusso di lavoro su dati statistici strutturati. Monitorare la fluttuazione del modello, che indica prestazioni deteriorate nel tempo o condizioni variabili che richiedono un adattamento. Rivedere le note di rilascio e testare i casi d'uso critici in un Sandbox prima che ogni rilascio principale venga reso disponibile per la produzione. Utilizzare la matrice di rilascio e la finestra di anteprima Sandbox per individuare tempestivamente i problemi di compatibilità. La **deriva delle prestazioni** si verifica quando la precisione, la pertinenza o la sicurezza degli agenti peggiorano nel tempo. Monitorare le metriche di qualità nel tempo rilevando cali statisticamente significativi. La fluttuazione delle prestazioni può essere il risultato di un deterioramento del modello, di una stasi della Knowledge Base, di un rapido disallineamento con i modelli di utilizzo che cambiano o di una fluttuazione del concetto in cui le relazioni tra gli input e gli output desiderati evolvono. Stabilire le prestazioni di base immediatamente dopo la distribuzione iniziale dell'agente misurando l'accuratezza, la pertinenza, la sicurezza e la soddisfazione nei casi di test rappresentativi. Rivalutare periodicamente rispetto agli stessi casi di test rilevando modifiche delle prestazioni indipendentemente dai turni dello schema di utilizzo. Avvisa quando le metriche di qualità diminuiscono oltre le soglie accettabili. Definire soglie basate sulla tolleranza dell'impatto aziendale. Alcuni casi d'uso tollerano un modesto deterioramento della qualità; altri richiedono una risposta immediata a qualsiasi declino. La **deriva della distribuzione** si verifica quando gli schemi di input degli utenti cambiano in modo significativo rispetto all'addestramento o alla regolazione delle distribuzioni dei dati. La fluttuazione della distribuzione peggiora le prestazioni quando gli agenti incontrano tipi di input che non sono stati progettati per gestire. Monitorare le caratteristiche di input, tra cui la lunghezza delle domande, la distribuzione degli argomenti, la complessità della lingua e la terminologia del dominio, rilevando cambiamenti significativi. Confrontare le distribuzioni degli input correnti con i valori di riferimento storici. Turni di distribuzione di grandi dimensioni possono indicare nuovi casi d'uso, cambiamenti nel comportamento degli utenti o processi aziendali in evoluzione. I turni di distribuzione possono richiedere aggiornamenti rapidi, espansione della Knowledge Base o miglioramenti delle funzionalità degli agenti. La **deriva comportamentale si** verifica quando gli schemi di risposta degli agenti cambiano in modo imprevisto. Monitorare le caratteristiche delle risposte, tra cui la durata media delle risposte, le percentuali di chiamata delle azioni, le frequenze di inoltro al livello superiore e gli schemi di errore. Modifiche comportamentali significative possono indicare problemi urgenti, problemi del modello o modifiche del sistema sottostanti. Stabilire i valori di riferimento comportamentali nelle prime fasi della produzione, acquisendo le normali caratteristiche operative, ad esempio schemi di prestazioni regolari, utilizzo degli utensili e percorsi decisionali. Questi valori di riferimento diventano il benchmark con cui il rilevamento dell'anomalia misura in seguito. Confrontare il comportamento in corso con i valori di riferimento, avvisando quando le deviazioni superano la variazione prevista. L'**avviso automatico** abilita la risposta proattiva alla deriva. Configurare gli avvisi che vengono attivati quando le metriche di fluttuazione superano le soglie attivando indagini e potenziali rimedi, inclusi perfezionamento rapido, aggiornamenti della Knowledge Base, espansione dell'insieme di test o addestramento del modello BYOM. ### Rilevamento e avviso delle anomalie Rileva automaticamente comportamenti insoliti degli agenti che richiedono un'indagine. **Anomalie dei costi**, tra cui picchi di consumo dei token, aumenti del tasso di inferenza o accelerazione del costo totale. I picchi di costo possono indicare problemi immediati che causano una generazione eccessiva di token, abusi o usi impropri che determinano un utilizzo imprevisto o problemi dell'infrastruttura che causano chiamate ridondanti. Monitorare le distribuzioni del consumo di token che rilevano le conversazioni anomale. Esaminare le conversazioni che consumano 10 volte il conteggio tipico dei token per capire se rappresentano casi limite legittimi o problemi che richiedono una risoluzione. **Picchi di tassi** di errore che includono aumenti improvvisi delle percentuali di errore, la comparsa di nuovi tipi di errore che non esistevano nella base di riferimento o concentrazioni di errori localizzate che interessano utenti, agenti o casi d'uso specifici. I picchi di errore spesso precedono i problemi di deterioramento della qualità che i clienti possono vedere. Il rilevamento proattivo consente la riparazione prima dell'impatto generale. **Modifiche dello schema** di risposta, inclusi cambiamenti improvvisi nella lunghezza della risposta, nella frequenza di chiamata delle azioni o nella percentuale di inoltro al livello superiore. Le modifiche degli schemi possono indicare problemi urgenti, modifiche del comportamento del modello o modelli di utilizzo in evoluzione. L'**abbandono delle conversazioni aumenta** quando gli utenti abbandonano le conversazioni con percentuali più elevate, il che suggerisce una riduzione della qualità, un aumento della latenza o lacune di funzionalità. Tenere traccia dell'abbandono in base alla fase della conversazione, identificando se gli utenti lo abbandonano durante l'interazione iniziale, a metà conversazione o dopo il completamento di un'operazione. Gli schemi di abbandono rivelano opportunità di miglioramento specifiche. Progettare un'architettura di avviso che bilancia la notifica rapida con l'affaticamento degli avvisi. Instradare immediatamente gli errori critici degli agenti ai tecnici su chiamata. Instradare gli avvisi di degrado della qualità ai team di prodotto per l'analisi durante l'orario di ufficio. Aggregare le anomalie minori in rapporti giornalieri per l'analisi del trend. ## Ciclo di vita degli agenti e operazioni di machine learning ### Controllo e gestione delle versioni dei prompt Prompt di controllo delle versioni, configurazioni e metadati del modello che abilitano il rollback, i test A/B e la manutenzione dell'itinerario di controllo. I **modelli di prompt** sono prompt riutilizzabili creati nel Generatore di prompt che definiscono l'obiettivo, i vincoli e le linee guida del marchio dell'agente, oltre a segnaposto per i dati di base dinamici, ad esempio i dettagli del cliente o del prodotto. Memorizzare i modelli di prompt in Git insieme al codice dell'applicazione, trattando i prompt come logica dell'applicazione critica che meritano lo stesso rigore del codice. Le modifiche del prompt passano attraverso la revisione del codice, i test e la distribuzione controllata. Utilizzare il Generatore di prompt per lo sviluppo iterativo dei prompt con cronologia delle versioni e funzionalità di test. Quando si utilizzano i modelli di prompt come azioni degli agenti, visualizzare in anteprima il modello nel Generatore di prompt per verificare che i campi di unione vengano risolti correttamente. Utilizzare quindi il Centro test per eseguire test end-to-end che confermano che l'agente seleziona l'azione e genera gli output corretti. Esportare i prompt pronti per l'uso in produzione nel controllo di versione creando una sincronizzazione tra lo sviluppo Generatore di prompt e le opportunità di distribuzione controllate dalla fonte. La **gestione delle configurazioni** tiene traccia della selezione del modello, delle impostazioni di temperatura, delle configurazioni di recupero e dei flag delle funzioni. Memorizzare le configurazioni come codice in modo da poter utilizzare valori specifici dell'ambiente, automatizzare le distribuzioni e rilevare la fluttuazione della configurazione. **Il controllo semantico** si applica ai rilasci degli agenti. Le versioni principali indicano modifiche non riuscite, ad esempio contratti di input/output modificati o comportamenti significativamente modificati. Le versioni secondarie indicano aggiunte di funzioni o miglioramenti che mantengono la compatibilità. Le versioni patch indicano correzioni di bug. La numerazione delle versioni comunica l'impatto delle modifiche ai team operativi e agli utenti. Implementare il controllo semantico delle versioni per i componenti degli agenti, inclusi modelli di prompt, configurazioni degli agenti e Knowledge Base. I numeri di versione nei registri consentono la correlazione degli incidenti con distribuzioni specifiche. La **documentazione sulle modifiche** acquisisce la motivazione per modifiche rapide, modifiche delle configurazioni e aggiornamenti del modello. Documentare che cosa è cambiato, perché è cambiato, quali test hanno convalidato la modifica e quali procedure di ritiro esistono. La documentazione sulle modifiche accelera le indagini sugli incidenti e il trasferimento Knowledge. ### Registro modelli e tracciamento della distribuzione Gestire un registro completo delle versioni del modello, dei prompt, delle configurazioni e della cronologia di distribuzione. Il **registro del modello** registra le versioni del modello distribuite, incluse la famiglia di modelli, la versione specifica, lo stato di perfezionamento, l'ambiente di distribuzione (produzione, gestione temporanea e sviluppo), la data di distribuzione e il team responsabile. Il registro fornisce un'unica fonte di dati per lo stato dell'infrastruttura degli agenti. Il **tracciamento della distribuzione** registra ogni distribuzione dell'agente, incluse la versione distribuita, l'ambiente, l'indicazione oraria della distribuzione, l'utente di distribuzione, le approvazioni ottenute e l'esito della distribuzione. Utilizzare la cronologia delle distribuzioni per valutare l'impatto quando emergono problemi (ad esempio, "quali agenti sono stati distribuiti prima dell'inizio dell'incidente?") e per supportare la generazione di rapporti sulla conformità. Il **tracciamento delle dipendenze** mappa le relazioni tra agenti, prompt, Knowledge Base, azioni e integrazioni. Quando la Knowledge Base condivisa viene aggiornata, il tracciamento delle dipendenze rivela quali agenti sono interessati. Quando l'integrazione esterna cambia, il tracciamento delle dipendenze identifica gli agenti interessati. Documentare le dipendenze in modo esplicito anziché scoprirle durante gli incidenti. Creare mappe delle dipendenze gestite attraverso i processi di sviluppo e distribuzione. Le **politiche di deprecazione** definiscono i cicli di vita delle versioni del modello, inclusi la durata dell'assistenza, la tempistica di deprecazione e i requisiti di migrazione. Chiare policy di deprecazione gestiscono il debito tecnico impedendo il supporto indefinito delle vecchie versioni del modello. Stabilire una pianificazione di deprecazione comunicando le tempistiche con sufficiente anticipo per consentire le migrazioni pianificate anziché le risposte di emergenza alle deprecazioni forzate. Un periodo di preavviso minimo ben comunicato e sostenuto dalla policy offre un tempo di migrazione adeguato per le modifiche critiche. Le **procedure di ritiro** consentono ai team di riprendersi rapidamente dalle distribuzioni problematiche. Le procedure di ritiro dei documenti per ogni agente includono: - Condizioni che attivano un ritiro - Versione a cui ripristinare - Come eseguire il ritiro - Chi autorizza ed esegue il ritiro - Quali test confermano che il ritiro è riuscito e quali team informare. Testare regolarmente le procedure di ritiro in ambienti non di produzione per verificare che funzionino prima di dipendere da esse durante gli incidenti di produzione. Eseguire le prove con distribuzioni fittizie in modo che il team sappia esattamente cosa fare. Le procedure di ritiro non testate spesso non riescono quando è più necessario. ### Formazione continua e adattamento del dominio Mantenere la qualità degli agenti attraverso flussi di lavoro di formazione, perfezionamento e perfezionamento continui. La **raccolta dei commenti** raccoglie sistematicamente i commenti degli utenti, le correzioni delle recensioni umane, le valutazioni della qualità e le misurazioni dei risultati. Il feedback fornisce materia prima per il miglioramento. Senza una raccolta sistematica, il miglioramento diventa congettura. Raccogliere commenti espliciti tramite domande prima dell'inoltro al livello superiore, dopo la fine di una conversazione o tramite sondaggi di follow-up. Raccogliere commenti impliciti tramite percentuali di completamento, frequenze di inoltro al livello superiore e schemi di tentativo. Combinare segnali espliciti e impliciti per offrire una prospettiva di qualità completa. **Data curation** mantiene serie di dati di formazione di alta qualità attraverso la gestione, la revisione della qualità e il controllo della distorsione. La qualità dei dati di addestramento determina direttamente la qualità del modello. Dati scarsi generano modelli inaffidabili; dati eccellenti consentono prestazioni eccezionali. Gestire i registri delle conversazioni nelle serie di dati di addestramento: - Filtraggio per la qualità, incluse le conversazioni con valutazioni elevate e gli esiti positivi - Rimozione di esempi problematici, tra cui violazioni della sicurezza ed errori - Garantire la rappresentatività - compresi scenari diversi e casi limite - Deduplicazione - rimozione di esempi quasi identici **Adattare gli agenti** al dominio (vocabolario specializzato, processi aziendali univoci, Knowledge specifico dell'organizzazione) principalmente tramite la generazione aumentata di recupero (RAG) basata su Data 360 e la messa a punto rapida, il percorso nativo di Salesforce. Nessun modello generativo viene perfezionato all'interno di Salesforce; i modelli vengono selezionati e configurati tramite modelli AI e Generatore di prompt. Quando la messa a terra è insufficiente, perfezionare esternamente, quindi connettersi tramite BYOLLM. **Il perfezionamento dei prompt** migliora in modo iterativo i prompt in base ai dati sulle prestazioni utilizzando il Generatore di prompt. L'ingegneria del prompt è una pratica continua piuttosto che un esercizio singolo. Man mano che gli schemi di utilizzo evolvono, che i processi aziendali cambiano e che le aspettative degli utenti cambiano, i prompt richiedono una rettifica per mantenere prestazioni ottimali. Stabilire una cadenza periodica di revisione rapida che esamina le conversazioni recenti, le metriche di qualità e i commenti degli utenti che identificano le opportunità di miglioramento. Implementare modifiche rapide in modo incrementale con test A/B che convalidano i miglioramenti prima dell'implementazione completa. L'**automazione della valutazione** esegue la valutazione della qualità sugli insiemi di test in attesa consentendo una valutazione rapida dei candidati al miglioramento. La valutazione automatica fornisce una misurazione oggettiva che integra la valutazione umana soggettiva. Gestire gli insiemi di test che coprono i percorsi felici, i casi limite, gli input contraddittori e gli scenari di problemi storici. Impostare l'automazione dei test per eseguire gli scenari di test con cadenza regolare. Includere il monitoraggio automatico dei risultati, le soglie e le notifiche per avvisare gli amministratori delle anomalie. Questo test automatico è fondamentale per rilevare gli effetti negativi di fattori esterni come la fluttuazione del modello. Espandere continuamente gli insiemi di test man mano che emergono nuovi casi edge in produzione. L'automazione dei test è fondamentale, ma è anche possibile eseguire controlli periodici manuali a campione, test una tantum e test gorilla per assicurarsi che la distribuzione degli agenti regga contro i casi limite. ### Implementazione graduale e test A/B Distribuire le modifiche degli agenti gradualmente e monitorare la qualità prima dell'implementazione completa per limitare il raggio d'azione dei problemi. Quando una modifica si estende a più aree (prompt, configurazione del modello, azioni, radicamento nel contesto, integrazioni), può compromettere il comportamento in modi che i test non hanno rilevato. Quando ciò accade, la regressione della qualità risultante raramente punta a un'unica, ovvia causa principale. Spedire le piccole modifiche una alla volta in modo che una regressione possa essere ricondotta all'origine e rilasciare prima ogni modifica a una porzione limitata di traffico per contenere l'impatto durante la diagnosi. I **flag delle funzioni** separano la distribuzione dal rilascio distribuendo gli agenti con funzioni disabilitate dietro la configurazione. Implementare i flag delle funzioni utilizzando la logica o tipi di metadati personalizzati o impostazioni personalizzate. I flag delle funzioni consentono il test nell'ambiente di produzione senza esporre le funzioni agli utenti, implementazioni graduali a segmenti di utenti specifici, test A/B di confronto delle implementazioni e ritiro immediato disabilitando i flag senza ridistribuirli. Utilizzare i flag delle funzioni per le modifiche significative degli agenti, in cui il raggio di esplosione di un guasto potrebbe essere grave, ad esempio Modifiche che interessano gli agenti business-critical, Nuovi schemi di ragionamento con comportamento di produzione incerto Integrazioni con sistemi esterni in cui gli schemi di interazione possono essere diversi dai test. Le **distribuzioni Canary** rilasciano le modifiche degli agenti a piccoli sottoinsiemi di utenti monitorando prima i tassi di errore, le metriche di qualità e le prestazioni prima di un'implementazione più ampia. Utilizzare gli insiemi di autorizzazioni per controllare le distribuzioni dei canarini, limitare l'accesso degli agenti a un sottoinsieme di utenti o filtrare in base alla logica di orchestrazione in base agli attributi utente. Monitorare e misurare le percentuali di successo, la qualità delle risposte e i commenti degli utenti. Confrontare le metriche canarino con i gruppi di controllo utilizzando la versione agente precedente. Espandere l'implementazione solo quando Canary dimostra prestazioni equivalenti o migliorate. I **test A/B** confrontano le variazioni degli agenti misurando qualità, costo e soddisfazione degli utenti. I test A/B forniscono prove empiriche per le decisioni di miglioramento. Distribuire le varianti a sottoinsiemi di utenti selezionati in modo casuale per garantire la validità statistica. Misurare i risultati in più dimensioni (accuratezza, soddisfazione, costo e latenza) offrendo un confronto completo. Definire i criteri e le ipotesi di successo prima di iniziare i test A/B. Criteri chiari evitano risultati ambigui in cui alcune metriche migliorano mentre altre peggiorano. I criteri di successo devono essere allineati agli obiettivi aziendali (ad esempio, "la variante B deve corrispondere alla precisione della variante A entro il 2% riducendo il costo del 15%"). I **test Champion-challenger** distribuiscono versioni degli agenti migliorate a sottoinsiemi di traffico rispetto alle versioni Champion correnti. Lo schema Champion-challenger gestisce il rischio di miglioramento mantenendo la versione collaudata come fallback. Se lo sfidante ha prestazioni insufficienti, tornare a Promotore senza impatto sugli utenti. Se lo sfidante supera le prestazioni, promuoverlo a nuovo campione. Stabilire criteri di promozione obiettivi, tra cui la dimensione minima del campione per la validità statistica, le soglie di qualità che gli sfidanti devono superare e la durata della valutazione prima delle decisioni relative alla promozione. Documentare le decisioni di promozione creando un itinerario di controllo del motivo per cui le versioni degli agenti sono cambiate. ## Risposta agli incidenti per errori degli agenti ### Rilevamento e classificazione degli incidenti Stabilire il rilevamento degli incidenti identificando rapidamente i problemi operativi degli agenti attraverso un monitoraggio completo. Le **modalità di errore** differiscono dagli errori delle applicazioni tradizionali. Le modalità di errore comuni includono: - Allucinazioni - generare informazioni plausibili ma non corrette - Risposte off-topic - intenti utente fraintendimento - Consumo eccessivo di costi - generazione di token fuori controllo - Timeout non riuscito - inferenza che richiede troppo tempo - Errori di autorizzazione - tentativo di azioni non autorizzate - Errori di integrazione - indisponibilità del sistema esterno - Violazioni della sicurezza - generazione di contenuti inappropriati Rilevamento degli errori tramite il monitoraggio automatico che avvisa sui tassi di errore, sul degrado delle metriche di qualità, sulle anomalie dei costi, sugli aumenti di latenza e sugli inoltri al livello superiore degli utenti. Integrare i meccanismi di auto-segnalazione degli utenti, incluse le richieste di feedback e indicazioni chiare su come e dove fornire feedback, in modo da poter correggere le lacune segnalate nell'automazione. La **classificazione della gravità** instrada gli incidenti ai soccorritori appropriati con la dovuta urgenza. Gli incidenti critici indicano l'indisponibilità della produzione che interessa molti utenti, il rischio di danneggiamento dei dati a causa di azioni degli agenti, la compromissione della sicurezza o violazioni della sicurezza che richiedono una risposta immediata. Un livello di gravità elevato indica un peggioramento della qualità che colpisce gli agenti business-critical o un superamento significativo dei costi. La gravità media indica problemi isolati o soglie prossime che richiedono un'indagine durante l'orario di ufficio. Una gravità bassa indica problemi minori rilevati all'esterno del processo di gestione degli incidenti. Definire i criteri di gravità in modo obiettivo in base all'impatto dell'utente, al raggio di esplosione, al rischio di integrità dei dati e all'urgenza del ripristino. I criteri oggettivi evitano di sottovalutare i problemi reali e di esagerare i problemi minori. Mantenere la documentazione sui risultati della risoluzione degli incidenti per migliorare continuamente il processo. Le **procedure di risposta** guidano le azioni immediate che stabilizzano la situazione. Le procedure includono: - Disabilita attivazione agente guasto - interruttore - Instradare gli utenti alle opzioni di fallback - passaggio di consegne umano, agente più semplice, risposte statiche - Raccogliere informazioni diagnostiche - conversazioni recenti, registri errori, metriche delle risorse - Avvisare gli stakeholder - tecnici su chiamata, titolari di prodotti, utenti interessati - Avvia comunicazione incidente - aggiornamenti della pagina di stato, canali di coordinamento interni - Documentare le procedure di risposta iniziale come runbook che consentono un'esecuzione rapida senza richiedere indagini specifiche sull'incidente. - I runbook devono essere eseguibili da tecnici su chiamata senza una profonda esperienza degli agenti. ### Interruttori automatici e schemi di fallback Impedire errori a catena e mantenere una funzionalità parziale durante gli incidenti degli agenti. Lo **schema dell'interruttore** disabilita automaticamente gli agenti in errore impedendo errori ripetuti e l'impatto degli utenti durante la risoluzione dei problemi. Implementare gli interruttori automatici per monitorare i tassi di errore e l'apertura (agente disabilitante) quando il tasso di errore supera la soglia per un periodo prolungato. Configurare gli interruttori automatici con soglia di errore, finestra di durata e test di ripristino. Ad esempio, una percentuale di errore del 50% con una finestra continuativa di cinque minuti e una prova periodica che richiede di verificare se l'agente ha recuperato. All'apertura del circuito, instradare le richieste alle opzioni di fallback. Dopo un periodo di timeout, il circuito passa a uno stato semiaperto che consente il passaggio delle richieste di prova. Quando le richieste di prova hanno esito positivo, chiudere il circuito riprendendo il normale funzionamento. Le **gerarchie di fallback** forniscono un deterioramento graduale quando gli agenti principali hanno esito negativo. Progettare sequenze di fallback tentando opzioni sempre più semplici fino a ottenere una risposta accettabile. Esempio di gerarchia di fallback: Agente sofisticato principale → Agente di backup più semplice → Risposte alle domande frequenti statiche → Passaggio di consegne umano. Implementare la logica di fallback nel livello di orchestrazione anziché all'interno degli agenti abilitando un comportamento coerente in tutto l'ecosistema degli agenti. Testare regolarmente i percorsi di fallback verificandone il funzionamento quando necessario. **La consegna umana** viene inoltrata agli agenti umani quando gli agenti AI non possono gestire le richieste. Progettare flussi di lavoro di trasferimento mantenendo il contesto della conversazione, comunicando il motivo del trasferimento, instradando gli agenti umani appropriati con le competenze pertinenti e monitorando la frequenza del trasferimento rivelando opportunità di miglioramento. Monitorare le percentuali di inoltro al livello superiore per argomento, agente e motivo dell'errore. Percentuali più elevate indicano lacune di capacità degli agenti che richiedono miglioramenti immediati, espansione della Knowledge Base o perfezionamento dei casi d'uso. Il **grazioso degrado** mantiene una funzionalità parziale durante il funzionamento degradato. Quando il ragionamento sofisticato non riesce, tornare a una logica più semplice. Quando i dati in tempo reale non sono disponibili, utilizzare i dati memorizzati nella cache. Quando le integrazioni esterne non riescono, operare in modalità di sola lettura. La degradazione graziosa consente a un sistema di continuare a funzionare con una capacità ridotta anziché guastarsi completamente. ### Analisi e apprendimento post-incidente Eseguire revisioni post-incidente senza colpe concentrandosi sui miglioramenti del sistema anziché sulla colpa individuale che crea sicurezza psicologica per una valutazione onesta. La **ricostruzione della sequenza temporale** crea una sequenza dettagliata dalle condizioni iniziali fino al primo segnale, rilevamento, conferma, indagine, azioni di risposta, ripristino e convalida. Indicare l'ora di ogni evento abilitando l'analisi della durata di ogni fase che rivela dove la risposta all'incidente è stata ritardata. Includere i seguenti elementi nella sequenza temporale: - Che cosa è stato distribuito di recente (prompt, configurazioni, modelli, integrazioni)? - Quali cambiamenti negli schemi di utilizzo (aumento improvviso del traffico, nuovi tipi di conversazione) sono stati osservati? - Quali fattori esterni hanno contribuito (degrado del servizio di terze parti, aggiornamenti della piattaforma)? - Cosa ha reso il rilevamento più lento dell'ideale? L'**identificazione causa principale** determina la causa tecnica diretta. Distinguere la causa immediata (timeout del modello) dai fattori che contribuiscono (progettazione del prompt che supera i limiti del token in schemi di conversazione specifici). L'analisi della causa principale impedisce conclusioni semplicistiche ("l'agente aveva un bug") a favore di risultati specifici che risultano in una risoluzione efficace. Utilizzare la tecnica "Five Whys", esercitando dai sintomi alle cause fondamentali. **Esempio di superficie:** "L'agente ha prodotto informazioni non corrette" → "Perché? Il contesto recuperato conteneva dati non aggiornati" → "Perché? La Knowledge Base non è stata aggiornata con le modifiche recenti dei prodotti" → "Perché? Non esiste alcun processo per il team di prodotto che attiva gli aggiornamenti della Knowledge Base" → Flusso di lavoro mancante che collega i rilasci prodotto alla manutenzione della Knowledge Base. **I fattori che** contribuiscono rivelano le condizioni organizzative, di processo o architettoniche che consentono o amplificano l'impatto degli incidenti. I fattori comuni includono lacune di monitoraggio che consentono ai problemi di persistere più a lungo di quanto rilevato, lacune nei test che lasciano scoperti scenari di errore, lacune nella documentazione che rallentano la diagnosi rapida, lacune nell'automazione che costringono a fasi di ripristino manuali e lacune architetturali come singoli punti di errore o ridondanza mancante. L'analisi dei fattori che contribuiscono rivela le opportunità di miglioramento oltre la correzione immediata della causa principale. La maggior parte degli incidenti ha più fattori che contribuiscono, ciascuno dei quali amplifica l'impatto. L'**analisi del rilevamento** esamina come è stato rilevato l'incidente e se il rilevamento avrebbe potuto essere più rapido. Molti incidenti degli agenti vengono segnalati per la prima volta dagli utenti anziché dal monitoraggio automatico, il che indica una lacuna nel monitoraggio. Determinare: Quale segnale avrebbe dovuto rilevare il problema prima? Quale monitoraggio consentirebbe un rilevamento più rapido? Quali criteri di avviso sarebbero stati attivati in modo appropriato? I miglioramenti dell'analisi del rilevamento includono: Aggiunta della copertura di monitoraggio mancante, ottimizzazione delle soglie di avviso eliminando i falsi negativi, arricchimento del contesto degli avvisi per un triage più rapido e miglioramento dei cruscotti digitali per l'identificazione proattiva dei problemi. La **valutazione della risposta** valuta cosa è andato bene e cosa è stato più lento o più difficile del necessario. Domande di valutazione della risposta: I runbook sono stati utili e precisi? I percorsi di inoltro al livello superiore erano chiari ed efficaci? Le procedure di ritiro sono state testate e pronte? Gli strumenti hanno fornito le informazioni diagnostiche necessarie? La comunicazione è stata tempestiva ed efficace? I miglioramenti della valutazione della risposta includono: aggiornamento dei runbook con le lezioni apprese, chiarimento dei criteri di inoltro al livello superiore, test periodico delle procedure di ritiro, aggiunta di strumenti diagnostici e miglioramento dei modelli di comunicazione degli incidenti. Le **voci azione** specificano miglioramenti concreti, assegnati e limitati nel tempo che impediscono la ricorrenza o migliorano la risposta futura. Evitare voci azioni vaghe come "migliora monitoraggio" a favore di operazioni specifiche come "aggiungi avviso per la percentuale di errore degli agenti superiore al 5% in un periodo di 10 minuti, assegnate: Alex, due: 2 settimane.". Tenere traccia del completamento degli elementi azione nelle revisioni successive per garantire che il miglioramento continuo avvenga davvero. Esaminare le voci azioni aperte degli incidenti precedenti durante ogni riesame post-incidente. Le basse percentuali di completamento indicano un errore continuo del processo di miglioramento che richiede attenzione. La **condivisione Knowledge** documenta le revisioni post-incidente in wiki condivise, Knowledge Base o spazio di collaborazione con tag che abilitano l'analisi degli schemi in più incidenti. Le retrospettive degli incidenti devono essere ricercabili in base alla modalità di guasto, ai componenti interessati e al periodo di tempo, consentendo ai futuri soccorritori di imparare dagli incidenti storici. Condividere le revisioni post-incidente in generale oltre i soccorritori diretti. L'apprendimento organizzativo richiede la propagazione delle informazioni. Valutare la possibilità di presentare gli apprendimenti sugli incidenti gravi in riunioni di team o sessioni di pranzo e apprendimento per diffondere Knowledge e sviluppare capacità collettive. ## Agent Governance e approvazione ### Processi di approvazione della distribuzione Richiedere l'approvazione prima di distribuire gli agenti di produzione per garantire la revisione, la valutazione del rischio e l'allineamento degli stakeholder. L'**elenco di controllo** convalida la preparazione, inclusi: - Test completi completati - funzionalità, qualità, sicurezza, prestazioni - Revisione della sicurezza approvata - limiti delle autorizzazioni, accesso ai dati, autorizzazione delle azioni - Conformità convalidata - requisiti normativi, osservanza delle policy - Documentazione completa - runbook, procedure di ritiro, percorsi di inoltro al livello superiore - Monitoraggio configurato - metriche di qualità, percentuali di errore, tracciamento dei costi - Approvazione degli stakeholder ottenuta - titolare del prodotto, sicurezza, conformità L'elenco di controllo fornisce criteri di valutazione coerenti tra gli agenti. Adattare l'elenco di controllo per il profilo di rischio dell'agente con profondità variabile in base alla criticità dell'agente, alla riservatezza dei dati e al livello di autonomia. La **valutazione del rischio** valuta il potenziale impatto degli errori degli agenti, tra cui: - Raggio di esplosione - quanti utenti interessati da un errore - Sensibilità dei dati: a quale agente dati accede - Autorità di azione: le modifiche che l'agente può apportare - Dipendenze di integrazione - influenza dell'agente di sistema - Complessità del ripristino: quanto è difficile il ritiro - Implicazioni di conformità - quali regolamenti si applicano La valutazione del rischio determina i requisiti di approvazione. Gli agenti ad alto rischio richiedono l'approvazione esecutiva, la revisione della sicurezza e l'implementazione graduale, mentre gli agenti a basso rischio possono richiedere la revisione tra pari e test standard. I **flussi di lavoro** instradano le richieste di distribuzione tramite esaminatori appropriati. Implementare i flussi di lavoro di approvazione utilizzando i processi di approvazione Salesforce o strumenti di distribuzione esterni. Automatizzare, monitorare e controllare i flussi di lavoro di approvazione per consentire la generazione di rapporti sulla conformità e l'analisi degli incidenti. Documentare le decisioni di approvazione, creare un itinerario di controllo di chi ha approvato le distribuzioni, quali informazioni hanno informato le approvazioni, quali condizioni o restrizioni sono state applicate e quali impegni di monitoraggio sono stati assunti. Le **procedure di bypass** consentono una distribuzione rapida durante gli incidenti di produzione quando i normali processi di approvazione ritardano le correzioni critiche. Le procedure di emergenza devono richiedere l'approvazione esecutiva, includere la documentazione giustificativa e attivare un riesame post-distribuzione rapido per convalidare le modifiche di emergenza. Tenere traccia delle distribuzioni di emergenza separatamente dai rilasci standard. L'elevata frequenza di distribuzione indica problemi del processo che richiedono un'analisi. ### Cancelli di qualità e test Definire i gate di qualità che gli agenti devono superare prima della distribuzione in produzione per impedire agli agenti problematici di raggiungere gli utenti. **I test funzionali** confermano che gli agenti eseguono correttamente le operazioni previste in scenari rappresentativi. Testare i percorsi felici che coprono le interazioni tipiche, i casi limite che coprono scenari rari ma validi, i percorsi di errore che verificano se gli agenti gestiscono gli input non validi in modo fluido e le condizioni al contorno che verificano se l'agente rientra nei limiti del governor, nei limiti dei token e nei limiti del volume di dati. I test funzionali per gli agenti si differenziano dai test tradizionali perché gli output non deterministici impediscono la corrispondenza esatta. Caratteristiche dell'output del test (contiene le informazioni richieste, mantiene il tono appropriato, include le citazioni necessarie) anziché il testo esatto. Il **test qualità risposta** valuta la precisione e la pertinenza della risposta negli scenari di test. I test di qualità richiedono una valutazione umana o serie di dati di verità con gli output previsti. Stabilire soglie minime di qualità che gli agenti devono soddisfare (ad esempio, "accuratezza del 95% sul set di test di resistenza, zero violazioni della sicurezza, controllo dell'equità non mostra disparità demografiche superiori al 5%"). Mantenere ed espandere continuamente gli insiemi di test man mano che vengono rilevati nuovi casi limite. I **test di sicurezza** confermano che gli agenti rifiutano richieste pericolose, non etiche o fuori dall'ambito. I test di sicurezza tentano input contraddittori, tra cui: - Prompt injection - tentativo di ignorare le istruzioni - Tentativi di jailbreak - tentativo di aggirare i vincoli di sicurezza - Richiesta di inoltro al livello superiore - richiesta di azioni sempre più sensibili - Richieste fuori dall'ambito - tentativo di operazioni non autorizzate Assegnare i test di sicurezza ai membri del team indipendenti che non hanno partecipato alla creazione dell'agente. Per gli agenti ad alto rischio, chiamare gli specialisti del team rosso. I **test delle prestazioni** convalidano la latenza, la produttività e i costi che soddisfano le aspettative. Eseguire il test sotto carico realistico, incluse le conversazioni simultanee, la durata tipica delle conversazioni e il volume di utilizzo previsto. I test delle prestazioni rilevano problemi di limiti del governor, vincoli delle risorse e colli di bottiglia di scalabilità invisibili nei test per utente singolo. Misurare il consumo dell'ambiente di test durante i test delle prestazioni e utilizzarlo per prevedere le esigenze di capacità di produzione. I **test di sicurezza** convalidano i confini delle autorizzazioni, i controlli di accesso ai dati e l'autorizzazione delle azioni. I test di sicurezza confermano: gli agenti non possono accedere a dati non autorizzati, gli agenti non possono eseguire azioni non autorizzate, l'iniezione rapida non può inoltrare i privilegi al livello superiore e la registrazione di controllo acquisisce tutte le attività degli agenti. Integrare la scansione della sicurezza del codice statico nella pipeline di distribuzione utilizzando Salesforce Code Analyzer, che analizza Apex, Flussi, Lightning e Visualforce per individuare vulnerabilità di sicurezza e può essere eseguito in integrazione/distribuzione continua (CI/CD) tramite l'interfaccia della riga di comando (CLI) o l'azione GitHub. Utilizzare test di sicurezza AI/agente specializzati per rilevare vulnerabilità di prompt injection e rischi di esposizione ai dati sensibili, poiché si tratta di minacce di input LLM in fase di esecuzione che non rientrano nell'ambito dell'analisi del codice statico. ### Disciplina di gestione del cambiamento Applicare la disciplina di gestione del cambiamento alle distribuzioni degli agenti assicurando che le modifiche vengano documentate, riviste e comunicate. La **documentazione di modifica** acquisisce: - Che cosa è cambiato - modifiche richieste, aggiornamenti della configurazione, modifiche del modello - Perché è stata apportata quella modifica - miglioramento della qualità, ottimizzazione dei costi, correzione dei bug - Quali test hanno convalidato la modifica - risultati dei test, punteggi di qualità, analisi di sicurezza - Quale procedura di ritiro esiste La documentazione sulle modifiche consente indagini sugli incidenti, rapporti sulla conformità e trasferimento Knowledge. Le modifiche documentate creano un'organizzazione di apprendimento basata sull'esperienza precedente anziché riscoprire le lezioni. La **pianificazione delle comunicazioni** notifica alle parti interessate le modifiche apportate agli agenti, inclusi gli utenti interessati, i team operativi, i team di assistenza e gli stakeholder aziendali. La comunicazione deve descrivere: che cosa sta cambiando, quando avviene il cambiamento, quali vantaggi vedranno gli utenti, quali rischi esistono e chi contattare per i problemi. Stabilire modelli di comunicazione per diversi tipi di modifiche standardizzando i messaggi e riducendo il sovraccarico di preparazione alla distribuzione. La **pianificazione della distribuzione** calcola i tempi di distribuzione degli agenti durante i periodi di basso utilizzo in base ai dati di Monitoraggio evento che mostrano gli schemi di utilizzo effettivi. Evitare le distribuzioni durante i picchi di utilizzo, la chiusura di fine mese, la chiusura di fine trimestre o i principali eventi aziendali. Comunicare le finestre di distribuzione, incluse la durata prevista e la tempistica delle decisioni di ritiro. Valutare la possibilità di pianificare modifiche importanti per la settimana da inizio a metà ed evitare distribuzioni a settimana inoltrata, in modo che i problemi possano essere risolti con risorse adeguate. Assegnare la priorità al ritiro rapido e al monitoraggio post-distribuzione rispetto a qualsiasi regola di calendario fissa. **Cambiare finestre e congelamenti** per proteggere periodi di attività critici. Stabilire periodi di congelamento delle modifiche prima dei principali eventi aziendali (fine anno fiscale, lancio di prodotti e campagne di marketing importanti) per evitare problemi dovuti alla distribuzione durante i periodi con rischi elevati. Le modifiche dei documenti bloccano il calendario ogni anno comunicando i periodi di restrizione con sufficiente anticipo, consentendo ai team di pianificare di conseguenza. Congelamenti eccessivi rallentano la velocità; congelamenti insufficienti creano rischi per l'azienda. ## Miglioramento continuo per gli agenti ### Architettura del loop di feedback Stabilire cicli di feedback che collegano la telemetria operativa al miglioramento degli agenti. La **raccolta dei commenti** raccoglie commenti espliciti tramite domande o sondaggi di follow-up. Raccogliere commenti impliciti tramite percentuali di completamento, inoltro al livello superiore agli agenti umani, schemi di nuovo tentativo e domande di follow-up che indicano insoddisfazione. Combinare segnali espliciti e impliciti, offrendo una prospettiva di qualità completa. Raccogliere i commenti in linea, proprio quando si verificano e non in seguito. La raccolta di feedback ritardata riduce le percentuali di risposta e introduce una distorsione del richiamo. **Le analisi dell'**utilizzo mostrano modelli di conversazione reali come argomenti, domande e tendenze ricorrenti. Verificano se la complessità di un agente si guadagna da vivere, se le funzionalità non vengono utilizzate a causa della scarsa individuabilità e se l'utilizzo reale convalida i presupposti di progettazione originali. Eseguire query nei registri delle conversazioni analizzando i tipi di domande, la durata delle conversazioni, le percentuali di successo per argomento e la soddisfazione degli utenti per caratteristiche della conversazione. L'analisi degli schemi di utilizzo guida il rapido perfezionamento, l'espansione della Knowledge Base e l'assegnazione delle priorità alle funzionalità. L'**analisi degli schemi** di errore identifica i problemi di qualità sistematici che richiedono una correzione. Analizzare i registri errori raggruppandoli per tipo di errore, utenti interessati, schemi di conversazione e distribuzione temporale. Gli schemi di errore rivelano problemi immediati, lacune della Knowledge Base, problemi di integrazione o casi limite che richiedono una gestione. Assegnare priorità alla correzione degli errori in base alla frequenza e all'impatto. Gli errori ad alta frequenza che interessano molti utenti richiedono un'attenzione immediata. Gli errori a bassa frequenza possono rappresentare casi limite accettabili a seconda dell'impatto sul business e del costo di riparazione. Il **monitoraggio del trend** tiene traccia di precisione, pertinenza, sicurezza e soddisfazione nel tempo rilevando il degrado prima che diventi grave. Stabilire valori di riferimento per la qualità dopo la distribuzione iniziale dell'agente. Monitorare la qualità in corso rispetto ai valori di riferimento avvisando quando le tendenze diminuiscono oltre le soglie accettabili. Il monitoraggio della qualità rivela se modifiche rapide, aggiornamenti del modello o modifiche della Knowledge Base migliorano o peggiorano le prestazioni consentendo decisioni di miglioramento basate sui dati. ### Tracciamento degli esperimenti e test A/B Tenere traccia degli esperimenti informando sistematicamente le decisioni di miglioramento con prove empiriche. **Il framework Experiment** offre una struttura coerente per testare i miglioramenti, tra cui: - Ipotesi - quale miglioramento è previsto - Progettazione sperimentale - modalità di distribuzione delle varianti - Metriche - quali risultati vengono misurati - Dimensioni del campione: quante interazioni sono necessarie per la validità statistica - Criteri di successo: quali risultati giustificano la promozione Documentare gli esperimenti prima dell'esecuzione evitando interpretazioni ambigue dei risultati. I criteri di successo predefiniti consentono di prendere decisioni chiare sulle promozioni evitando lunghi dibattiti sulla "buona riuscita" dei risultati. Il **tracciamento delle varianti** registra quali utenti hanno ricevuto quali varianti abilitando la correlazione dei risultati. Tenere traccia dell'assegnazione delle varianti nei metadati della conversazione abilitando l'analisi di qualità, costo e soddisfazione per variante. La **validità statistica** garantisce che gli esperimenti vengano eseguiti abbastanza a lungo con dimensioni del campione sufficienti per conclusioni affidabili. Calcolare le dimensioni del campione richieste prima degli esperimenti in base alle dimensioni previste dell'effetto, ai requisiti statistici di potenza e alle percentuali di errore accettabili. Campioni insufficienti producono risultati rumorosi che portano a decisioni sbagliate. L'**ottimizzazione dei banditi** multi-braccio alloca dinamicamente più traffico alle varianti con prestazioni migliori durante gli esperimenti. Gli approcci basati su banditi a più bracci riducono il costo opportunità della sperimentazione riducendo l'esposizione a varianti inferiori e raccogliendo dati sufficienti per l'analisi statistica. Il **catalogo degli esperimenti** registra le varianti, gli esiti e le decisioni di ogni esperimento. Impedisce ai team di ripetere i test degli approcci non riusciti, diffonde gli apprendimenti in tutta l'organizzazione e crea un record condiviso di ciò che effettivamente funziona. ## Riepilogo L'eccellenza operativa per i sistemi agentici richiede l'estensione delle procedure DevOps tradizionali per gestire le caratteristiche di intelligenza artificiale specifiche. L'osservabilità completa consente di comprendere il comportamento degli agenti emergenti. La gestione sistematica del ciclo di vita garantisce qualità, sicurezza e controllo dei costi. Le procedure di risposta agli incidenti riguardano le modalità di errore specifiche dell'agente. Il miglioramento continuo trasforma l'esperienza operativa in capacità organizzativa. Procedure chiave per l'eccellenza operativa nei sistemi agentici: - Registrare le conversazioni complete, inclusi input, output, tracce di ragionamento, azioni ed esiti. - Monitorare continuamente la qualità della risposta attraverso metriche di precisione, pertinenza, sicurezza e soddisfazione. - Rilevare la fluttuazione del modello e le modifiche del comportamento tramite il confronto di base e il rilevamento delle anomalie. - Prompt di controllo delle versioni, configurazioni e modelli che abilitano il rollback e i test A/B. - Implementare un'implementazione graduale con flag di funzioni e distribuzioni di canarini che limitano il raggio di esplosione. - Progettare interruttori automatici e gerarchie di fallback per evitare errori a catena degli agenti. - Eseguire revisioni post-incidente senza colpa incentrate su miglioramenti sistematici. - Stabilire cancelli di qualità e processi di approvazione per impedire agli agenti problematici di raggiungere la produzione. - Creare loop di feedback che collegano la telemetria operativa al miglioramento degli agenti. - Tenere traccia degli esperimenti in modo sistematico utilizzando prove empiriche per guidare le decisioni di miglioramento. Le organizzazioni che investono nell'eccellenza operativa per gli agenti ottengono un vantaggio competitivo sostenibile grazie a funzionalità di intelligenza artificiale affidabili e di alta qualità che evolvono continuamente in base alle esigenze aziendali.

Condividere i propri commenti sul framework ben progettato.

# Equità Equità ## Panoramica Nelle architetture Salesforce, equità significa creare soluzioni che servano equamente gli utenti attraverso interfacce accessibili, rilevamento e mitigazione delle distorsioni, decisioni trasparenti e governance etica. Le previsioni Einstein influenzano i risultati che riguardano clienti e dipendenti, il che significa che gli architetti dovrebbero progettare sistemi che producano risultati equi in tutti i gruppi demografici pur rimanendo accessibili agli utenti con disabilità. Salesforce offre funzionalità della piattaforma appositamente create per garantire l'equità e si impegna a rispettare le [WCAG 2.2 AA](https://www.w3.org/TR/WCAG22/). Se utilizzato correttamente, Salesforce Lightning Design System (SLDS) fornisce componenti progettati per supportare questo obiettivo. Vediamo più nel dettaglio ogni componente. - Shield Platform Encryption protegge attributi sensibili come i dati demografici e Monitoraggio evento fornisce gli itinerari di controllo che supportano la gestione trasparente dei dati. - Einstein Trust Layer (ETL) acquisisce un itinerario di controllo sicuro per i prompt e le risposte generative di intelligenza artificiale a fini di monitoraggio e conformità. - Experience Cloud include controlli di accessibilità. - L'itinerario di controllo campi fornisce la conservazione a lungo termine della cronologia delle modifiche dei dati a livello di campo, che supporta la responsabilità algoritmica quando i dati delle decisioni AI sono memorizzati in campi tracciati. Queste funzionalità consentono di ridurre i costi operativi delle procedure di equità di Salesforce. In Salesforce, l'equità opera in tre dimensioni per fornire soluzioni. La progettazione inclusiva consente di rendere i componenti Web Lightning (LWC), le pagine Visualforce e i siti Experience Cloud completamente accessibili, grazie alla navigazione da tastiera senza interruzioni, alla compatibilità con gli screen reader e alla progettazione cognitiva. Le procedure di equità dell'intelligenza artificiale aiutano le previsioni Einstein a produrre risultati equi utilizzando il rilevamento della distorsione, dati di addestramento diversi e un monitoraggio continuo. La governance fornisce i processi e i controlli necessari per garantire l'equità man mano che i modelli si evolvono e i casi d'uso si espandono. Trascurare l'equità crea un rischio aggiuntivo. I siti Experience Cloud inaccessibili possono esporre le organizzazioni a contenziosi in materia di ADA ([Americans with Disabilities Act)](https://www.ada.gov/law-and-regs/) e, per le agenzie federali e i loro appaltatori, alle violazioni della conformità [della Sezione 508](https://www.section508.gov/). A seconda della classificazione del rischio del sistema e delle leggi emergenti in materia di responsabilità algoritmica, le previsioni Einstein distorte possono violare i requisiti della [legge EU AI](https://eur-lex.europa.eu/eli/reg/2024/1689/oj). Solo le decisioni basate sull'intelligenza artificiale automatizzate con effetti legali o simili significativi che non contengono informazioni significative sulla logica decisionale possono violare i diritti di informazione [dell'articolo 22](https://gdpr-info.eu/art-22-gdpr/) e dell'[articolo 15,](https://gdpr-info.eu/art-15-gdpr/) paragrafo 1, lettera h). Le organizzazioni che progettano per correttezza tendono a ridurre i danni prevedibili per i clienti, i dipendenti e le comunità interessate dai loro sistemi. Gli errori di equità possono causare danni materiali tangibili alle persone colpite, inclusi danni economici, opportunità negate, disagio emotivo e rafforzamento della discriminazione sistemica. L'allineamento normativo tende a derivare dal servire bene le persone colpite. ## Principi di progettazione Utilizzare questi principi per guidare le decisioni relative all'architettura per garantire l'equità sulla piattaforma. - **Progettazione per modelli di accessibilità Lightning.** Durante la creazione, utilizzare Lightning Design System e i componenti Web Lightning standard progettati per supportare l'accessibilità WCAG 2.2 AA ogni volta che sia possibile. Quando si crea con SLDS, si sfrutta una libreria in cui l'accessibilità è un principio di progettazione fondamentale. I componenti SLDS sono controllati per l'accessibilità della tastiera e la compatibilità con la tecnologia per l'accesso facilitato e molti includono una sezione sull'accessibilità con suggerimenti per gli sviluppatori. Se è necessario un componente personalizzato, l'implementazione esplicita delle applicazioni [WAI-ARIA](https://www.w3.org/WAI/standards-guidelines/aria/) (Accessible Rich Internet Applications), l'HTML semantico e gli schemi di navigazione da tastiera devono essere convalidati tramite test di tecnologia per l'accesso facilitato. - **Ridurre e monitorare la distorsione con gli strumenti appropriati per ogni tipo di modello.** Convalidare gli output AI per risultati equi in tutti i gruppi demografici prima della distribuzione e in modo continuativo nella produzione. Per i modelli predittivi, acquisire i dati delle decisioni tramite Einstein Discovery e la strumentazione personalizzata e analizzarli in CRM Analytics per misurare le metriche di equità; per le funzioni di intelligenza artificiale generativa e Agentforce, utilizzare l'itinerario di controllo Einstein Trust Layer (ETL) di prompt e risposte. Documentare le decisioni per soddisfare i requisiti di trasparenza normativa. - **Sfruttare Shield Platform Encryption per i controlli sulla protezione dei dati.** Utilizzare Shield Platform Encryption con schemi deterministici per attributi sensibili che richiedono query di corrispondenza esatta proteggendo al contempo i dati personali. Instradare i registri di Monitoraggio evento a un sistema SIEM (Security Information and Event Management) esterno per supportare gli itinerari di controllo senza manomissioni, quando il SIEM applica la separazione di archiviazione e accesso write-once che superano le finestre di conservazione native di Salesforce per i regolamenti richiesti. - **Progettare flussi di lavoro di revisione per le previsioni con rischi elevati.** Configurare i processi di approvazione e i meccanismi di revisione nel flusso Salesforce per assicurarsi che le previsioni Einstein che influiscono sulle decisioni consequenziali ricevano un esame umano appropriato. Utilizzare le soglie di confidenza e le regole aziendali per determinare quando le previsioni richiedono la convalida prima di intraprendere azioni. - **Applicare le impostazioni predefinite a livello di organizzazione (OWD) e la protezione a livello di campo (FLS) per la non discriminazione.** Progettare schemi di accesso ai dati utilizzando OWD e FLS per limitare l'accesso per impostazione predefinita e concedere solo l'accesso aggiuntivo necessario a ogni ruolo utilizzando le regole di condivisione. Evitare di concedere ai profili un accesso eccessivo che potrebbe esporre attributi sensibili e consentire processi decisionali discriminatori. - **Abilitare l'agenzia utente tramite il consenso della piattaforma.** Utilizzare le funzionalità di gestione del consenso di Data 360 o degli oggetti consenso personalizzati con Itinerario di controllo campi per tenere traccia del consenso AI granulare per ogni caso d'uso. Consentire agli utenti di disattivare le funzioni basate sull'intelligenza artificiale e fornire alternative umane (quando possibile). ## Qualità dei dati ed equità rappresentativa Le decisioni sull'architettura dei dati determinano le popolazioni che diventano visibili e invisibili nei sistemi Salesforce. La scarsa qualità dei dati non è solo un problema tecnico. Diventa una questione di equità quando i gap nei dati svantaggiano sistematicamente gruppi demografici specifici. ### La mancanza di dati crea popolazioni invisibili - **Verificare la disponibilità dei dati nei campi obbligatori.** Quando i campi obbligatori presumono una disponibilità delle informazioni che varia a seconda dei dati demografici, la completezza dei dati diventa discriminatoria. Gli utenti che non possono fornire le informazioni richieste diventano invisibili nei sistemi che rifiutano i record incompleti. * L'obbligo di indirizzi email esclude le popolazioni che non dispongono di un accesso a Internet affidabile o di indirizzi email personali. * L'obbligo dei numeri di previdenza sociale degli Stati Uniti (SSN) esclude i clienti internazionali e gli immigrati recenti a cui non è ancora stato rilasciato un SSN. * L'obbligo degli indirizzi stradali esclude le popolazioni senza fissa dimora e gli utenti con indirizzi non tradizionali. - **Controllare le giustificazioni aziendali per i campi obbligatori.** Per ogni campo obbligatorio, è importante documentare il motivo per cui le informazioni sono obbligatorie anziché facoltative. Se i processi possono funzionare senza determinati dati tramite approcci alternativi, rendere tali campi facoltativi e progettare sistemi per gestire i valori mancanti in modo fluido. Ciò consente di garantire che gli utenti che non possono fornire tali dati non vengano esclusi. ### Architettura del campo e distorsione culturale I campi nome che seguono le convenzioni di denominazione occidentali (Nome, Cognome) possono escludere le culture con pratiche di denominazione diverse. Molte culture utilizzano: - Nomi singoli, o mononimi, senza cognomi - Sistemi patronimici in cui il "cognome" cambia in modo generazionale - Più nomi o cognomi - Nomi che cambiano in base agli eventi di vita o al contesto sociale - Nomi in cui "primo" e "ultimo" sono distinzioni culturalmente prive di significato Progettare l'architettura dei nomi utilizzando un singolo campo completo o una struttura flessibile in più parti che soddisfa le convenzioni di denominazione comuni. Evitare di fare supposizioni sull'ordinamento dei nomi, sugli schemi di eredità o sulle norme culturali. Testare l'architettura dei nomi utilizzando nomi internazionali diversi per assicurarsi che i campi nome accettino: - Nomi di parole singole (ad esempio, Sukarno, Cher e Teller) - Nomi lunghi che superano i limiti di lunghezza dei campi comuni - Nomi con caratteri diacritici, apostrofi, trattini e spazi - Nomi con caratteri non latini (ad esempio, arabo, cinese, cirillico e devanagari) Quando la convalida del nome rifiuta il nome legittimo di un utente, l'utente subisce un rifiuto del sistema basato sulla sua identità culturale. ### Risoluzione dei problemi di dati e distorsione geografica I servizi di convalida degli indirizzi sono spesso ottimizzati per i formati degli Stati Uniti e dell'Europa occidentale e spesso non riconoscono: - Formati degli indirizzi internazionali con ordinamento dei campi diverso - Indirizzi rurali senza nomi di strade - Indirizzi militari (ad esempio, APO e FPO) - Caselle postali e posizioni di consegna alternative - Tribal lands con sistemi di indirizzi univoci - Paesi con script non latini per i componenti indirizzo Quando le convalide degli indirizzi rifiutano i formati di indirizzo non tradizionali, impediscono la creazione, la spedizione e l'erogazione di servizi per gli utenti i cui indirizzi non corrispondono alle aspettative del database di convalida. Di seguito sono riportati alcuni modi per progettare convalide degli indirizzi tenendo presente l'accessibilità: - Implementare la convalida degli indirizzi permissiva. - Accetta l'immissione di un indirizzo in formato libero quando le convalide strutturate non riescono. - Memorizza gli indirizzi man mano che vengono immessi dagli utenti anziché costringerli a correzioni non valide. - Utilizzare la convalida degli indirizzi per l'arricchimento dei dati e il rilevamento dei duplicati, non per convalidare la formattazione degli indirizzi. Anziché bloccare in anticipo le acquisizioni di dati, integrare la verifica dell'indirizzo nei processi di evasione in cui la precisione dell'indirizzo è importante a livello operativo. ### Bias del metodo di comunicazione I presupposti di accesso universale per canali di comunicazione specifici escludono le popolazioni con accesso o preferenze tecnologiche diverse. La comunicazione solo email esclude: - Utenti senza accesso a Internet affidabile - Popolazioni anziane che si sentono meno a proprio agio con le email - Utenti in regioni in cui le app SMS o di messaggistica sono il metodo di comunicazione principale La comunicazione solo telefono esclude: - Utenti sordi e ipoudenti - Utenti senza accesso telefonico o che utilizzano telefoni condivisi Progettare un'architettura di comunicazione Omnicanale che consenta agli utenti di controllare le preferenze del canale. Memorizzare i metodi di comunicazione preferiti nei record Referente e rispettare costantemente le preferenze in tutti i sistemi di comunicazione in uscita. Offrire una varietà di alternative di comunicazione anziché presumere che i metodi a canale singolo funzionino universalmente. ### Dati demografici e autoidentificazione volontaria La raccolta di dati demografici per il monitoraggio dell'equità richiede un'architettura attenta per evitare abusi. La raccolta e il trattamento dei dati demografici sono dipendenti dalla giurisdizione e soggetti a restrizioni legali (nell'UE, l'[articolo 9 del](https://gdpr-info.eu/art-9-gdpr/) GDPR li considera come dati di categoria speciale che richiedono una base giuridica specifica; negli Stati Uniti, il monitoraggio della distorsione si basa in genere sull'autoidentificazione volontaria dell'EEO). Ove esista una base giuridica, le organizzazioni utilizzano i dati demografici per: - Monitoraggio delle metriche di equità stratificate per gruppi protetti - Rilevamento della distorsione nei sistemi di automazione e intelligenza artificiale - Dimostrare la conformità normativa ai requisiti antidiscriminazione La raccolta di dati demografici crea alcuni rischi: - I dati possono essere utilizzati per scopi discriminatori se i controlli di accesso non riescono - Gli utenti potrebbero non considerare affidabili i metodi di raccolta e fornire dati imprecisi - La raccolta può risultare invasiva o discriminatoria Progettare l'autoidentificazione volontaria degli architetti e progettare la raccolta dei dati demografici utilizzando le informazioni seguenti: - Spiegazione chiara con uno scopo trasparente (ad esempio, monitoraggio dell'equità o rapporti sulla conformità) - Facoltativa e include un'opzione "Preferisci non rispondere" sempre disponibile - Separato dai dati operativi con FLS rigorosa per impedire l'accesso inappropriato - Aggregati per rapporti e analisi e non collegati a decisioni individuali - Monitorato tramite Shield Event Monitoring per il controllo degli schemi di accesso È importante documentare nelle policy sulla privacy esattamente come verranno e non verranno utilizzati i dati demografici. Violare il Trust degli utenti attraverso l'utilizzo di dati non divulgati può danneggiare gravemente la credibilità, che può essere difficile da recuperare. ### Arricchimento dei dati e distorsione di terze parti L'arricchimento dei dati di terze parti che aggiunge dati demografici, firmografici o comportamentali ai record Salesforce può introdurre distorsioni attraverso: - Inferenze imprecise basate su stereotipi - Copertura incompleta con lacune correlate ai dati demografici - Algoritmi proprietari che utilizzano proprietà di equità sconosciute - Dati provenienti da record storici distorti Prima di implementare i servizi di arricchimento dati, è importante controllare: - Test di equità del fornitore e pratiche di mitigazione della distorsione - Copertura e precisione dei dati in tutti i gruppi demografici - Metodologie di inferenza e funzioni utilizzate per creare previsioni - Limitazioni contrattuali di utilizzo dei dati e policy di conservazione Tenere presente che una volta che i dati di terze parti entrano nell'organizzazione Salesforce, possono influire sulle decisioni, creando una distorsione introdotta dal fornitore che si riflette anche in una distorsione nell'organizzazione. ## Accessibilità con Lightning ed Experience Cloud Nei contesti Salesforce, l'accessibilità si riferisce all'architettura di componenti Web Lightning, pagine Visualforce e siti Experience Cloud che funzionano per gli utenti con disabilità. I componenti Lightning standard offrono l'accessibilità di base se utilizzati correttamente; tuttavia, lo sviluppo personalizzato e la configurazione di Experience Cloud richiedono un'implementazione esplicita dell'accessibilità. ### Modelli di accessibilità del sistema Lightning Design I componenti Lightning Design System sono progettati per supportare la conformità WCAG 2.2 AA quando vengono utilizzati come progettato. Salesforce si impegna a raggiungere, ma non certifica, la piena conformità. La deviazione dagli schemi SLDS o la creazione di componenti personalizzati senza considerazioni sull'accessibilità creano barriere per gli utenti con disabilità. I componenti Web Lightning standard offrono l'accessibilità incorporata. Componenti come Lightninginput, Lightningcombobox, Lightningdatatable e Lightning includono automaticamente attributi ARIA appropriati, associazioni di etichette, navigazione da tastiera e gestione dei focus. Ove possibile, utilizzare componenti standard anziché creare alternative personalizzate che abbiano un aspetto simile ma che potrebbero non disporre dell'infrastruttura di accessibilità appropriata. - **Utilizzare HTML semantico nei componenti Web Lightning personalizzati.** Quando si creano componenti personalizzati, utilizzare elementi HTML semantici (
,