Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Technologie užívané při vývoji velkých e-shopů

1,463 views

Published on

Aby e-shop dokázal obsloužit stovky nebo tisíce požadavků za minutu, musí jeho programátoři vědět, co dělají. Nevystačí si jen se základními znalostmi PHP a MySQL, ale je potřeba využít širší portfolio technologií a technik, které mu zaručí jak dostatečný výkon, tak efektivitu řešení. Představím vám náš technologický stack, díky kterému jsme na špici." - Milan Pála

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Technologie užívané při vývoji velkých e-shopů

  1. 1. Technologie užívané při vývoji velkých e-shopů PeckaDesign Academy Milan Pála, milan.pala@peckadesign.cz
  2. 2. https://github.com/peckadesign/ http://www.peckadesign.cz/
  3. 3. PHP
  4. 4. Composer
  5. 5. MySQL
  6. 6. Apache / nginx
  7. 7. ElasticSearch
  8. 8. RabbitMQ
  9. 9. PHP <?php include ‘../common/libs.php’; $data = $providers[‘products’]->getData(); foreach($data as $id => $values) { }
  10. 10. PHP <?php class ImportTimestampCommand extends SymfonyComponentConsoleCommandCommand { public function addProvider(string $type, PdAbraModuleModelGetChangeByClass3IProvider $provider): self {...} private function getProvider(string $type): ?PdAbraModuleModelGetChangeByClass3IProvider {...} }
  11. 11. Už jen PHP 7.1 ● Rychlost ● Skalární typy ● Return typy https://www.zdrojak.cz/clanky/jake-novinky-prinese-php-7/ https://www.zdrojak.cz/clanky/jake-novinky-prinese-php-7-1/ ● Nullable typy ● Anonymní třídy ● Výjimky místo chyb
  12. 12. Composer Balíčkovací systém pro PHP knihovny Propojený s Git, SVN, ... https://getcomposer.org/
  13. 13. Composer { "name": "pd/monitoring", "require": { "php": "^7.1.0", "ext-mbstring": "*", "ext-curl": "*", "nette/application": "2.4.*", ... https://github.com/peckadesign/Monitoring/blob/master/composer.json
  14. 14. MySQL
  15. 15. MySQL Indexy! Nastavení SQL serveru! ALTER TABLE nad tunou dat
  16. 16. Apache hlavní web server pro PHP uživatelská konfigurace projektů a adresářů pomocí .htaccess strmější křivka učení pomalejší a větší nároky na systémové prostředky nginx rychlejší menší nároky na systémové prostředky centrální konfigurace pro projekt https://www.digitalocean.com/community/tutorials/apache-vs-nginx-practical-considerations
  17. 17. Apache (webserver) + nginx (reverzní proxy) benu.cz (nginx) Apache + PHP PNG, JPG, PDF, ... https://www.digitalocean.com/community/tutorials/how-to-configure-nginx-as-a-reverse-proxy-for-apache
  18. 18. Apache (webserver) + nginx (reverzní proxy) cca 5-8:1
  19. 19. nginx (load balancer) nay.sk (nginx) www1 www2 ... DB ElasticSearch ...
  20. 20. Fulltextové vyhledávání Pomocí MySQL ● fulltext index ● nízký výkon Pomocí specializovaných enginů ● dodatečná synchronizace ● vyšší výkon https://www.megapixel.cz/
  21. 21. ElasticSearch Součást stacku Elastic pro práci s velkým množstvím dat Vyhledávací fulltextový engine s REST API https://www.elastic.co/products/elasticsearch
  22. 22. ElasticSearch https://www.elastic.co/products/elasticsearch
  23. 23. ElasticSearch + PHP ( + Nette) Nette: https://github.com/Kdyby/ElasticSearch (https://github.com/ruflin/Elastica) Oficiální: https://github.com/elastic/elasticsearch-php http://elastica.io/elastica-vs-elasticsearch-php/
  24. 24. RabbitMQ Frontovací služba Jak stáhnout zip archiv dat, který není vytvořený? Co když spadne zpracování 100 000 položek v půlce? Jak paralelizovat v PHP?
  25. 25. RabbitMQ
  26. 26. RabbitMQ RPC
  27. 27. RabbitMQ RPC
  28. 28. Na viděnou

×