In che modo le metodologie Agile possono essere adattate allo sviluppo di sistemi di elaborazione High Volume?

3

Sto sviluppando sistemi di elaborazione ad alto volume. Come i modelli matematici che calcolano vari parametri basati su milioni di record, calcolano campi derivati su milioni di record, elaborano file enormi con transazioni ecc ...

Sono ben consapevole delle metodologie di test delle unità e se il mio codice è in C # non ho alcun problema nel test delle unità. Il problema è che spesso ho codice in T-SQL, codice C # che è un assembly memorizzato SQL e flusso di lavoro SSIS con una buona quantità di logica (e risultati, ecc.) O qualche processo SAS.

Qual è l'approccio che utilizzerai nello sviluppo di tali sistemi. Di solito sviluppo diversi test come procedure memorizzate in uno schema progettato (TEST), quindi li eseguo automaticamente durante la notte e controllano i risultati. Ma questo è solo per T-SQL. E l'integrazione continua è difficile. Ma il problema è con la verifica dei pacchetti SSIS. Come lo test? Qual è il tuo approccio preferito per lo stub dei dati nelle tabelle (specialmente se hai bisogno di un'inizializzazione di molti dati). Ho qualche approccio derivato nel corso degli anni ma forse non sto leggendo abbastanza articoli.

Quindi gli sviluppatori di Banking, Telecom, Risk sono là fuori. Come puoi testare le tue applicazioni mission-critical che elaborano milioni di record al giorno di fine, alla fine del mese ecc.? Che quadri usi? Come convalidate che il vostro pacchetto ssis è corretto (come lo sviluppate) / Come ottenete un'integrazione continua in tale ambiente (Personalmente non ci sono mai arrivato)? Spero che questa non sia una domanda a risposta aperta. Come si fa a testare i lavori di ridimensionamento della mappa, ad esempio (non uso hadoop ma questo è abbastanza simile). luke

Spero che questo non sia troppo aperto

    
posta luckyluke 07.03.2011 - 19:53
fonte

2 risposte

1

Per testare le stored procedure, caricare le tabelle con dati e tornare indietro, ho trovato ben poco da confrontare con TSQLUnit . L'ho usato su diversi progetti (compresi alcuni per i clienti dei servizi finanziari) e ho scoperto che ne è valsa la pena.

Per testare i pacchetti SSIS, hai provato ssisUnit ? Ho appena iniziato a giocare con questo e non l'ho usato su un progetto di vita reale, quindi non posso commentare quali sono le sue insidie, ma sembra colmare il vuoto che esiste nel test dei pacchetti SSIS.

    
risposta data 18.03.2011 - 00:06
fonte
0

Puoi sempre provare a generalizzare, ma non puoi generalizzare nulla. Le pratiche agili sono buone, ma non possono ancora essere applicate a eveything. Inoltre, non ci sono proiettili d'argento;)

Penso che tu abbia colpito una sorta di muro qui, e ovviamente stai facendo una domanda teorica, perché in pratica stai provando a usare tecniche agili sui sistemi di missione criogenica ... ed è strano perché gli obiettivi di sviluppo (o qualità) di tali sistemi assicurano che i dati siano vicini a zero errori.

L'ambiente ideale delle metodologie agili si trova all'interno di un progetto piccolo e altamente variabile, non con sistemi privi di errori né con disegni altamente efficienti (come dichiari nel tuo problema). Anche se consideri "tecniche agili", è sempre consigliabile mantenere il tuo design semplice, ma ciò non ti sarà di alcuna utilità.

Quindi, come approverò questo requeriment? Attraverso i metodi di ingegneria:

  • Crea un ambiente di sviluppo / test, che puoi utilizzare in qualsiasi momento
  • Riduci le dimensioni dei dati, ma mantieni la variabilità dei dati (generalizza registro e tipi di dati) sull'ambiente di sviluppo
  • Non programmare, crea solo simulazioni e concentrati sull'algoritmo e sulla sua complessità

Appena prima di sentirti veramente in qualche modo con il tuo design migliorato, provalo sulla produzione, ma non perdere tempo a cercare di forzare le uscite giornaliere e così, questo non è un problema agile.

Buona fortuna!

    
risposta data 14.03.2011 - 09:15
fonte

Leggi altre domande sui tag