Jenner Professional Services

Migrare da SAS a Jenner Analytics

Migrazione certificata dai test per basi di codice SAS aziendali

Il tuo parco SAS funziona. Migliaia di programmi, macro, formati e job pianificati sono stati affinati negli anni, e gran parte di ciò che fanno non è documentata da nessuna parte se non nel codice stesso. Spostare tutto questo su una nuova piattaforma, per quanto compatibile, comporta un rischio concreto: qualcosa che prima era corretto diventa sottilmente sbagliato, e nessuno se ne accorge finché non conta.

Jenner Professional Services elimina quel rischio con una disciplina semplice. Prima di cambiare qualsiasi cosa, costruiamo un registro completo ed eseguibile di ciò che il tuo sistema attuale fa. Poi usiamo quel registro per dimostrare, test dopo test, che il sistema migrato fa lo stesso.

Il risultato è una migrazione che puoi approvare sulla base di prove anziché di fiducia, e una suite di regressione che resta tua per sempre.

Iniziare dalla Discovery

Jenner è una strada, non l'unica

Siamo esperti di SAS, come dimostra l'avere creato un'implementazione completa di quel linguaggio e di quel sistema. Migrare verso di esso, però, è solo una delle strade che potete percorrere con noi.

Possiamo mettere la nostra implementazione del codice compatibile con SAS, e le nostre pratiche guidate dai test, al servizio di una migrazione riuscita verso Python o R, verso Snowflake o Databricks, o verso altre soluzioni — anche Siemens SLC.

Consigliamo la migrazione a Jenner perché è insieme più rapida, meno complessa e meno costosa per le aziende che hanno già un'infrastruttura SAS.

Perché la sola compatibilità non è certificazione

Jenner esegue il linguaggio SAS, quasi tutte le procedure, il macro linguaggio, la grafica e un'ampia gamma di connessioni dati. Per la maggior parte del codice, migrare significa puntare Jenner sugli stessi programmi. Ma una base di codice aziendale non è mai soltanto il linguaggio. È anche tutto ciò che il linguaggio tocca:

Ambiente e configurazione

autoexec.sas, file di configurazione, opzioni di sistema (ENCODING, LOCALE, YEARCUTOFF, VALIDVARNAME, FMTSEARCH, SASAUTOS), variabili d'ambiente, SYSPARM, e la dimensione e la durata della libreria WORK.

Segreti e credenziali

Password incorporate nelle istruzioni LIBNAME, stringhe codificate {SAS002}, credenziali in file inclusi con %include, ticket Kerberos o SSO, e la questione di dove tutto questo dovrebbe invece risiedere.

Connettività ai database

Motori SAS/ACCESS per Oracle, DB2, Teradata, SQL Server, Snowflake, Hive e altri; SQL pass-through esplicito e implicito; opzioni di motore che influenzano i risultati (DBCOMMIT, READBUFF, INSERTBUFF, BULKLOAD); mappatura dei tipi per date, decimali e NULL; e comportamenti cambiati in silenzio quando l'SQL è stato spinto sul database anziché eseguito localmente.

Percorsi di file e librerie

Percorsi cablati nel codice, lettere di unità Windows contro mount Linux, nomi di file sensibili alle maiuscole, condivisioni NFS e SMB, comandi FILENAME PIPE e X, SYSGET e permessi sui file.

Artefatti proprietari

Cataloghi di formati, macro compilate o memorizzate, indici, audit trail, viste, librerie SPDE, file di trasporto, dataset cifrati o compressi, e dataset dell'epoca V6/V8 che vanno rigenerati anziché copiati.

Prodotti lato server

Blocchi RSUBMIT di SAS/CONNECT, Grid, SAS/SHARE, Stored Processes, autorizzazione tramite il metadata server, progetti Enterprise Guide, job generati da DI Studio e azioni CAS di Viya. Ognuno ha un equivalente sulla nuova piattaforma, ma non identico.

Pianificazione e orchestrazione

LSF, Control-M, cron, dipendenze fra job, convenzioni sui codici di ritorno, analizzatori di log che cercano testo NOTE/WARNING/ERROR specifico, logica SYSERR e SYSCC, e avvisi FILENAME EMAIL.

Fedeltà dell'output

Destinazioni ODS PDF, RTF, Excel e HTML, stili PROC TEMPLATE, tagset, font, driver dei dispositivi grafici, e report che i consumatori a valle interpretano per posizione.

Calcolo numerico e statistica

