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.
| 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 |
|
|
| 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:
|
|
| Abilita e ottimizza la registrazione di inoltro |
|
|
| Personalizza la tua istanza del servizio |
|
|
| 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.
|
|
| 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. |