Jenner Professional Services

Siirtyminen SAS:sta Jenner Analyticsiin

Testeillä todennettu migraatio yritysten SAS-koodikannoille

SAS-ympäristönne toimii. Tuhansia ohjelmia, makroja, formaatteja ja ajastettuja töitä on hiottu vuosien ajan, eikä suurta osaa siitä, mitä ne tekevät, ole dokumentoitu muualla kuin koodissa itsessään. Sen siirtäminen mille tahansa uudelle alustalle, kuinka yhteensopivalle tahansa, sisältää yhden todellisen riskin: jokin aiemmin oikein ollut menee hienovaraisesti väärin, eikä kukaan huomaa sitä ennen kuin sillä on merkitystä.

Jenner Professional Services poistaa tuon riskin yhdellä yksinkertaisella periaatteella. Ennen kuin muutamme mitään, rakennamme kattavan, suoritettavan tallenteen siitä, mitä nykyinen järjestelmänne tekee. Sitten käytämme tuota tallennetta todistaaksemme testi testiltä, että siirretty järjestelmä tekee saman.

Lopputulos on migraatio, jonka voitte hyväksyä todisteiden eikä luottamuksen perusteella, ja regressiotestistö, joka jää teille pysyvästi.

Aloita Discovery-vaiheesta

Jenner on yksi polku, ei ainoa

Olemme SAS-asiantuntijoita, minkä osoittaa se, että olemme rakentaneet tuosta kielestä ja järjestelmästä täyden toteutuksen. Siirtyminen siihen on kuitenkin vain yksi niistä poluista, jotka voitte kanssamme valita.

Voimme käyttää SAS-yhteensopivan koodin toteutustamme ja testivetoisia käytäntöjämme varmistaaksemme onnistuneen siirtymän Pythoniin tai R:ään, Snowflakeen tai Databricksiin tai muihin ratkaisuihin — myös Siemens SLC:hen.

Suosittelemme siirtymää Jenneriin, koska se on yrityksille, joilla on jo SAS-infrastruktuuri, samalla nopeampi, vähemmän monimutkainen ja edullisempi.

Miksi pelkkä yhteensopivuus ei ole sertifiointi

Jenner suorittaa SAS-kieltä, lähes kaikkia proseduureja, makro-ominaisuuksia, grafiikkaa ja laajaa joukkoa tietoyhteyksiä. Suurimman osan koodista kohdalla migraatio on Jennerin osoittamista samoihin ohjelmiin. Yrityksen koodikanta ei kuitenkaan ole koskaan pelkkä kieli. Se on myös kaikki se, mihin kieli koskee:

Ympäristö ja konfiguraatio

autoexec.sas, konfiguraatiotiedostot, järjestelmäasetukset (ENCODING, LOCALE, YEARCUTOFF, VALIDVARNAME, FMTSEARCH, SASAUTOS), ympäristömuuttujat, SYSPARM sekä WORK-kirjaston koko ja elinikä.

Salaisuudet ja tunnukset

LIBNAME-lauseisiin upotetut salasanat, {SAS002}-koodatut merkkijonot, tunnukset %include-tiedostoissa, Kerberos- tai SSO-liput ja kysymys siitä, missä kaiken tämän pitäisi sen sijaan sijaita.

Tietokantayhteydet

SAS/ACCESS-moottorit Oraclelle, DB2:lle, Teradatalle, SQL Serverille, Snowflakelle, Hivelle ja muille; eksplisiittinen ja implisiittinen läpivienti-SQL; tuloksiin vaikuttavat moottoriasetukset (DBCOMMIT, READBUFF, INSERTBUFF, BULKLOAD); tyyppien vastaavuudet päivämäärille, desimaaleille ja NULL-arvoille; sekä käyttäytyminen, joka muuttui huomaamatta, kun SQL siirrettiin tietokannan suoritettavaksi paikallisen suorituksen sijaan.

Tiedostojen ja kirjastojen sijainnit

Koodiin kirjoitetut polut, Windowsin asemakirjaimet vastaan Linuxin liitospisteet, kirjainkoolle herkät tiedostonimet, NFS- ja SMB-jaot, FILENAME PIPE- ja X-komennot, SYSGET sekä tiedosto-oikeudet.

