Data Engineer or die: príbeh jedného vývojára

Začiatkom decembra som urobil osudnú chybu a urobil som zlomový bod vo svojom živote ako vývojár a prestúpil som do tímu Data Engineering (DE) v rámci spoločnosti. V tomto článku sa podelím o niekoľko postrehov, ktoré som urobil počas dvoch mesiacov práce v DE tíme.

Data Engineer or die: príbeh jedného vývojára

Prečo dátové inžinierstvo?

Moja cesta do DE začala v lete 2019, keď sme Xneg Poďme do Škola distribuovaných výpočtov, a tam som dosiahol osvietenie. Začal som sa o tému zaujímať, študovať algoritmy a dokonca aj o nich zapísať, a potom sa zamyslel nad rozsahom aplikácie a rýchlo zistil, že praktickou aplikáciou v našej spoločnosti sú distribuované databázy.

Čo presne náš tím robí? My, ako všetci módni chlapci a dievčatá, sa chceme stať Data Driven Company. A aby to bolo možné, musíme aspoň vybudovať spoľahlivé úložisko, ktoré bude možné použiť na zostavenie akýchkoľvek reportov, ktoré spoločnosť potrebuje. Najdôležitejšie však je, že dátam v tomto úložisku treba dôverovať. Navyše pomocou týchto údajov musíte byť schopní obnoviť stav systému v čase t. Všetko to komplikuje skutočnosť, že žijeme v odvážnom novom svete mikroslužieb a z tejto ideológie vyplýva, že každá služba implementuje svoju malú funkcionalitu, jej databáza je jej vlastným biznisom a môže ju vymazať minimálne každý deň, ale napr. zároveň musíme byť schopní prijímať a spracovávať stav služby.

Ak chcete byť riadení dátami, najprv sa staňte riadenými udalosťami

Nie také jednoduché. Udalosti sú rôzne a vývojár a dátový inžinier sa na ne pozerajú inak. Rozprávanie o udalostiach je téma na samostatný článok, takže to tu nebudem rozoberať. Navyše, takýto článok už napísal som istý Martin Fowler, vavríny mu neuberiem, nech sa tiež preslávi.

Vo všeobecnosti je o čom premýšľať a preto je táto oblasť atraktívna. Náhodou sa stáva, že dátový inžinier je v našej spoločnosti oveľa širšia oblasť zodpovednosti ako len osoba, ktorá píše ETL/ELT pipeline (ak neviete, čo tieto skratky znamenajú, príďte na stretnúť sa. Ako kontextová reklama).

Zaoberáme sa architektúrou úložísk, dátovým modelovaním, otázkami bezpečnosti dát a samozrejme aj samotnými pipelines. Musíme sa tiež uistiť, že na jednej strane naša prítomnosť nie je pre vývojárov produktov veľmi zaťažujúca a musia byť čo najmenej rozptyľovaní našimi požiadavkami pri zarezávaní nových funkcií do systému, a na druhej strane je potrebné ich poskytnúť analytikom a BI tímom vhodne usporiadané v úložných údajoch. Tak žijeme.

Ťažkosti pri prechode z vývoja

Prvý deň v práci som sa stretol s množstvom ťažkostí, o ktoré sa chcem s vami podeliť.

1. Ako prvé som videl absenciu tulingu a nejakých praktík. Vezmime si napríklad pokrytie kódu pomocou testov. Máme vo vývoji stovky testovacích rámcov. Pri práci s dátami je všetko komplikovanejšie. Áno, môžeme testovať ETL potrubia na testovacích dátach, ale musíme to všetko robiť ručne a hľadať riešenia pre každý konkrétny prípad. V dôsledku toho je pokrytie testom oveľa horšie. Našťastie existuje ďalšia vrstva spätnej väzby vo forme monitorovania a protokolov, ale to už vyžaduje, aby sme reagovali skôr reaktívne ako proaktívne, čo je zúrivé a znervózňujúce.

2. Svet z pohľadu DE vôbec nie je taký, ako sa zdá bežnému vývojárovi produktov (no, čitateľ taký samozrejme nie je a všetko už vie, ale ja som nevedel a teraz makám to hore). Ako vývojár si vytvorím vlastnú mikroslužbu, vložím údaje do [databázy podľa vlastného výberu], uložím tam svoj stav, získam niečo podľa ID a je to v poriadku. Služba je pomalá, objednávky sú mätúce, to je všetko. Požiadajú ma, aby som hľadal svoj štát v inej službe, takže hodím udalosť do nejakého RabbitMQ a je to. A tu sme sa opäť vrátili k problematike udalostí opísaných vyššie.

