Progettazione di applicazioni ad alte prestazioni - corso 46.900 rubli. da IBS Training Center, formazione 25 ore, Data: 11 marzo 2024.
Miscellanea / / November 28, 2023
Anche prima di progettare qualsiasi sistema software, è necessario comprendere che, a causa di alcune limitazioni, può sempre diventare un sistema ad alte prestazioni. Quando si sviluppa un sistema ad alte prestazioni, è necessario determinare quali parametri definiscono il sistema come ad alte prestazioni. Se il sistema è ad alte prestazioni, per la sua implementazione di successo devono essere adottate misure speciali per garantire le prestazioni.
Il corso esamina le differenze tra sistemi ad alto carico, alta affidabilità e alte prestazioni.
L'obiettivo principale del corso è fornire una comprensione dei concetti di base, dei principi e degli approcci utilizzati nella progettazione di sistemi ad alte prestazioni.
Una frase comune: “Dovrebbe funzionare velocemente!” - questo non è un requisito. Durante la formazione, i partecipanti non solo impareranno perché questo non è un requisito, ma impareranno anche come lavorare correttamente e analizzare i requisiti prestazionali. Il corso introduce inoltre i concetti di “scenari critici”. Gli studenti consolideranno le conoscenze acquisite sul lavoro con i requisiti nella pratica durante un incarico pratico.
Il corso esamina i principali esempi di perdita di produttività dei sistemi software. Successivamente, vengono forniti i modi principali per combattere le prestazioni del sistema. Sempre nell'ambito del corso, vengono discussi i modelli utilizzati nella progettazione di sistemi con requisiti maggiori utilizzando esempi pratici di applicazione. prestazioni, fornisce informazioni sui principali anti-pattern riscontrati durante l'implementazione dei sistemi software che influiscono produttività.
Particolare attenzione viene prestata alla preparazione del sistema per i test e all'analisi dei risultati dei test. Descrive la creazione di un programma e di una metodologia per testare sistemi ad alto carico, modelli di carico sistemi e discute una metodologia che consente la valutazione quantitativa delle prestazioni sistemi.
Poiché gli sviluppatori di sistemi software spesso devono risolvere i problemi legati allo sviluppo di sistemi altamente caricati che elaborano grandi volumi di dati date le esigenze di tempi di risposta e volumi di dati elaborati, il corso sarà utile non solo agli architetti, ma anche ai project manager di sviluppo, sviluppatori.
1. Concetto di un sistema ad alte prestazioni (2,5 ore):
Applicazione ad alte prestazioni, applicazione ad alto carico, applicazione ad alta disponibilità.
Gestione delle prestazioni delle applicazioni.
Dipendenza del prezzo della correzione dell'errore dalla fase di rilevamento e dalla fase di introduzione.
Caratteristiche di base che descrivono le prestazioni del sistema.
Modello di carico del sistema.
2. Analisi dei requisiti per sistemi ad alte prestazioni (1,5 ore)
Formazione di requisiti non funzionali per sistemi ad alte prestazioni.
Affrontare le contraddizioni durante la creazione dei requisiti prestazionali.
Completezza dei requisiti.
Laboratorio (1 ora):
Analisi dei requisiti di incoerenza e completezza.
2.1.Tattiche architettoniche. Tattiche di produttività (1,5 ore)
Caratteristiche della formazione dei requisiti per i sistemi di code (QS).
3. Progettazione di sistemi ad alte prestazioni (2 ore)
Attributi di qualità del sistema.
Compromessi quando si lavora contemporaneamente su diversi attributi di qualità: l’esempio di CAP e PACELC.
Workshop: Analisi del principio del bilanciamento degli attributi di qualità utilizzando l'esempio di Amazon Dynamo DB (1 ora):
Considerazione degli approcci al dimensionamento flessibile del sistema utilizzando l'esempio di Amazon Dynamo DB mantenendo il controllo sulla tolleranza agli errori e mantenendo prestazioni costanti.
3.1. Approcci classici alla prestazione
Le principali cause di perdita di prestazioni del sistema (1 ora).
Metodi di base per aumentare le prestazioni del sistema (1 ora).
Principi di scalatura orizzontale e verticale dei sistemi (0,5 h).
Laboratorio (2 ore):
Analisi di un esempio di scalabilità del sistema.
Conversione di un sistema monolitico in Map-Reduce.
Panoramica di Map-Reduce.
Conversione di Map-Reduce in architettura Lambda per ridurre i problemi della pura pratica Map-Reduce.
4. Modelli per l'implementazione di sistemi ad alte prestazioni (5 ore)
Le principali classi di pattern utilizzati nella realizzazione di sistemi ad alte prestazioni: GRASP, pattern di Architettura, pattern di Integrazione delle Applicazioni.
Esempi di implementazione pratica di modelli negli standard moderni.
Esempi di implementazione pratica di modelli nei moderni framework di sviluppo di sistemi di integrazione.
5. Codifica di sistemi ad alte prestazioni (2 ore)
Problemi di base nella codifica di sistemi ad alte prestazioni.
Metodi di ottimizzazione per compilatori e ambienti runtime moderni.
6. Test di sistemi ad alte prestazioni (2 ore)
Tipi di test utilizzati per dimostrare le prestazioni del sistema.
Preparazione al testing (elaborazione di scenari e creazione di un modello di carico).
Analisi dei risultati dei test.
7. Metodologia SPE (1 ora)
Introduzione alla metodologia SPE. Storia, confini d'uso.
Metodologia per l'analisi dei sistemi che utilizzano SPE.
Laboratorio (1 ora):
Considerazione su un esempio pratico di utilizzo della metodologia SPE per:
Stima dei limiti delle prestazioni del sistema in base alle caratteristiche attuali dell'hardware e del software;
Valutare l'impatto delle decisioni architetturali sulle prestazioni del sistema;
Stime dei requisiti hardware basate sui requisiti prestazionali, in base al ridimensionamento dei processi di sistema attuali.