Arrotondamenti in virgola mobile ai valori limite, collazione dell'ordinamento e ordine dei pari merito, flussi di numeri casuali (RANUNI, RAND, STREAMINIT) non riproducibili fra implementazioni, e procedure iterative il cui percorso di convergenza può differire entro la tolleranza.

Codice che si appoggia a stranezze

Variabili non inizializzate, remerging di PROC SQL, RETAIN implicito, avvisi di troncamento considerati normali, e comportamenti non documentati che oggi producono per caso la risposta giusta.

Integrazione con tutto il resto

Python tramite SASPy, R, client Java e .NET su IOM, JDBC verso SAS/SHARE, Tableau e pandas che leggono direttamente i file .sas7bdat, e chiamate REST verso Viya.

Governance

Requisiti di convalida nei settori regolamentati (GxP, 21 CFR Part 11, gestione del rischio di modello), sicurezza a livello di riga, trattamento dei dati personali, audit trail, e l'assenza di controllo di versione in molti parchi SAS di lunga data.

Nessuno di questi punti è insolito. Tutti sono individuabili in anticipo e tutti sono verificabili. È esattamente questo lo scopo del processo che segue.

Il processo di migrazione Jenner

1

Scoprire

Inventariamo il parco prima di stimare il lavoro. Con l'analisi automatizzata del tuo albero dei sorgenti, delle pianificazioni e dei log, produciamo un grafo delle dipendenze fra programmi, macro, formati, librerie, file esterni e connessioni ai database, e individuiamo che cosa viene realmente eseguito, che cosa è morto e di chi è ciascuna cosa. Ogni categoria elencata sopra viene verificata e i risultati vengono valutati per sforzo di migrazione.

Deliverable

Un rapporto di inventario e rischio con una proposta a prezzo fisso per le fasi successive. Se decidi di non proseguire, il rapporto resta tuo.

2

Caratterizzare

È la fase che rende affidabile tutto il resto, e si svolge interamente sul tuo sistema SAS esistente, prima che venga migrato alcunché.

Per ogni programma in perimetro costruiamo, con analisi assistita dall'IA, test di caratterizzazione: specifiche eseguibili di ciò che il codice fa oggi. Ogni test cattura gli input che un programma consuma — dataset, parametri di macro, file esterni, estrazioni da database, impostazioni d'ambiente —, lo esegue sulla tua installazione SAS attuale e registra tutto ciò che produce: dataset di output, contenuto del log, codici di ritorno, output ODS, stato delle variabili macro, ed effetti collaterali come file scritti o email inviate.

È l'IA a rendere tutto questo praticabile su scala aziendale. Leggere diecimila programmi e dedurre i casi limite che ciascuno gestisce non è un lavoro per persone con una scadenza. Generare i casi di test, i fixture e la logica di confronto è esattamente il tipo di lavoro voluminoso e ripetitivo in cui i modelli attuali eccellono, e ogni test generato viene validato eseguendolo contro il sistema che descrive. Se un test non passa sul tuo SAS attuale, non è un test del tuo sistema e viene scartato.

Le regole di confronto si definiscono output per output. I dataset per impostazione predefinita si confrontano in modo esatto; le tolleranze numeriche si dichiarano esplicitamente dove la virgola mobile o le procedure iterative rendono priva di senso l'uguaglianza bit per bit; i confronti dei log sono strutturali anziché testuali, così una NOTE riformulata non fa fallire un job mentre un conteggio di righe diverso sì. Gli input non deterministici come la data corrente e i semi casuali sono controllati, perché lo stesso test dia la stessa risposta in qualunque giorno. Dove i dati di produzione non possono essere usati per i test, costruiamo fixture mascherati o sintetici che percorrono gli stessi rami di codice.

Deliverable

Una suite di test sotto controllo di versione con copertura misurata su programmi, macro e procedure, e una baseline dei risultati registrati dal tuo sistema attuale. Questa suite è tua. È scritta per girare su Jenner, su SAS e su qualunque altro ambiente parli il linguaggio, e ha valore indipendentemente dalla migrazione: la maggior parte dei parchi SAS non ne ha mai avuta una.

3

Migrare

Con la baseline in mano, la migrazione diventa un esercizio di ingegneria con una definizione chiara di «fatto». Installiamo Jenner nel tuo ambiente, sistemiamo i punti d'ambiente emersi in Discovery (percorsi, librerie, gestione dei segreti, connessioni ai database, integrazione con lo scheduler) ed eseguiamo la suite completa.

Ogni fallimento viene classificato in una di quattro categorie:

01Difetto di Jenner

