Jak v Logio píšeme software
Náš vlastní software VERITICO pomáhá řídit business třeba v Albertu. Díky komu se ale takový projekt stane?
SQL v Logio: Základ pro naše produkty i každodenní práci
V Logio využíváme SQL databáze (konkrétně MariaDB, komunitního nástupce MySQL) od samého počátku. Pracujeme s velkými objemy dat, a proto využíváme především databázový engine MyISAM, který se pro naše účely velmi často hodí, byť je starší. Nevnímáme ho ale jako jedinou možnou cestu, a proto při vývoji nových produktů zvažujeme více možností a vybíráme tu, která se nejvíce hodí pro daný use-case. Jednou z nich je například PostgreSQL, který umožňuje robustnější práci s daty a modernější funkce. MyISAM využíváme přesně tak, jak by se využívat měl – máme obrovské objemy dat, které ale používáme hromadně. Nepotřebujeme do jedné tabulky přistupovat najednou ze stovky míst, takže není potřeba row-level lock (hlavní výhoda InnoDB) a vzhledem k objemu dat nelze ani efektivně používat transakce, protože revert transakce trvá příliš dlouho (je rychlejší obnovit backup). Jako bonus se MyISAM extrémně jednoduše zálohuje, takže zálohování a obnova dat probíhá velmi rychle. I přes absenci podpory transakcí byl tento starší engine pevným základem pro náš hlavní produkt VERITICO.
Klíčová role SQL a databází
SQL a jeho optimalizace jsou nezbytné pro softwarový chod celé firmy. Běžnou prací programátorů je optimalizovat dotazy, aby každonoční přepočty probíhaly plynule – špatně optimalizovaný dotaz může totiž zpracování prodloužit i o několik hodin a vzhledem k velkému objemu dat, které zpracováváme, mají i drobné optimalizace obrovský smysl. Při práci se řídíme pravidlem „premature optimization is the root of all evil“ – k optimalizaci přistupujeme až po kompletním napsání kódu.
Veškerý back-endový tým (cca 30 lidí) musí mít zkušenosti se správou databází a musí umět psát SQL dotazy, zatímco konzultanti a front-end programátoři by měli zvládat SQL aspoň číst, aby se zorientovali v datech. To je v Logio nezbytné. Když konzultanti například spravují nebo analyzují data ve VERITICO, klíčovém nástroji pro vizualizaci dat, většinou začíná jejich práce kontrolou dat uložených v SQL databázi.
Programátoři v minulosti ze 60 % pracovali v SQL, 40 % v PHP. Teď se to otočilo díky datařskému týmu, nicméně stále platí, že každý programátor opravdu dobře rozumí SQL.
Automatizace a pokročilé techniky.
SQL v Logio zatím zůstává pro jednoduché výpočty na velkém množství dat, ale postupně měníme architekturu. Pravidelně se objevují nové verze nástrojů, například *SQL query optimizer*, které pomáhají zlepšovat exekuční plány a optimalizovat rychlost dotazů. Správné pochopení exekučních plánů a práce s indexy je zásadní dovedností, kterou u uchazečů o práci na pozicích programátorů i datových analytiků prověřujeme.
Dále zvažujeme postupné přesunutí výpočetních operací z SQL na php – SQL chceme ponechat hlavně pro správu dat, nikoliv jako výpočetní engine.
Potřebné znalosti a růstový potenciál týmu datařského týmu.
Tříčlenný datový tým, který vznikl začátkem roku 2021, pracuje na upgradu databází tak, že převádí SQL skripty do prostředí Pentaho, které usnadňuje změny verzí díky přizpůsobitelným adaptérům. Při přechodu na vyšší verzi MariaDB, například z 5.7 na 10, je nutný rapidní refaktor kódu, čemuž se chceme do budoucna vyvarovat. Proto používáme Pentaho. V něm je databázová logika nezávislá na konkrétní databázi, což zjednodušuje správu. Tým využívá i asynchronní načítání dat, což však SQL přímo neumožňuje kvůli deadlockům, které částečně obcházíme pomocí partitioningu.
Díky spolupráci datařů a programátorů se jak implementace tak upgrady neustále zlepšují, zrychlují a zefektivňují.
Líbí se ti technologie, se kterými pracujeme, chceš se na tom taky podílet? Koukni na naše volné pozice.
Náš vlastní software VERITICO pomáhá řídit business třeba v Albertu. Díky komu se ale takový projekt stane?
20. července 2024 Logio slavilo 20 let. Srdečné poděkování patří našim stávajícím kolegům a všem, kteří nám v uplynulých 20 letech pomáhali tuto společnost posouvat kupředu. 💚
Dianka Ščuková, Jiří Dědeček a Jan Volf. Každý z nich sdílí svou jedinečnou cestu od začátků ve firmě až po současné seniorní pozice. V článku se dozvíte, jak náhodné příležitosti a osobní iniciativy vedly k jejich profesnímu růstu.
Martin Plajner je vedoucí oddělení R&D a má pod svým vedením i naše trainees. Zeptali jsme se ho, i naše trainees, jak tento trainee program vnímají.
Abychom vám mohli nabídnout co nejpříjemnější zážitek při procházení webu, používáme technologie, jako jsou soubory cookie, které ukládají informace o zařízení a/nebo k nim přistupují. Souhlas s těmito technologiemi nám umožní zpracovávat údaje, jako je chování při prohlížení nebo jedinečná ID na tomto webu. Neudělení souhlasu nebo jeho odvolání může ovlivnit fungování stránek.