Følgende artikel hjælper dig med: Jak zwiększyć niezawodność platformy danych i przyspieszyć SaaS
Z tytułu jestem dyrektorem technicznym, ale sercem inżynierem danych.
Trudno nie poczuć ukłucia zazdrości wobec moich kolegów z branży inżynierii oprogramowania, kiedy czytam (OK, przelotnie przeglądam) umowy licencyjne na usługi popularnych rozwiązań SaaS i widzę umowną gwarancję dostępności na poziomie 99,9% (lub więcej!).
Mój współzałożyciel i ja przeprowadziliśmy formalne wywiady z setkami zespołów zajmujących się danymi przed uruchomieniem naszego startupu i wiemy, że większość z nich nie osiąga takiego poziomu niezawodności w zakresie swoich wewnętrznych operacji.
To dobry dzień, kiedy wszystkie dashboardy się odświeżyły, a od znajomych z marketingu nie słyszałeś, że „dane wyglądają śmiesznie”.
Poważne konsekwencje sprawiły, że niezawodność SaaS stała się priorytetem
Nabieram otuchy, wiedząc, że nie zawsze tak było. W 2004 roku wyszukiwarka Google przestała działać na wiele godzin z powodu wirusa MyDoom. Netflix nie działał w Wigilię 2012 roku z powodu awarii AWS. W 2015 r. wewnętrzny błąd DNS spowodował awarię ekosystemu sklepu z aplikacjami Apple na 12 godzin.
Masz pomysł. Inżynierowie oprogramowania mieli dziesięciolecia na doskonalenie swoich najlepszych praktyk w zakresie niezawodności oprogramowania. Nie mieli wyboru – koszt przestojów był zbyt wysoki.
W 2004 roku Google uzyskało około 86 miliardów zapytań. Obecnie obsługuje tyle zapytań w nieco ponad 10 dni. W 2018 r. może wystąpić godzina przestoju podczas Prime Day kosztowało Amazona utratę sprzedaży aż do 100 milionów dolarów.
Z drugiej strony konsekwencje przestoju danych – okresu, w którym dane są częściowe, błędne, brakujące lub z innego powodu niedokładne – nie są postrzegane jako poważne. To znaczy do niedawna.
Przerwa w przesyłaniu danych jest droższa niż myślisz
Dane nie tylko stały się szerzej stosowane w całym przedsiębiorstwie, ale także zostały uwolnione z pulpitów nawigacyjnych w celu informowania modeli uczenia maszynowego lub trafiały bezpośrednio do systemów operacyjnych.
Dzięki technologiom hurtowni danych, takim jak Snowflake, operacje na danych można skalować w sposób ekonomiczny. Obecnie w wielu przypadkach, np. w przypadku platform reklamowych lub handlowych, dane stanowią kluczową część oferty dla klientów. Dane TO produkt.
Jednocześnie inżynierowie danych zatrudniają się dłużej i są drożsi na dzisiejszym ciasnym rynku pracy. The Raport dotyczący zawodów technicznych w Dice 2020 stwierdził, że inżynier danych to najszybciej rozwijający się zawód w branży technologicznej, przy wzroście liczby otwartych stanowisk o 50% rok do roku, a liczba otwartych stanowisk Raport 2022 ma średnią pensję wynoszącą 117 295 dolarów.
Dane telemetryczne produktu z naszej platformy obserwacji danych, która zapewnia kompleksowy dostęp do setek stosów danych, pokazują, że na każde 15 tabel w hurtowni danych będzie przypadać około jednego problemu z danymi rocznie. Jeśli spojrzeć na hipotetyczną firmę średniej wielkości z 3500 tabelami, której identyfikacja i rozwiązanie każdego problemu zajmuje około 8 godzin, oznacza to około 1866 godzin przestojów w przesyłaniu danych.
Jak więc inżynierowie danych mogą wyciągnąć kartkę z podręcznika inżynierii oprogramowania i zacząć budować platformy danych, które są tak niezawodne jak rozwiązania SaaS? Musimy dojrzeć i ujednolicić pojawiające się najlepsze praktyki dotyczące ludzi, procesów i technologii.
Ludzie
Google ukształtowało ewolucję inżyniera niezawodności witryn jako specjalizacji i poddziedziny inżynierii oprogramowania. Ich Podręcznik SRE pozostaje kanonem.
Dzięki tej innowacji można było teraz w prosty i bezpośredni sposób zapewnić niezawodność i odpowiedzialność za przestoje. To, co zaczęło się jako stanowisko pilota myśliwca, słynące z przestojów w walce powietrznej, przekształciło się w wyważony krok w kierunku spójnej, powtarzalnej doskonałości.
Przestrzeń inżynierii danych przechodzi obecnie tę samą ewolucję. Chociaż wiele zespołów zajmujących się danymi nadal reaguje doraźnie i spędza do 40% swojego czasu pracy na rozwiązywaniu problemów z jakością danych zgodnie z Forresterainne np DrzwiDash, Usługi transmisji strumieniowej DisneyaI Equifax zaczęli zatrudniać inżynierów ds. niezawodności danych, aby przyjąć bardziej proaktywne podejście.
Jeśli zamierzasz traktować dane jak produkt, potrzebujesz także menedżera produktu danych. Posiadanie kogoś, kto skupia się na potrzebach długoterminowych poza codzienną pracą, jest kluczowym elementem układanki dotyczącej niezawodności danych.
W końcu platformy danych to w większości narzędzia wewnętrzne i nie muszą być pierwszymi na rynku. Należy je budować na dłuższą metę, ponieważ masz tylko jedną szansę na wywarcie pozytywnego pierwszego wrażenia na użytkownikach, tak kluczowego dla ich przyjęcia.
Platforma Big Data firmy Uber budowany był przez pięć lat, stale ewoluując wraz z potrzebami biznesu; Pinteresta przeszedł kilka iteracji swojego podstawowego produktu do analizy danych; i przewodzi stadzie, LinkedIn buduje i rozwija swoją platformę danych od 2008 roku.
Proces
Niewygodna prawda jest taka, że istnieje sporo obszarów, w których zespoły zajmujące się danymi muszą dopracować nasze procesy niezawodności. Pomiar jakości danych jest jednym z takich obszarów.
Większość zespołów nie ma danych na temat czasu wykrycia i rozwiązania problemów związanych z danymi. Niektórzy śledzą liczbę incydentów, ale dotyczy to tylko tych incydentów, które wyłapią. Dryfowanie danych, niejasna własność zasobów danych, nieprzejrzyste procesy selekcji incydentów i inne czynniki utrudniają śledzenie jakości danych.
Jednakże zespoły zajmujące się danymi powinny mimo to starać się nawiązywać połączenia z interesariuszami biznesowymi i kodyfikować umowy SLA dotyczące danych (w końcu wszystkie produkty SaaS mają umowy SLA!), które obejmują czas pracy i inne wskaźniki kondycji danych.
Można również wdrożyć silniejsze procesy DevOps lub DataOps. Projekty powinny mieć charakter iteracyjny i podlegać silnemu procesowi wzajemnej oceny w aktywnym środowisku.
Nie należy również pomijać konwencji dotyczących zarządzania i nazewnictwa; nigdy nie zobaczysz mikrousługi nazwanej na cześć osoby zajmującej się inżynierią oprogramowania, ale bardzo, bardzo powszechną praktyką każdego inżyniera jest posiadanie własnego schematu w magazynie.
Technologia
Infrastruktura technologiczna związana z niezawodnością SaaS znacznie się rozwinęła w ostatnich latach. Przestrzeń niezawodności danych również przeżyła swój renesans. Rozwiązania takie jak Snowflake, Databricks, Fivetran, dług i inne szybko stworzyły podstawę nowoczesnego stosu danych w chmurze.
Testowanie kodu za pomocą narzędzi takich jak Jenkins nie tylko jest regularną praktyką, ale rozwiązania te są również wykorzystywane przez firmy monitorujące, takie jak DataDog czy New Relic, które monitorują aplikacje w chmurze i natychmiast ostrzegają zespoły, gdy w systemach wystąpią problemy, które mogą mieć wpływ na wydajność.
The obserwowalność danych i przestrzeń testowa rozwijają się równolegle, więc teraz inżynierowie danych, podobnie jak ich bracia zajmujący się inżynierią oprogramowania, mogą być pewni, że jako pierwsi dowiedzą się, kiedy dane pójdą źle lub ich system ulegnie awarii.
Niestety nie wszystkie rozwiązania zapewniające niezawodność oprogramowania mają pokrewieństwo z inżynierią danych. Jedną z największych obecnie luk jest równoległe rozwiązanie dla gita. Innymi słowy, rozwiązanie do wzajemnej oceny w aktywnym środowisku w celu koordynowania rozwijającego się kodu i przenoszenia go z fazy testowej do produkcyjnej.
Możliwa jest niezawodność danych na poziomie SaaS
Pięć dziewiątek czasu pracy wydaje się niemożliwym punktem odniesienia dla platform danych, ale zespoły inżynierii danych mogą przekroczyć tę poprzeczkę, kładąc nacisk na niezawodność swoich ludzi, procesów i technologii.
Lior jest dyrektorem technicznym i współzałożycielem Monte Carlo, firma zajmująca się niezawodnością danych i twórca pierwszej w branży kompleksowej platformy obserwacji danych. Mieszka w rejonie Zatoki San Francisco. Możesz się z nim połączyć LinkedIn, Świergotlub nasz blogu