Omistusoikeudelliset artefaktit

Formaattiluettelot, käännetyt tai tallennetut makrot, indeksit, kirjausketjut, näkymät, SPDE-kirjastot, siirtotiedostot, salatut tai pakatut datajoukot sekä V6/V8-aikakauden datajoukot, jotka on luotava uudelleen eikä kopioitava.

Palvelinpuolen tuotteet

SAS/CONNECTin RSUBMIT-lohkot, Grid, SAS/SHARE, Stored Processes, metadatapalvelimen valtuutus, Enterprise Guide -projektit, DI Studion generoimat työt ja Viyan CAS-toiminnot. Jokaisella on uudella alustalla vastine, mutta ei identtistä.

Ajastus ja orkestrointi

LSF, Control-M, cron, töiden riippuvuudet, paluukoodikäytännöt, lokien lukijat jotka etsivät tiettyä NOTE/WARNING/ERROR-tekstiä, SYSERR- ja SYSCC-logiikka sekä FILENAME EMAIL-hälytykset.

Tulosteiden uskollisuus

ODS-kohteet PDF, RTF, Excel ja HTML, PROC TEMPLATE-tyylit, tagsetit, fontit, grafiikkalaiteajurit sekä raportit, joita jatkokäyttäjät jäsentävät sijainnin perusteella.

Numeriikka ja tilastot

Liukulukupyöristys raja-arvoissa, lajittelun vertailujärjestys ja tasatilanteiden järjestys, satunnaislukuvirrat (RANUNI, RAND, STREAMINIT) jotka eivät toistu toteutuksesta toiseen, sekä iteratiiviset proseduurit joiden suppenemispolku voi vaihdella toleranssin sisällä.

Erikoisuuksiin nojaava koodi

Alustamattomat muuttujat, PROC SQL:n uudelleenyhdistäminen, implisiittinen RETAIN, normaaleina pidetyt katkaisuvaroitukset sekä dokumentoimaton käyttäytyminen, joka sattuu tuottamaan oikean vastauksen tänään.

Integraatio kaikkeen muuhun

Python SASPyn kautta, R, Java- ja .NET-asiakkaat IOM:n yli, JDBC SAS/SHAREen, .sas7bdat-tiedostoja suoraan lukevat Tableau ja pandas sekä REST-kutsut Viyaan.

Hallinto ja vaatimustenmukaisuus

Validointivaatimukset säännellyillä toimialoilla (GxP, 21 CFR Part 11, mallien riskienhallinta), rivitason tietoturva, henkilötietojen käsittely, kirjausketjut sekä versionhallinnan puuttuminen monista pitkään käytössä olleista SAS-ympäristöistä.

Mikään näistä ei ole epätavallista. Kaikki ne voidaan löytää etukäteen ja kaikki ne voidaan testata. Juuri siitä alla kuvatussa prosessissa on kyse.

Jennerin migraatioprosessi

1

Kartoitus

Inventoimme ympäristön ennen työmäärän arviointia. Lähdepuun, ajastusten ja lokien automatisoidulla analyysillä tuotamme riippuvuusgraafin ohjelmista, makroista, formaateista, kirjastoista, ulkoisista tiedostoista ja tietokantayhteyksistä, ja tunnistamme mikä todella ajetaan, mikä on kuollutta ja kenen omistuksessa mikäkin on. Jokainen yllä mainittu kategoria käydään läpi ja havainnot pisteytetään migraatiotyömäärän mukaan.

Tuotos

Inventaario- ja riskiraportti sekä kiinteähintainen ehdotus jäljellä oleville vaiheille. Jos päätätte olla jatkamatta, raportti jää teille.

2

Karakterisointi

Tämä vaihe tekee kaikesta muusta luotettavaa, ja se tehdään kokonaan nykyisessä SAS-järjestelmässänne ennen kuin mitään siirretään.

Jokaiselle laajuuteen kuuluvalle ohjelmalle rakennamme tekoälyavusteisella analyysillä karakterisointitestejä: suoritettavia määrittelyjä siitä, mitä koodi tekee tänään. Kukin testi kaappaa ohjelman kuluttamat syötteet — datajoukot, makroparametrit, ulkoiset tiedostot, tietokantapoiminnat, ympäristöasetukset — ajaa sen nykyisessä SAS-asennuksessanne ja tallentaa kaiken, mitä se tuottaa: tulosdatajoukot, lokin sisällön, paluukoodit, ODS-tulosteet, makromuuttujien tilan sekä sivuvaikutukset kuten kirjoitetut tiedostot tai lähetetyt sähköpostit.

