Tekst su napisali stručnjaci kompanije Syntio, Nikola Sever i Andrija Dukić, čije ćete predavanje moći poslušati na .debugu 2022
U vrijeme kad se Syntio osnivao prije pet godina, pojam ‘BigData’ nije bio u potpunosti nepoznat, no mnogi istovremeno nisu znali što on zapravo znači. Danas je taj pojam iščeznuo i zamijenio ga je pojam ‘Data Engineering’ koji zapravo najjasnije opisuje glavnu djelatnost tvrtke Syntio. ‘Data Engineering’ predstavlja ekstrakciju podataka iz raznih sustava, ingestion podataka, dizajn i kreiranje data pipelineova, transformaciju podataka i posluživanje krajnjim korisnicima/domenama uz primjenu najboljih data governance praksi. Budući da je često izazovno terminologiju objasniti nekome tko se ne bavi ovim poslom, Syntio se nerijetko susreće s pitanjem koja je razlika između njih i Data Scientista? Odgovor je: velika.
U kontekstu prediktivne analitike, ono što radi Syntio je krucijalni kotačić u cijelom tom procesu. Syntio u suradnji s downstream consumerima podataka (Data Scientistima, BI Developerima i drugima) kreira protok podataka od točke A do točke B, koja je zapravo odredište i lokacija na kojoj Data Scientisti ‘rade svoju magiju’. Kako bi cijeli taj proces protoka podataka od točke A do točke B, odnosno od izvora do destinacije radio što samostalnije i sa što manjom latencijom, Syntio koristi vrlo velik broj, većinom open-source rješenja, od kojih neka možete pronaći u sklopu Syntio blog postova. No, kako već dostupna rješenja na tržištu ne pokrivaju sve aspekte njihovog rada ili ne obavljaju određenu funkciju, neke od njih Syntio sam razvija.
Bitno je pričati sve jezike
Evolucija proizvoda svima onima koji nastoje pratiti novitete na tržištu diktira i evoluciju poslovanja. Takvo je okruženje vrlo zahtjevno, no neophodno. U Syntiu nikada nećete čuti klasičan: ‘Ovo ti je zadatak i napravi ga’. Njeguje se kultura uključivanja kolega u objašnjenje arhitekture sustava. Zašto? Zato što smatraju kako je ključno da svi razumiju kako je i zašto je sustav dizajniran. Na taj se način potiče i razmjena raznovrsnih ideja koje se mogu čuti u razgovoru na hodnicima, pa čak i za ping-pong stolom.
Kako je glavna zadaća i nit vodilja Data Engineeringa tzv. Near real time performance, Syntio se odlučio za rad u programskom jeziku Go. Odabrali su ga iz više razloga, a presudio je njegov Concurency model o kojem možete više saznati na blogu. Dodatni razlog je i njegova podrška na gotovo svim cloud vendorima, a kada se priča o Go jeziku, neizostavna je činjenica brzina njegova izvršavanja. Nešto je sporiji od C programskog jezika, ali glavni razlog njegovog nastanka bilo je adresiranje problema iz C jezika. Osim primarnog Go-a, Syntio ‘priča’ i u Pythonu, primarno zbog Airflowa pomoću kojeg orkestriraju različite data pipelineove neophodne za protok podataka, neizostavnoj Javi (primjer Apache Beam alata koji se koristi isključivo za streaming obradu podataka).
Glavna deployment okolina u Syntiu na kojem se izvršavaju svi in-house produkti je Kubernetes, koji je nastao u samom Googleu, a o njegovoj veličini govori i činjenica da se na Kubernetesu ‘vrte’ i Search, Gmail i YouTube. Syntio, kao veliki pobornik tzv. Event-streaminga, većinu arhitekture bazira na nekom obliku Message broker sustava. Glavna je, naravno, Apache Kafka, ali uz nju koriste i Pulsar, NATS, PubSub i dr. Poruke su uglavnom u JSON formatima, ali ima primjera kada se koriste Apache Avro, Parquet ili protobuf oblik binarizacije poruka.
Specifični klijenti, specifične tehnologije
Syntio danas ima pet in-house proizvoda spojenih u jednu platformu. Dizajnirani su tako da su vendor-agnostic te ne ovise o nekom od Cloud Providera. Njihovi klijenti smješteni su na nekom od tri najveća cloud vendora (AWS, Azure i GCP), a ujedno su i jedan od vodećih Google Cloud partnera na najvišoj razini. Klijentima, kojih je zasad najviše iz Danske, Švedske, UK i Irske, Njemačke te Južnoafričke Republike, nude unapređenje poslovanja kroz integraciju i obradu podataka u realnom vremenu, uz kontinuiranu konzultantsku podršku koja olakšava digitalnu transformaciju. Dodatna vrijednost je činjenica da, uz jednostavnost provedbe procesa i implementacije, uz Syntio metodologiju i orijentiranost na specifične potrebe svakog klijenta, rezultati dolaze vrlo brzo, tijekom projekta, a ne tek po njegovom završetku.
Svi in-house proizvodi bili su razvijani bez definiranih rokova, pri čemu su se značajna pažnja i količina vremena posvetili istraživanju tehnologija. Proces odabira tehnologije izgleda otprilike ovako:
- istraživanje tržišta – što postoji na tržištu i što je od toga dostupno
- popisivanje svih funkcionalnosti koje se nude za sve proizvode
- početak procesa implementacije odabranih barem dva produkta, kako bi se dobila odgovarajuća slika, s obzirom na definiranu arhitekturu
- metoda pokušaja i promašaja (koja zna potrajati i duže jer proizvodi najčešće ne rade na način na koji su opisani na webu)
- finalizacija, stress test i performance test
- izrada dokumentacije
- interna all-hands prezentacija u uredu (knowledge sharing).
O tome što sve Syntio radi više ćete moći čuti na konferenciji .debug 2022, na kojoj će održati predavanje Golang’s groupcache caching solution: comparison vs Redis i odgovoriti na sva vaša dodatna pitanja.