Procedure consigliate

Utilizza la seguente serie di istruzioni consigliate quando esegui il provisioning e gestisci le tue istanze senza server e quando esegui le applicazioni Spark.

Le migliori pratiche per l'utilizzo delle istanze serverless, comprese le descrizioni dettagliate e i link di riferimento
Procedura consigliata Descrizione Link di riferimento
Utilizza le istanze del servizio IBM Analytics Engine separate per i tuoi ambienti di sviluppo e produzione. Si tratta di una buona prassi generale. Creando istanze IBM Analytics Engine separate per ambienti differenti, puoi verificare tutte le modifiche di configurazione e codice prima di applicarle all'istanza di produzione. NA
Aggiornamento all'ultima versione di Spark Poiché le versioni Spark open source vengono rilasciate, vengono rese disponibili in IBM Analytics Engine dopo un intervallo di tempo richiesto per il test interno. Fai attenzione all'annuncio di una nuova versione di Spark nella sezione Release Notes e aggiorna il runtime della tua istanza per spostare le tue applicazioni all'ultimo runtime Spark. I runtime più vecchi sono obsoleti e alla fine vengono rimossi quando vengono rilasciate versioni più recenti. Verificare le applicazioni sul nuovo runtime prima di apportare modifiche alle istanze di produzione.
Concedi accesso basato sul ruolo Devi concedere l'accesso basato sul ruolo a tutti gli utenti sulle istanze IBM Analytics Engine in base ai loro requisiti. Ad esempio, solo il tuo team di automazione deve avere autorizzazioni per inoltrare le applicazioni perché ha accesso a segreti e il tuo team DevOps deve essere in grado solo di vedere l'elenco di tutte le applicazioni e i relativi stati.
Scegli la configurazione giusta IBM Cloud Object Storage
  • Disaster Recovery (DR) Resiliency: dovresti utilizzare l'opzione di resilienza cross - regionale IBM Cloud Object Storage che esegue il backup dei tuoi dati in diverse città in una regione. Al contrario, l'opzione Resilienza regionale esegue il backup dei dati in un unico data center.
  • Encryption: IBM Cloud Object Storage viene fornito con la codifica integrata predefinita. Puoi anche configurare Object Storage per lavorare con il servizio BYOK Key Protect.
  • Credenziali del servizio: Per impostazione predefinita, IBM Cloud Object Storage utilizza credenziali in stile IAM. Se vuoi utilizzare le credenziali in stile AWS, devi utilizzare l'opzione "Includi credenziali HMAC" come descritto in Credenziali del servizio.
  • Endpoint diretti per IBM Cloud Object Storage: utilizza sempre gli endpoint diretti per la connettività all'istanza IBM Cloud Object Storage. Questo si applica all'istanza home IBM Cloud Object Storage e agli endpoint utilizzati dalle tue applicazioni (il tuo codice o ciò che trasmetti come parametri nelle configurazioni a livello dell'istanza o a livello dell'applicazione). Gli endpoint diretti offrono prestazioni migliori rispetto agli endpoint pubblici e non comportano costi per la larghezza di banda in uscita o in entrata.
Utilizzare endpoint privati per il metastore Hive esterno Se stai utilizzando Spark SQL e vuoi utilizzare un metastore esterno come ad esempio utilizzare IBM Cloud Databases for PostgreSQL come tuo metastore Hive, devi utilizzare l'endpoint privato per la connessione al database per migliorare le prestazioni e ridurre i costi.
Esecuzione di applicazioni con sovraccarico di risorse Esiste una quota associata a ciascuna istanza senza server di Analytics Engine. Quando le applicazioni vengono inoltrate su un'istanza, vengono assegnate loro risorse dalla quota di istanza. Se un'applicazione richiede risorse oltre la quota disponibile, l'applicazione non verrà avviata o verrà eseguita con un numero di risorse inferiore a quello richiesto, il che potrebbe comportare un'esecuzione dell'applicazione più lenta del previsto o, in alcuni casi, un errore dell'applicazione. Dovresti sempre monitorare il consumo di risorse corrente su un'istanza per assicurarti che le tue applicazioni siano in esecuzione comodamente entro i limiti forniti. Puoi regolare i limiti tramite un ticket di supporto, se necessario.
Allocazione statica delle risorse rispetto al ridimensionamento automatico

Quando si inoltrano le applicazioni, è possibile specificare il numero di executor in anticipo (allocazione statica) o utilizzare l'opzione di ridimensionamento automatico (allocazione dinamica). Prima di decidere se utilizzare l'allocazione statica o il ridimensionamento automatico, potresti voler eseguire alcuni test di benchmarking variando i diversi dataset con il ridimensionamento statico e automatico per trovare la configurazione corretta. Considerazioni generali:

  • se si conosce il numero di risorse (core e memoria) richiesto dalla propria applicazione e non varia nelle diverse fasi dell'esecuzione dell'applicazione, si consiglia di assegnare risorse statiche per prestazioni migliori.
  • Se si desidera utilizzare una risorsa ottimizzata, è possibile scegliere il ridimensionamento automatico degli executor in cui gli executor sono assegnati in base alla domanda effettiva dell'applicazione. Notare che potrebbe esserci un leggero ritardo associato quando si utilizza il ridimensionamento automatico nelle applicazioni.
