Jenner Professional Services

Migracja z SAS do Jenner Analytics

Migracja potwierdzona testami dla korporacyjnych baz kodu SAS

Twoje środowisko SAS działa. Tysiące programów, makr, formatów i zaplanowanych zadań szlifowano latami, a spora część tego, co robią, nie jest udokumentowana nigdzie poza samym kodem. Przeniesienie tego na dowolną nową platformę, choćby najbardziej zgodną, niesie jedno realne ryzyko: coś, co dotąd było poprawne, staje się subtelnie błędne, a nikt tego nie zauważa, dopóki nie zacznie to mieć znaczenia.

Jenner Professional Services usuwa to ryzyko dzięki prostej dyscyplinie. Zanim cokolwiek zmienimy, budujemy kompletny, wykonywalny zapis tego, co robi Twój obecny system. Następnie używamy tego zapisu, aby test po teście udowodnić, że zmigrowany system robi to samo.

Efektem jest migracja, którą możesz zatwierdzić na podstawie dowodów, a nie zaufania, oraz zestaw testów regresji, który zostaje u Ciebie na zawsze.

Zacznij od Discovery

Jenner to jedna z dróg, nie jedyna

Jesteśmy ekspertami od SAS, czego dowodzi stworzenie przez nas pełnej implementacji tego języka i systemu. Migracja właśnie do niego jest jednak tylko jedną z dróg, którą możesz z nami pójść.

Możemy wykorzystać naszą implementację kodu zgodnego z SAS oraz nasze praktyki oparte na testach, aby zapewnić udaną migrację do Pythona lub R, do Snowflake lub Databricks, albo do innych rozwiązań — również do Siemens SLC.

Rekomendujemy migrację na Jenner, ponieważ dla firm z istniejącą infrastrukturą SAS jest ona zarazem szybsza, mniej złożona i tańsza.

Dlaczego sama zgodność to jeszcze nie certyfikacja

Jenner wykonuje język SAS, niemal wszystkie procedury, mechanizm makr, grafikę i szeroki wachlarz połączeń z danymi. Dla większości kodu migracja sprowadza się do skierowania Jennera na te same programy. Ale korporacyjna baza kodu nigdy nie jest wyłącznie językiem. Jest też wszystkim, czego język dotyka:

Środowisko i konfiguracja

autoexec.sas, pliki konfiguracyjne, opcje systemowe (ENCODING, LOCALE, YEARCUTOFF, VALIDVARNAME, FMTSEARCH, SASAUTOS), zmienne środowiskowe, SYSPARM oraz rozmiar i czas życia biblioteki WORK.

Sekrety i poświadczenia

Hasła wpisane wprost w instrukcje LIBNAME, ciągi zakodowane przez {SAS002}, poświadczenia w plikach dołączanych przez %include, bilety Kerberos lub SSO oraz pytanie, gdzie to wszystko powinno się zamiast tego znajdować.

Łączność z bazami danych

Silniki SAS/ACCESS dla Oracle, DB2, Teradata, SQL Server, Snowflake, Hive i innych; jawny i niejawny pass-through SQL; opcje silnika wpływające na wyniki (DBCOMMIT, READBUFF, INSERTBUFF, BULKLOAD); mapowanie typów dla dat, liczb dziesiętnych i NULL; oraz zachowania, które zmieniły się po cichu, gdy SQL zaczął być wypychany do bazy zamiast wykonywany lokalnie.

Lokalizacje plików i bibliotek

Ścieżki wpisane na sztywno, litery dysków Windows kontra montowania w Linuksie, nazwy plików rozróżniające wielkość liter, udziały NFS i SMB, polecenia FILENAME PIPE i X, SYSGET oraz uprawnienia do plików.

Artefakty własnościowe

Katalogi formatów, skompilowane lub zapisane makra, indeksy, ślady audytu, widoki, biblioteki SPDE, pliki transportowe, zaszyfrowane lub skompresowane zbiory danych oraz zbiory z czasów V6/V8, które trzeba wygenerować od nowa, a nie skopiować.