Il codice è corretto ed è Jenner a sbagliare. Jenner rilascia nuove build ogni settimana; i difetti trovati nelle migrazioni dei clienti vengono messi in priorità, e il test fallito entra stabilmente nella suite di regressione di Jenner stessa.

02Ambiente

Un percorso, una credenziale, una connessione o un'opzione da impostare. Corretto e rieseguito.

03Dipendenza da una stranezza

Il codice si appoggia a un comportamento SAS non documentato. Ti mostriamo la riga precisa e il comportamento preciso, e scegli tu: cambiare il codice — con il test a dimostrare che la modifica è sicura — oppure far sì che Jenner riproduca la stranezza.

04Differenza accettabile

Il risultato differisce entro una tolleranza dichiarata, oppure un messaggio di log è formulato diversamente. Documentato e approvato, mai accettato in silenzio.

La suite gira di continuo mentre i problemi vengono risolti, così l'avanzamento è un numero e non un'opinione, e le regressioni vengono intercettate lo stesso giorno in cui sono introdotte.

Deliverable

Una base di codice migrata con la suite completa che passa, oppure con ogni differenza residua decisa per iscritto.

4

Certificare

La certificazione è il fascicolo di prove che consente al tuo sponsor, ai tuoi revisori e ai tuoi regolatori di accettare la migrazione.

Eseguiamo un periodo in parallelo in cui i job di produzione girano su entrambi i sistemi e gli output vengono confrontati automaticamente con le stesse regole della suite di test. Il fascicolo di certificazione comprende l'inventario, la suite di test e la sua copertura, la baseline, i risultati dell'esecuzione finale, la decisione su ogni differenza e la tracciabilità da ciascun requisito o programma ai test che lo coprono. Per i clienti regolamentati è strutturato per sostenere una convalida IQ/OQ/PQ e un audit.

Deliverable

Un fascicolo di certificazione firmato e una raccomandazione go/no-go.

5

Passare in esercizio e assistere

Il passaggio viene pianificato attorno alle tue finestre batch e alla data di rinnovo della licenza SAS, con un percorso di rollback collaudato. Gli scheduler vengono ripuntati, monitoraggio e alerting vengono confermati, e l'ambiente SAS viene dismesso secondo il tuo calendario.

La suite di test continua a girare dopo il passaggio. Poiché Jenner rilascia ogni settimana, ricevi ogni miglioramento con la stessa prova che nulla di ciò da cui dipendi è cambiato. Il tuo team viene formato per estendere la suite man mano che la base di codice cresce.

Deliverable

La produzione su Jenner, un piano di dismissione per SAS e una suite di regressione che continua a lavorare per te.

Che cosa ottieni

  • Un inventario completo e aggiornato del tuo parco SAS, comprese le parti che nessuno ricordava più.
  • Una suite di test di caratterizzazione con copertura misurata, di tua proprietà e trasportabile fra piattaforme.
  • Una migrazione il cui completamento è definito dai risultati dei test anziché da una data.
  • Un fascicolo di certificazione pensato per revisori e regolatori.
  • Protezione permanente dalle regressioni, su Jenner o altrove.
  • I difetti trovati nella tua migrazione corretti nel prodotto, non aggirati nel tuo codice.

Come sono strutturati gli incarichi

Discovery

A prezzo fisso e di breve durata. Produce la proposta per le fasi successive, quotata sulla dimensione e sulla complessità misurate del tuo parco anziché su una loro stima.

Caratterizzare, Migrare, Certificare

Di norma erogate come un unico incarico a perimetro fisso, con accettazione per milestone legata ai risultati della suite.

Assistenza dopo il passaggio

Disponibile come servizio annuale, una volta consegnata la suite di test e formato il tuo team a estenderla.

Indicazioni sui costi

Migrazioni piccole e progetti pilota

$1,000 – $21,000

Di norma realizzabili da remoto, con una durata che va da una settimana a un mese.

Migrazioni più ampie e complesse

$52,000 – $405,000

Richiedono presenza in sede e/o competenza approfondita del dominio, e durano di solito dai due ai sei mesi.

Tutti gli importi sono in dollari statunitensi (USD).

Non comprende i costi di licenza del software; questi però sono molto lineari e competitivi. Vedi la pagina dei prezzi.

Contatta i servizi professionali

Iniziare dalla Discovery

Inviaci una descrizione del tuo ambiente SAS — piattaforma, numero approssimativo di programmi, prodotti in uso, database e scheduler — e definiremo il perimetro di una Discovery.