Abilita e ottimizza la registrazione di inoltro
  • Abilita la registrazione di inoltro per la tua istanza del servizio per aiutare a risolvere i problemi, mostrare l'avanzamento e stampare o mostrare gli output delle tue applicazioni. Tieni presente che l'inoltro dei log comporta un costo basato sulla quantità di log inoltrati o conservati nell'istanza IBM Log Analysis. In base al tuo caso d'utilizzo e alle tue necessità, devi decidere le impostazioni ottimali.
  • Quando abiliti l'inoltro dei log utilizzando l'API predefinita, vengono abilitati solo i log del driver. Se sono necessari anche i log dell'executor, ad esempio, se sono presenti errori che potrebbero essere visualizzati solo sugli executor, è necessario personalizzare la registrazione per abilitare anche la registrazione dell'executor. I log di Executor possono diventare molto grandi, quindi bilanciare le opzioni per ottimizzare la quantità di log che vengono inoltrati alla tua istanza di registrazione rispetto alle informazioni che ottieni nei log per scopi di risoluzione dei problemi.
  • Segui le procedure ottimali di IBM Log Analysis quando scegli le tecniche di configurazione e ricerca corrette. Ad esempio, potresti voler configurare il piano dell'istanza IBM Log Analysis per una ricerca di 7 giorni con l'archiviazione dei log in IBM Cloud Object Storage per risparmiare sui costi. Fai anche riferimento alla IBM Log Analysis per le tecniche di ricerca dei log di tuo interesse in base alle parole chiave, al momento temporale e così via.
Personalizza la tua istanza del servizio
  • Potrebbe essere necessario personalizzare la tua istanza del servizio per inserire i pacchetti Python o conda che non sono preinstallati, oppure per inserire alcuni file (certificati o file di configurazione) che devono essere resi disponibili per le applicazioni Spark. In base alle proprie necessità, personalizza la tua istanza utilizzando i set di librerie e utilizza questi set di librerie quando inoltri le applicazioni.
  • La dimensione del tuo set di librerie influisce sul tempo di avvio dell'applicazione e sul tempo di avvio dell'executor (quando esegui il ridimensionamento automatico delle applicazioni). Si noti anche che c'è un limite superiore per la dimensione di un set di librerie, vale a dire 2 GB. Quindi, se applicazioni differenti necessitano di serie di librerie differenti, è preferibile utilizzare serie di librerie separate, in modo che possano essere specificate singolarmente al momento dell'inoltro dell'applicazione.
  • Utilizzare la personalizzazione solo per inserire i file che non possono essere portati dai parametri dei dettagli dell'applicazione. Vedi Parametri per l'inoltro delle applicazioni Spark. Devi utilizzare le opzioni del parametro standard spark - submit equivalenti come le opzioni files, jars, packages e pyFiles, se si adatta al tuo caso d'uso. Solo se sono necessari file che non rientrano in nessuna di queste categorie, ad esempio un certificato autofirmato, un file di configurazione JAAS o un file .so, è necessario utilizzare l'opzione "customization for file download".
Applica filtri durante il richiamo dell'elenco di applicazioni Quando devi richiamare l'elenco di applicazioni nell'IU o utilizzando l'API o la CLI, è meglio applicare i filtri appropriati e richiamare la serie di cui hai bisogno.
Utilizzare altri servizi o strumenti per le funzioni di supporto Oltre a utilizzare un'istanza IBM Log Analysis e IBM Cloud Object Storage e a seconda del tuo caso di utilizzo, potresti voler utilizzare altri strumenti e servizi di supporto. Ad esempio, è possibile utilizzare Apache Airflow (gestito dall'utente) per orchestrare, pianificare e automatizzare le applicazioni. È anche possibile utilizzare IBM Secrets Manager per memorizzare i segreti richiesti per le applicazioni e utilizzare gli script di automazione per leggere i segreti da Secrets Manager prima di inoltrare le proprie applicazioni. Puoi anche essere creativo con i tuoi argomenti dell'applicazione, passando un token richiesto per leggere i segreti richiesti da Secrets Manager direttamente dall'interno della tua applicazione.
Utilizza istanze in regioni alternative per il backup e il ripristino di emergenza Attualmente, è possibile creare le istanze senza server IBM Analytics Engine in due regioni, Dallas (us-south) e Francoforte (eu-de). Anche se è consigliabile creare le tue istanze nella stessa regione in cui si trovano i tuoi dati, è sempre utile creare un'istanza di backup in una regione alternativa con la stessa serie di configurazioni della tua istanza primaria, nel caso in cui l'istanza primaria diventi non disponibile o inutilizzabile. Le tue automazioni dovrebbero abilitare la commutazione degli inoltri dell'applicazione tra le due regioni, se necessario. NA
Utilizzare bucket e credenziali del servizio separati per i file dell'applicazione, i file di dati e l'istanza home

Utilizza il principio di "separazione delle preoccupazioni" per distinguere l'accesso tra diverse risorse.

  • Non archiviare i dati o i file dell'applicazione nel bucket dell'istanza home.
  • Utilizza bucket separati per i dati e i file dell'applicazione.
  • Utilizza credenziali di accesso separate (basate sulla chiave IAM) con accesso limitato al bucket per i file dell'applicazione e al bucket che contiene i tuoi dati.
Le applicazioni devono essere eseguite entro 72 ore Esiste un limite al numero di ore di esecuzione di un'applicazione o di un kernel. Per la sicurezza e la patch di conformità, tutti i runtime eseguiti per più di 72 ore vengono arrestati. Se si dispone di un'applicazione di grandi dimensioni, suddividere l'applicazione in parti più piccole che verranno eseguite entro 72 ore. Se si stanno eseguendo applicazioni di streaming Spark, assicurarsi di configurare i punti di controllo e di disporre del monitoraggio per riavviare le applicazioni se sono arrestate
Avvia e arresta cronologia Spark solo quando necessario Arrestare sempre il server della cronologia Spark quando non è più necessario utilizzarlo. Tenere presente che il server della cronologia Spark utilizza continuamente risorse di memoria e CPU mentre il suo stato è avviato.