Produkty po stronie serwera

Bloki RSUBMIT w SAS/CONNECT, Grid, SAS/SHARE, Stored Processes, autoryzacja przez serwer metadanych, projekty Enterprise Guide, zadania wygenerowane w DI Studio i akcje CAS w Viya. Każde ma odpowiednik na nowej platformie, ale nie identyczny.

Harmonogramowanie i orkiestracja

LSF, Control-M, cron, zależności między zadaniami, konwencje kodów powrotu, skrypty czytające logi w poszukiwaniu konkretnego tekstu NOTE/WARNING/ERROR, logika SYSERR i SYSCC oraz powiadomienia FILENAME EMAIL.

Wierność wyników

Cele ODS w postaci PDF, RTF, Excela i HTML, style PROC TEMPLATE, tagsety, czcionki, sterowniki urządzeń graficznych oraz raporty, które odbiorcy niżej w łańcuchu parsują według pozycji.

Obliczenia numeryczne i statystyka

Zaokrąglanie zmiennoprzecinkowe na granicach, kolacja sortowania i kolejność przy remisach, strumienie liczb losowych (RANUNI, RAND, STREAMINIT) nieodtwarzalne między implementacjami oraz procedury iteracyjne, których ścieżka zbieżności może się różnić w granicach tolerancji.

Kod opierający się na osobliwościach

Niezainicjowane zmienne, remerging w PROC SQL, niejawny RETAIN, ostrzeżenia o obcięciu traktowane jako normalne oraz nieudokumentowane zachowania, które dziś przypadkiem dają właściwą odpowiedź.

Integracja z całą resztą

Python przez SASPy, R, klienci Java i .NET przez IOM, JDBC do SAS/SHARE, Tableau i pandas czytające pliki .sas7bdat bezpośrednio oraz wywołania REST do Viya.

Nadzór i zgodność

Wymogi walidacyjne w branżach regulowanych (GxP, 21 CFR Part 11, zarządzanie ryzykiem modeli), bezpieczeństwo na poziomie wierszy, przetwarzanie danych osobowych, ślady audytu oraz brak kontroli wersji w wielu długo działających środowiskach SAS.

Żadna z tych rzeczy nie jest niezwykła. Wszystkie da się znaleźć z wyprzedzeniem i wszystkie da się przetestować. Właśnie po to jest poniższy proces.

Proces migracji Jennera

1

Rozpoznanie

Inwentaryzujemy środowisko, zanim oszacujemy pracę. Dzięki zautomatyzowanej analizie drzewa źródeł, harmonogramów i logów tworzymy graf zależności między programami, makrami, formatami, bibliotekami, plikami zewnętrznymi i połączeniami z bazami, a także ustalamy, co faktycznie się wykonuje, co jest martwe i co do kogo należy. Sprawdzamy każdą z powyższych kategorii, a ustalenia punktujemy według pracochłonności migracji.

Produkt prac

Raport inwentaryzacyjny i ryzyka wraz z ofertą o stałej cenie na pozostałe fazy. Jeśli zdecydujesz się nie kontynuować, raport zostaje u Ciebie.

2

Charakteryzacja

To faza, która czyni resztę wiarygodną, i odbywa się w całości na Twoim istniejącym systemie SAS, zanim cokolwiek zostanie zmigrowane.

Dla każdego programu w zakresie budujemy, z pomocą analizy wspieranej przez AI, testy charakteryzujące: wykonywalne specyfikacje tego, co kod robi dzisiaj. Każdy test przechwytuje dane wejściowe, które program pobiera — zbiory danych, parametry makr, pliki zewnętrzne, wyciągi z baz, ustawienia środowiska — uruchamia go na Twojej obecnej instalacji SAS i zapisuje wszystko, co produkuje: zbiory wynikowe, treść logu, kody powrotu, wyjście ODS, stan zmiennych makro oraz efekty uboczne, takie jak zapisane pliki czy wysłane wiadomości.

