Дата Енгинеер или умри: прича једног програмера

Почетком децембра направио сам фаталну грешку и направио прекретницу у свом животу као програмер и прешао у тим за Дата Енгинееринг (ДЕ) у оквиру компаније. У овом чланку ћу поделити нека запажања која сам направио током два месеца рада у ДЕ тиму.

Дата Енгинеер или умри: прича једног програмера

Зашто инжењеринг података?

Моје путовање у ДЕ почело је у лето 2019, када смо Кснег идемо у Школа дистрибуираног рачунарства, и ту сам постигао просветљење. Почео сам да се занимам за тему, проучавам алгоритме, па чак и о њима то врите, а затим размислио о обиму примене и брзо открио да су практична примена у нашој компанији дистрибуиране базе података.

Шта тачно ради наш тим? Ми, као и сви модерни дечаци и девојке, желимо да постанемо компанија вођена подацима. А да би то постало могуће, потребно је да изградимо барем поуздано складиште, које може да се користи за прављење извештаја који су потребни компанији. Али најважније је да се подацима у овом складишту мора веровати. Штавише, користећи ове податке, морате бити у могућности да вратите стање система у време т. Све ово компликује чињеница да живимо у храбром новом свету микросервиса, а ова идеологија подразумева да сваки сервис имплементира своју малу функционалност, његова база података је свој посао и може да је брише бар сваки дан, али на истовремено морамо бити у могућности да примимо и обрадимо стање услуге.

Ако желите да будете вођени подацима, прво постаните вођени догађајима

Није тако једноставно. Догађаји су различити, а програмер и инжењер података на њих гледају другачије. Разговор о догађајима је тема за посебан чланак, тако да нећу улазити овде. Поред тога, такав чланак је већ написао извесни Мартин Фаулер, нећу му одузети ловорике, нека се и он прослави.

Генерално, има о чему да се размишља и зато је овај крај атрактиван. Десило се да је у нашој компанији Дата Енгинеер много шира област одговорности него само особа која пише ЕТЛ/ЕЛТ цевоводе (ако не знате шта значе ове скраћенице, дођите на срести. Као контекстуално оглашавање).

Бавимо се архитектуром складиштења, моделирањем података, питањима везаним за безбедност података и самим цевоводима, наравно. Такође морамо да се уверимо да, с једне стране, наше присуство није много оптерећујуће за програмере производа и да морају да буду што мање ометани нашим захтевима приликом уношења нових функција у систем, а са друге стране, ми потребно их је обезбедити на погодан начин распоређене у подацима за складиштење за аналитичаре и БИ тим. Тако ми живимо.

Потешкоће при преласку из развоја

Првог дана рада наишао сам на низ потешкоћа које желим да поделим са вама.

1. Прво што сам видео је одсуство тулинга и неких пракси. Узмимо, на пример, покривеност кода тестовима. Имамо стотине оквира за тестирање у развоју. Када се ради са подацима, све је компликованије. Да, можемо тестирати ЕТЛ цевоводе на тестним подацима, али све то морамо да радимо ручно и тражимо решења за сваки конкретан случај. Као резултат тога, покривеност тестом је много лошија. На срећу, постоји још један слој повратних информација у облику праћења и евиденције, али то већ захтева од нас да реагујемо реактивно, а не проактивно, што је бесни и узнемирујуће.

2. Свет из перспективе ДЕ уопште није онакав какав се чини обичном програмеру производа (па, читалац, наравно, није такав, и он већ све зна, али ја нисам знао и сад се зајебавам горе). Као програмер, креирам сопствену микроуслугу, стављам податке у [базу података по вашем избору], тамо чувам своје стање, добијам нешто по ИД-у и све је у реду. Услуга је спора, поруџбине су збуњујуће, то је све. Траже од мене да потражим своју државу у другом сервису, па ћу бацити догађај у неки РаббитМК и то је то. И ту смо се поново вратили на питање горе описаних догађаја.

Оно што је сервису потребно за оперативни рад не одговара нам за историјске податке, па се поставља питање прераде сервисних уговора и блиског рада са развојним тимовима. Не можете ни да замислите колико нам је сати требало да се сложимо: какав је он Евент Дривен у нашој компанији.

3. Треба мислити својом главом. Не, не мислим да програмери не размишљају (мада ко сам ја да говорим у име свих), већ само у развоју производа врло често већ имате неку врсту архитектуре, а из заосталих сечете различите промене. Наравно, ово захтева планирање и промишљање, али ово је стреам рад, где је главни проблем једноставно то учинити добро и ефикасно.

За нас то није тако једноставно јер пренос различитих компоненти система из топлог и удобног монолита у свет дивље микросервисне џунгле није тако једноставан. Када сервис почне да избацује догађаје, потребно је да преиспитате логику пуњења складишта, јер подаци сада изгледају другачије. Овде морате много и темељно размишљати, не више као програмер, већ као инжењер података. То је нормална прича када проводите дане са свеском и оловком или са маркером на табли. Веома је тешко, не волим да размишљам, волим и продукцију.

4. Можда је најважнија информација. Шта да радимо када нам недостаје знања? Ко је рекао стацковерфлов? Изведите ову особу из собе. Идемо да читамо документе, књиге на ту тему, а постоји и заједница која организује форуме, састанке и конференције. Документација је одлична, али нажалост може бити непотпуна. Користимо Цосмос ДБ у бројним пројектима. Срећно читање документације за овај производ. Књиге су једини спас, оне, на срећу, постоје и могу се наћи, садрже много фундаменталних знања и морате пуно и стално читати. Али проблем је у заједници.

Сада је тешко наћи бар једну адекватну конференцију или митинг на нашим просторима. Не, наравно, има много сусрета са речју Подаци, али поред ове речи обично постоје чудне скраћенице попут МЛ или АИ. Дакле, ово није за нас, причамо о томе како да градимо складишта, а не како да се мажемо неуронима. Ови хипстери су преузели све. Као резултат тога, ми смо без заједнице. Успут, ако сте инжењер података и познајете добре заједнице, напишите у коментарима.

Закључци и најава састанка

Шта ћемо завршити? Моје прво искуство ми говори да ће осећај у ципелама инжењера података бити користан за сваког програмера. То нам само омогућава да другачије гледамо на ствари и да се не изненадимо када нам очи закрваве када видимо како програмери третирају своје податке. Дакле, ако постоји ДЕ у вашој компанији, само разговарајте са овим момцима, научићете много нових ствари (о себи).

И на крају, саопштење. Пошто је током дана тешко пронаћи састанке на нашу тему, одлучили смо да направимо своје. Зашто смо гори? Срећом, имамо невероватно Сцхвепссс и наши пријатељи из Лабораторија за нове професије, који, као и ми, сматрају да су инжењери података неправедно лишени пажње.

Користећи ову прилику, позивам све којима је стало да дођу на наш први састанак заједнице са обећавајућим насловом „ДЕ ор ДИЕ“, који ће се одржати 27.02.2020. фебруара XNUMX. у канцеларији Додо Пизза. Детаљи на ТимеПад.

Ако се нешто деси, бићу тамо, можете ми лично рећи у лице колико грешим у вези са програмерима.

Извор: ввв.хабр.цом

Додај коментар