To, čo služba potrebuje pre operatívnu prácu, nám pri historických údajoch nevyhovuje, a tak sa začína otázka prepracovania servisných zmlúv a úzkej spolupráce s vývojovými tímami. Ani si neviete predstaviť, koľko hodín nám trvalo, kým sme sa zhodli: aký je Event Driven v našej spoločnosti.

3. Treba myslieť hlavou. Nie, nechcem tým povedať, že vývojári nerozmýšľajú (hoci kto som, aby som hovoril za všetkých), ide len o to, že pri vývoji produktov už veľmi často máte nejakú architektúru a z nevybavených vecí odstrihávate rôzne miešania. To si, samozrejme, vyžaduje plánovanie a premýšľanie, ale toto je práca s prúdom, kde hlavným problémom je jednoducho robiť to dobre a efektívne.

Pre nás to nie je také jednoduché, pretože presun rôznych systémových komponentov z teplého a útulného monolitu do sveta divokej mikroservisnej džungle nie je taký jednoduchý. Keď služba začne chrliť udalosti, musíte prehodnotiť logiku naplnenia úložiska, pretože dáta teraz vyzerajú inak. Tu treba veľa a dôkladne premýšľať, už nie ako vývojár, ale ako dátový inžinier. Je to normálny príbeh, keď trávite dni so zápisníkom a perom alebo s fixkou na tabuli. Je to veľmi ťažké, nerád premýšľam, milujem aj produkciu.

4. Azda najdôležitejšie sú informácie. Čo robíme, keď nám chýbajú vedomosti? Kto povedal stackoverflow? Vezmite túto osobu z miestnosti. Chodíme čítať dokumenty, knihy na túto tému a existuje aj komunita, ktorá organizuje fóra, stretnutia a konferencie. Dokumentácia je skvelá, ale, žiaľ, môže byť neúplná. Cosmos DB používame v mnohých projektoch. Veľa šťastia pri čítaní dokumentácie k tomuto produktu. Knihy sú jedinou záchranou, našťastie existujú a dajú sa nájsť, obsahujú veľa základných vedomostí a treba veľa a neustále čítať. Problém je však v komunite.

Teraz je ťažké nájsť v našom okolí aspoň jednu adekvátnu konferenciu alebo stretnutie. Nie, samozrejme, existuje veľa stretnutí so slovom Data, ale vedľa tohto slova sú zvyčajne zvláštne skratky ako ML alebo AI. Takže toto nie je pre nás, hovoríme o tom, ako vybudovať skladovacie zariadenia, a nie o tom, ako sa namazať neurónmi. Títo hipsteri prebrali všetko. V dôsledku toho sme bez komunity. Mimochodom, ak ste Data Engineer a poznáte dobré komunity, napíšte do komentárov.

Závery a oznámenie o stretnutí

S čím skončíme? Moja prvá skúsenosť mi hovorí, že pocit v koži dátového inžiniera sa bude hodiť každému vývojárovi. Len nám to umožňuje pozerať sa na veci inak a nečudovať sa, keď nám tečú oči krvou, keď vidíme, ako vývojári zaobchádzajú so svojimi údajmi. Takže, ak je vo vašej spoločnosti DE, stačí sa s týmito chalanmi porozprávať, dozviete sa veľa nového (o sebe).

A nakoniec vyhlásenie. Keďže je ťažké nájsť stretnutia na našu tému počas dňa, rozhodli sme sa urobiť si vlastné. Prečo sme horší? Našťastie máme úžasný Schvepsss a naši priatelia z Laboratórium nových profesií, ktorí majú rovnako ako my pocit, že dátoví inžinieri sú nespravodlivo ukrátení o pozornosť.

Pri tejto príležitosti pozývam všetkých, ktorým záleží, aby prišli na naše prvé komunitné stretnutie so sľubným názvom “DE or DIE”, ktoré sa uskutoční 27.02.2020. februára XNUMX v kancelárii Dodo Pizza. Podrobnosti na TimePad.

Ak sa niečo stane, budem tam, môžete mi osobne povedať do očí, ako sa mýlim s vývojármi.

Zdroj: hab.com

Pridať komentár