To właśnie AI czyni to wykonalnym w skali korporacyjnej. Przeczytanie dziesięciu tysięcy programów i wywnioskowanie przypadków brzegowych, które każdy z nich obsługuje, nie jest pracą dla ludzi z terminem. Generowanie przypadków testowych, danych testowych i logiki porównania to dokładnie ten rodzaj obszernej, wzorcowej pracy, w której dzisiejsze modele są mocne, a każdy wygenerowany test jest walidowany przez uruchomienie go na systemie, który opisuje. Jeśli test nie przechodzi na Twoim obecnym SAS, nie jest testem Twojego systemu i zostaje odrzucony.

Reguły porównania ustalamy dla każdego wyniku osobno. Zbiory danych domyślnie porównujemy dokładnie; tolerancje liczbowe deklarujemy wprost tam, gdzie liczby zmiennoprzecinkowe lub procedury iteracyjne czynią równość bit po bicie bezsensowną; porównania logów są strukturalne, a nie tekstowe, więc przeredagowana NOTE nie wywraca zadania, natomiast zmieniona liczba wierszy tak. Wejścia niedeterministyczne, takie jak bieżąca data i ziarna losowe, są kontrolowane, aby ten sam test dawał tę samą odpowiedź każdego dnia. Tam, gdzie nie można użyć danych produkcyjnych do testów, budujemy zamaskowane lub syntetyczne dane testowe przechodzące tymi samymi ścieżkami kodu.

Produkt prac

Wersjonowany zestaw testów z mierzonym pokryciem programów, makr i procedur oraz zapis odniesienia wyników z Twojego obecnego systemu. Ten zestaw należy do Ciebie. Jest napisany tak, aby działał na Jennerze, na SAS i na wszystkim innym, co mówi tym językiem, i ma wartość niezależnie od migracji: większość środowisk SAS nigdy takiego nie miała.

3

Migracja

Gdy zapis odniesienia jest gotowy, migracja staje się zadaniem inżynierskim z jasną definicją ukończenia. Stawiamy Jennera w Twoim środowisku, porządkujemy elementy środowiskowe znalezione w fazie Discovery (ścieżki, biblioteki, zarządzanie sekretami, połączenia z bazami, integrację z harmonogramem) i uruchamiamy pełny zestaw.

Każde niepowodzenie trafia do jednej z czterech kategorii:

01Usterka Jennera

Kod jest poprawny, a myli się Jenner. Jenner wydaje nowe kompilacje co tydzień; usterki znalezione podczas migracji klientów mają priorytet, a niezaliczony test na stałe trafia do własnego zestawu regresji Jennera.

02Środowisko

Ścieżka, poświadczenie, połączenie lub opcja, którą trzeba ustawić. Poprawiamy i uruchamiamy ponownie.

03Zależność od osobliwości

Kod opiera się na nieudokumentowanym zachowaniu SAS. Pokazujemy konkretną linię i konkretne zachowanie, a Ty wybierasz: zmienić kod — test dowodzi wtedy, że zmiana jest bezpieczna — albo sprawić, by Jenner odwzorował tę osobliwość.

04Dopuszczalna różnica

Wynik różni się w ramach zadeklarowanej tolerancji albo komunikat w logu jest inaczej sformułowany. Dokumentujemy i zatwierdzamy, nigdy nie przyjmujemy tego po cichu.

Zestaw działa w sposób ciągły w trakcie naprawiania problemów, więc postęp jest liczbą, a nie opinią, a regresje wychwytywane są tego samego dnia, w którym powstają.

Produkt prac

Zmigrowana baza kodu, w której pełny zestaw przechodzi, albo w której każda pozostała różnica została rozstrzygnięta na piśmie.

4

