Dzisiaj mam dla Was dwa bydlęta z firmowych blogów – o użyciu Tracingu w Slacku oraz sposobie utrzymania jakości danych w Uberze. Całość dodatkowo doprawiona została informacją o Chińskim mini-GDPR – tak, to się naprawdę dzieje 😱
1. Jak Slack używa tracingu do śledzenia wydajności aplikacji ️♀️
Postmodernizm się nam w branży szerzy.
Podejrzewam, że każdy z Was ma kolegę/koleżankę w pracy, twierdzącego że IT weszło w etap stagnacji i “wszystko już było”. Że taki no-code to już próbowaliśmy jako branża kilka razy, reaktywność ma korzenie w latach 90-tych, a async/await i korutyny to w ogóle koncept z lat 60-tych. Właściwie teraz to tylko implementujemy koncepcje dawnych mistrzów, robiąc nic nie znaczące poprawki i miksując stare pomysły.
W poprzednim projekcie miałem do czynienia z dość paskudnym Legacy, przepisywanym na nowocześniejszy stack technologiczny. Dzięki temu, miałem sporo czasu do przemyśleń i refleksji (np. podczas oczekiwania, aż w czwartek przejdą batchowe joby zawierające moje zmiany z poniedziałku – to są bydlęta i feedback loop naprawdę czasem bywa długi ). Moje myśli często odpływały w kierunku próby obalenia tezy postawionej w pierwszym akapicie: próby zrozumienia, w czym tak naprawdę systemy dzisiaj pisane są lepsze od tych historycznych. Z perspektywy czasu i grzebania się w bagnie ETLowych “jobów”, mam pewne odpowiedzi – nauczeni problemami przeszłości, dużo większy nacisk kładziemy na “zrozumialność” naszych systemów.
Tego właśnie przejawem jest np. Immutable Infrastructure, a pośrednio nawet Continuous Integration ze scentralizowaną automatyzacją wszystkich kroków budowania aplikacji. Jednak chyba najjaskrawszym przykładem będzie próba okiełznania problemów związanych ze złożonymi systemami, która dokonuje się poprzez tak zwane “Observability”.
Cały ten nieco przydługi wstęp prowadzi mnie do nowej publikacji od Slacka. Jest to bardzo dobry case study z wdrożenia tracingu w celu rozwiązania bugów związanych z performancem aplikacji. Przykład Slacka jest bardzo interesujący – w celu zrozumienia “dlaczego użytkownik zaobserwował laga”, musieli oni połączyć w jednym logicznym ciągu przyczynowo-skutkowym zapytania SQLite na mobilnych klientach, opóźnienia sieci, kolokowanie requestów, czy takie trywialne zdawałoby się działania jak choćby parsowanie JSONów, potrafiące dołożyć zaskakująco duże opóźnienie.
Potraktujcie poprzedni akapit jako zajawkę z mojej strony, bardzo polecam przeczytać ten tekst. W związku z faktem, że Slack nie zaimplementował bezpośrednio OpenTracingu, jak robi to każdy “szaraczek”, jego publikacja wchodzi nieco głębiej niż większość podobnych. Zamiast tutoriala jak użyć gotowej biblioteki, mamy tutaj pokazane problemy na jakie można trafić pisząc własny tracing. Jeżeli nie jesteś Slackiem, to ogólnie nie polecamy (zwłaszcza w dobie, gdy OpenTracing jest nienajgorszym branżowym standardem) – jednak świadomość, co tam się dzieje “pod maską”, pomaga efektywniej używać istniejącego toolingu.
Źródła:
Zainstaluj teraz i czytaj tylko dobre teksty!
2. Piekło zamarzło, a Chiny wprowadzają swój “GDPR”
Kiedy Europa wprowadziła GDPR, krytycy podnosili głosy, że
my się regulujemy, a świat będzie swobodnie korzystał z danych użytkowników i nam odskoczy.
Następnie, gdy Kalifornia wprowadzała California Consumer Privacy Act (CCPA), popularne były komentarze
no to Chińczycy teraz wszystkich zaorają, u nich to jest prawdziwa swoboda.
Każda nowa regulacja w szeroko pojętym zachodzie spotyka się mniej więcej z podobną krytyką.
Przyznam prywatnie, że też w tej kwestii sam jestem nieco rozdarty, biorąc pod uwagę że globalizacja nam się odrobinkę sypie i świat robi się “hiperkompetetywny.” Jednocześnie jednak, okazuje się, że również w Chinach powoli „dziki zachód” zaczyna się kończyć.
Od pierwszego maja aplikacje w Chinach nie będą mogły już zbierać nadmiarowych danych, będą też musiały potrafić się wytłumaczyć z celu trackowania użytkownika. Oficjalnie jest to motywowane dbaniem o obywateli i ich dobro, niektórzy wskazują jednak na fakt, że nawet chińskie władze przestraszyły się potęgi swoich gigantów IT. Na to może wskazywać choćby np. zapowiedzi nowego prawa antymonopolowego.
Rok 2021 na całym świecie zapowiada się stać pod znakiem wszelkich regulacji (nie jest to pierwszy raz kiedy informacja o takowych trafia do naszej soboty), ale będziemy przyglądać się rozwojowi sytuacji w Chinach pod tym kątem.
BTW: Cały świat się śmiał z Kubusia Puchatka – teraz nieco podobny ton jest używany w komentowaniu wydarzeń w Polsce
Źródła:
Zainstaluj teraz i czytaj tylko dobre teksty!
3. Jak Uber zadbał o jakość swoich danych
A na koniec mamy dla Was bardzo ciekawy artykuł z podwórka Ubera.
Nasz zespół Data Science (pozdrawiam jeśli czytacie ) zawsze powtarza, że jeśli chodzi o pracę z danymi to “Garbage In, Garbage Out”. Bardzo podobnym tonem operuje wspomniany tekst – jest to “holistyczna” pozycja, która zamiast skupiać się na pojedynczym elemencie całego procesu każe spojrzeć na niego jako na całość i zastanowić się nad jakością tego czym karmimy nasze modele.
Dlatego też pomimo że nie jest to lektura lekka, gdyż porusza mnogość tematów (używanie w kontekście danych technik znanych z wytwarzania oprogramownia jak np. testowanie, istotność “ownershipu” nad danymi czy też kryteria jakimi powinniśmy się kierować przy rekrutacji) potraktowałbym ją jako w zasadzie publikacje obowiązkową, nawet jeśli nie zajmujesz się w pracy szeroko pojętym Data Science. Część lekcji które artykuł zawiera (jak np. przechowywanie odpowiedniej ilości kontekstu) może okazać się kluczowa w momencie, gdy ktoś będzie chciał wykorzystać generowane przez Ciebie dane w ML. Dodatkowo, część sugestii (np. standaryzacja metryk) jest aplikowalna w znacznie szerszym kontekście.
Ogólnie polecam czytanie zarówno bloga Ubera, jak i Slacka (lub naszego Keep Upa, w którym często artykuł z obu się znajdują) – są to jeden z lepiej pisanych firmowych blogów, co mam nadzieje udowodniliśmy tą edycja naszej soboty