Juuri tekoäly tekee tästä käytännöllistä yritysmittakaavassa. Kymmenentuhannen ohjelman lukeminen ja niiden käsittelemien reunatapausten päätteleminen ei ole työtä ihmisille, joilla on takaraja. Testitapausten, testiaineistojen ja vertailulogiikan tuottaminen on täsmälleen sitä laajaa, kaavamaista työtä, jossa nykyiset mallit ovat vahvoja, ja jokainen tuotettu testi validoidaan ajamalla se kuvaamaansa järjestelmää vasten. Jos testi ei mene läpi nykyisessä SAS-ympäristössänne, se ei ole testi teidän järjestelmästänne ja se hylätään.

Vertailusäännöt asetetaan tuloste kerrallaan. Datajoukot vertaillaan oletuksena täsmällisesti; numeeriset toleranssit ilmoitetaan nimenomaisesti siellä, missä liukuluvut tai iteratiiviset proseduurit tekevät bitintarkasta yhtäläisyydestä merkityksettömän; lokivertailut ovat rakenteellisia eivätkä tekstuaalisia, joten uudelleen muotoiltu NOTE ei kaada työtä, kun taas muuttunut rivimäärä kaataa. Ei-deterministiset syötteet kuten nykyinen päivämäärä ja satunnaissiemenet hallitaan, jotta sama testi antaa saman vastauksen minä päivänä tahansa. Kun tuotantodataa ei voi käyttää testaamiseen, rakennamme peitettyjä tai synteettisiä testiaineistoja, jotka kulkevat samat koodipolut.

Tuotos

Versionhallinnassa oleva testistö, jonka kattavuus on mitattu ohjelmien, makrojen ja proseduurien yli, sekä lähtötasotallenne nykyisen järjestelmänne tuloksista. Tämä testistö on teidän. Se on kirjoitettu ajettavaksi Jennerillä, SAS:lla ja kaikella muulla, joka puhuu tätä kieltä, ja sillä on arvoa migraatiosta riippumatta: useimmilla SAS-ympäristöillä ei ole koskaan ollut sellaista.

3

Migraatio

Kun lähtötaso on olemassa, migraatiosta tulee insinöörityötä, jolla on selkeä valmiin määritelmä. Pystytämme Jennerin ympäristöönne, korjaamme Discoveryssä löytyneet ympäristöasiat (polut, kirjastot, salaisuuksien hallinta, tietokantayhteydet, integraatio ajastimeen) ja ajamme koko testistön.

Jokainen epäonnistuminen luokitellaan yhteen neljästä kategoriasta:

01Jennerin vika

Koodi on oikein ja Jenner väärässä. Jenner julkaisee uusia koosteita viikoittain; asiakasmigraatioissa löytyneet viat priorisoidaan, ja epäonnistunut testi liitetään pysyvästi Jennerin omaan regressiotestistöön.

02Ympäristö

Polku, tunnus, yhteys tai asetus, joka on määritettävä. Korjataan ja ajetaan uudelleen.

03Riippuvuus erikoisuudesta

Koodi nojaa dokumentoimattomaan SAS-käyttäytymiseen. Näytämme teille tarkan rivin ja tarkan käyttäytymisen, ja valitsette joko koodin muuttamisen — jolloin testi todistaa muutoksen turvalliseksi — tai sen, että Jenner mukautuu erikoisuuteen.

04Hyväksyttävä ero

Tulos poikkeaa ilmoitetun toleranssin sisällä, tai lokiviesti on muotoiltu toisin. Dokumentoidaan ja hyväksytään, ei koskaan hiljaisesti.

Testistöä ajetaan jatkuvasti ongelmia korjattaessa, joten edistyminen on luku eikä mielipide, ja regressiot havaitaan samana päivänä kuin ne syntyvät.

Tuotos

Siirretty koodikanta, jossa koko testistö menee läpi, tai jossa jokainen jäljelle jäävä ero on kirjallisesti ratkaistu.