Certyfikacja

Certyfikacja to pakiet dowodowy, dzięki któremu Twój sponsor, audytorzy i regulatorzy mogą zaakceptować migrację.

Prowadzimy okres pracy równoległej, w którym zadania produkcyjne wykonują się na obu systemach, a wyniki są porównywane automatycznie według tych samych reguł co w zestawie testów. Pakiet certyfikacyjny obejmuje inwentaryzację, zestaw testów i jego pokrycie, zapis odniesienia, wyniki końcowego przebiegu, rozstrzygnięcie każdej różnicy oraz identyfikowalność od każdego wymagania czy programu do testów, które go pokrywają. Dla klientów regulowanych układamy go tak, aby wspierał walidację IQ/OQ/PQ i audyt.

Produkt prac

Podpisany pakiet certyfikacyjny i rekomendacja co do dalszych kroków.

5

Przełączenie i wsparcie

Przełączenie planujemy wokół Twoich okien wsadowych i daty odnowienia licencji SAS, ze sprawdzoną ścieżką wycofania. Harmonogramy przekierowujemy, monitorowanie i alerty potwierdzamy, a środowisko SAS wygaszamy zgodnie z Twoim kalendarzem.

Zestaw testów działa dalej po przełączeniu. Ponieważ Jenner wydaje co tydzień, każde usprawnienie otrzymujesz z tym samym dowodem, że nic, na czym polegasz, się nie zmieniło. Twój zespół szkolimy w rozbudowie zestawu wraz z rozrostem kodu.

Produkt prac

Produkcja na Jennerze, plan wygaszenia SAS i zestaw testów regresji, który dalej pracuje dla Ciebie.

Co otrzymujesz

  • Kompletną, aktualną inwentaryzację środowiska SAS, łącznie z tymi częściami, o których nikt już nie pamiętał.
  • Zestaw testów charakteryzujących z mierzonym pokryciem, będący Twoją własnością i przenośny między platformami.
  • Migrację, której ukończenie definiują wyniki testów, a nie data w kalendarzu.
  • Pakiet certyfikacyjny przygotowany dla audytorów i regulatorów.
  • Trwałą ochronę przed regresją, na Jennerze i gdziekolwiek indziej.
  • Usterki znalezione podczas Twojej migracji naprawiamy w produkcie, zamiast obchodzić je w Twoim kodzie.

Jak układamy współpracę

Discovery

Stała cena i krótki czas trwania. Powstaje z niej oferta na pozostałe fazy, wyceniona według zmierzonej wielkości i złożoności Twojego środowiska, a nie według ich oszacowania.

Charakteryzacja, migracja, certyfikacja

Zwykle dostarczane jako jedna współpraca o stałym zakresie, z odbiorami przy kamieniach milowych powiązanymi z wynikami zestawu testów.

Wsparcie po przełączeniu

Dostępne jako usługa roczna, po przekazaniu zestawu testów i przeszkoleniu Twojego zespołu w jego rozbudowie.

Orientacyjne koszty

Małe migracje i projekty pilotażowe

$1,000 – $21,000

Zwykle da się je przeprowadzić zdalnie, a trwają od tygodnia do miesiąca.

Większe i bardziej złożone migracje

$52,000 – $405,000

Wymagają części prac na miejscu i/lub pogłębionej wiedzy dziedzinowej, a trwają zazwyczaj od dwóch do sześciu miesięcy.

Wszystkie kwoty podano w dolarach amerykańskich (USD).

Nie obejmuje to opłat licencyjnych za oprogramowanie; te są jednak bardzo przejrzyste i konkurencyjne. Zobacz stronę z cennikiem.

Skontaktuj się z usługami profesjonalnymi

Zacznij od Discovery

Prześlij nam opis swojego środowiska SAS — platformę, przybliżoną liczbę programów, używane produkty, bazy danych i harmonogramy — a określimy zakres fazy Discovery.