2. 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 !
3. 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 (!)
4. 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
5. 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)
6. 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
7. 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
8. 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
9. 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ů
10. 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
11. 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
12. 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
13. 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
14. H.R. okénko II - Q&A
- Dotazy osobně nebo kdykoliv jindy na
- lukas@atoto.cz
- 607 049 258 (24@7)
- Twitter
- Facebook
- Google+
- http://developer.atoto.cz - 20.000 Kč za tip na vývojáře
15. 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