4

Sertifiointi

Sertifiointi on todistepaketti, jonka avulla toimeksiantajanne, tilintarkastajanne ja viranomaisenne voivat hyväksyä migraation.

Ajamme rinnakkaisjakson, jossa tuotantotyöt suoritetaan molemmissa järjestelmissä ja tulosteet vertaillaan automaattisesti samoilla säännöillä kuin testistössä. Sertifiointipaketti sisältää inventaarion, testistön ja sen kattavuuden, lähtötason, viimeisen ajon tulokset, jokaisen eron ratkaisun sekä jäljitettävyyden kustakin vaatimuksesta tai ohjelmasta niihin testeihin, jotka sen kattavat. Säännellyille asiakkaille se rakennetaan tukemaan IQ/OQ/PQ-validointia ja auditointia.

Tuotos

Allekirjoitettu sertifiointipaketti ja suositus siitä, edetäänkö vai ei.

5

Vaihto ja tuki

Vaihto suunnitellaan eräajoikkunoidenne ja SAS-lisenssinne uusimispäivän ympärille, ja peruutuspolku on testattu. Ajastimet osoitetaan uudelleen, valvonta ja hälytykset varmistetaan, ja SAS-ympäristö poistetaan käytöstä teidän aikataulullanne.

Testistö jatkaa ajamista vaihdon jälkeenkin. Koska Jenner julkaisee viikoittain, saatte jokaisen parannuksen samalla todisteella siitä, ettei mikään, mistä olette riippuvaisia, ole muuttunut. Tiiminne koulutetaan laajentamaan testistöä koodikannan kasvaessa.

Tuotos

Tuotanto Jennerillä, SAS:n alasajosuunnitelma ja regressiotestistö, joka jatkaa työtään teidän hyväksenne.

Mitä saatte

  • Täydellisen ja ajantasaisen inventaarion SAS-ympäristöstänne, mukaan lukien ne osat, joita kukaan ei enää muistanut.
  • Karakterisointitestistön, jonka kattavuus on mitattu, joka on teidän omanne ja siirrettävissä alustalta toiselle.
  • Migraation, jonka valmistuminen määritellään testituloksilla eikä päivämäärällä.
  • Sertifiointipaketin, joka on rakennettu tilintarkastajille ja viranomaisille.
  • Pysyvän suojan regressioita vastaan, Jennerillä tai missä tahansa muualla.
  • Migraatiossanne löytyneet viat korjataan tuotteeseen, ei kierretä koodissanne.

Miten toimeksiannot rakentuvat

Discovery

Kiinteähintainen ja lyhyt. Se tuottaa ehdotuksen jäljellä oleville vaiheille, hinnoiteltuna ympäristönne mitatun koon ja monimutkaisuuden mukaan eikä niitä koskevan arvion mukaan.

Karakterisointi, migraatio, sertifiointi

Toimitetaan yleensä yhtenä kiinteälaajuisena toimeksiantona, jossa välitavoitteiden hyväksyntä on sidottu testistön tuloksiin.

Vaihdon jälkeinen tuki

Saatavana vuosipalveluna sen jälkeen, kun testistö on luovutettu ja tiiminne koulutettu laajentamaan sitä.

Kustannusarvio

Pienet migraatiot ja pilotit

$1,000 – $21,000

Yleensä toteutettavissa etänä, kestoltaan viikosta kuukauteen.

Laajemmat ja monimutkaisemmat migraatiot

$52,000 – $405,000

Vaativat jonkin verran työtä paikan päällä ja/tai syvällistä toimialaosaamista, ja kestävät tavallisesti kahdesta kuuteen kuukautta.

Kaikki summat ovat Yhdysvaltain dollareina (USD).

Tähän eivät sisälly ohjelmiston lisenssimaksut; ne ovat kuitenkin hyvin selkeät ja kilpailukykyiset. Katso hinnoittelusivu.

Ota yhteyttä ammattilaispalveluihin

Aloita Discovery-vaiheesta

Lähettäkää meille kuvaus SAS-ympäristöstänne — alusta, ohjelmien likimääräinen määrä, käytössä olevat tuotteet, tietokannat ja ajastimet — niin rajaamme Discovery-toimeksiannon.