atoto.cz - do pekla pro data a zpět [lukáš huňka] (5. sraz, praha, 18.2.2016)

15
Atoto.cz do pekla pro data a zpět Lukáš Huňka CTO Atoto.cz @hunaczech

Upload: pehapkari

Post on 09-Jan-2017

184 views

Category:

Internet


2 download

TRANSCRIPT

Page 1: Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

Atoto.czdo pekla pro data a zpět

Lukáš HuňkaCTO Atoto.cz@hunaczech

Page 2: Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

První český porovnávač online supermarketů

- Porovnáme všechno zboží všech providerů

- Vybereme vám nejvýhodnějšího providera

- Vylijeme košík

- Pošleme odkaz

- Profit !

Page 3: Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

Technologické pozadí projektu

- Oddělení APP do Microservices (REST-API)

- Vyhledávání, našeptávání, nahrazování (Elastic)

- Backend- NETTE (co tu jako děláš kámo?), Kdyby, MySQL(Percona), Doctrine, REDIS,

RabbitMQ

- Testování- Nette/Tester, Codeception (!)

- Frontend- LESS, GULP

- HI (Human Interaction)- Github, Kanban, Slack

Page 4: Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

Symfony ass-savers

Věci které používáme v naší APP a výrazně nás posouvají

- Symfony/Console- Veškeré datové operace

- Symfony/DomCrawler (Symfony/CSS-selector,Symfony/Browser-kit)

- taky datové operace

- Symfony/YAML- no … na NEON soubory to úplně nebude

Page 5: Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

Teď to hlavní - DATA

- 6 providerů=prodejců

- denní aktualizace dat

- jedna kompletní aktualizace dat = 56 815 položek

- oddělený front-end od data-warehousu

- několik parserů a downloaderů

- různé vstupy - API (json), HTML (parsing) , manuální export (CSV)

- strašnej mess

Page 6: Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

Teď to hlavní - DATA po II.

- co se s daty u nás děje- automatické třídění do Master kategorií

- kontrola validity

- doplňující vlastnosti

- gramáže

- jednotky apd.

- parsery není jen na získání dat- množstevní jednotky

- našeptání náhrady

Page 7: Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

Teď to hlavní - DATA po III.

- ukládáme do Elasticu- místo hromadné reindexace -> pomáhá RabbitMQ

- rabbit zvládne naplnit celou DB během 8 minut (16 consumerů)

- na frontendu udržujeme data v MySQL jako fallback

- primárně čerpáme z Elasticu

Page 8: Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

Teď to hlavní - DATA po IV.

- úskalí více systémů- rozdílná data

- synchronizace IDs

- duplikace dat

- provider upraví ID

- delistuje a znovu zalistuje produkt

- se změnou EANu nedelistuje starý produkt ale updatne EAN

- kontroluj (a neber úplatky), kontroluj a kontroluj

Page 9: Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

Koloběh dat v Atoto

- Import -> Data Warehouse -> ElasticSearch -> FrontEnd

- v rámci DataWarehousu další operace:- trendy - vývoj ceny

- napárování externích dat (fotky, popisy, složení atp.)

- Synchronizace IDs mezi několika systémy

- Kvůli dokončení objednávek u providerů

Page 10: Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

S čím jsme se potýkali

- inkognito - nemožnost dohody s providery

- čerpat data ale neupozornit na sebe a zároveň nenaštvat providera

- HTML parsing - neakceptovatelný

- celé stažení všech dat cca 5 hodin (pouhé stažení bez dalšího zpracování)

- API parsing- mnohem pohodlnější

- rychlejší a flexibilnější

- nutnost vlastní struktury kategorií (proč a jak toho dosáhnout)

Page 11: Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

Od prvních kroků k chůzi

- Na začátku byla naše aplikace monolit (období hrubého prototypu)

- Nic takového nechceme ! (a nechtějte, fakt !)

- rozpadnutí do více oddělených microservices

- reforma procesu získání dat (viz. další slide)

- sestavení a vytvoření Partnerského API

Page 12: Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

Reforma procesu získávání dat

Gateway - vstup data

Imigrační - kontrola validity dat a známosti dat

-> Známe -> Reality check (jak moc se liší data oproti stávajícím hodnotám)

-> Neznáme -> Human validation (naše lidská továrna)

ukládáme do Intelligence

Page 13: Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

Budoucnost dat

- Integrace pomocí partnerského API- výlet do UK za klukama z Tesco IT

- rychlá aktualizace pomocí nodeJS app

- ještě větší sbírání trendů => větší množství dat

- Co nás zajímá- YesSQL - Maria + Percona

- NoSQL - MongoDB

Page 14: Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

H.R. okénko II - Q&A

- Dotazy osobně nebo kdykoliv jindy na- [email protected]

- 607 049 258 (24@7)

- Twitter

- Facebook

- Google+

- http://developer.atoto.cz - 20.000 Kč za tip na vývojáře

Page 15: Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

Konec :(

I. Podívejte se napravo

II.Pokud vidíte spícího člověka vzbuďte ho a řekněte mu ať tleská

III.Podívejte se nalevo

IV.Zopakujte bod II

V.Tleskejte

Díky za pozornost