Optimalizace výkonu webových aplikací

Michal Špaček
Michal ŠpačekWeb development, security and performance
Optimalizace výkonu  webových aplikací Michal Špaček, Skype;  #4IT445 2011 , Praha @spazef0rze, www.michalspacek.cz
Optimalizace výkonu = zvyšování rychlosti ,[object Object]
Z tohoto ,[object Object]
uděláme tohle ,[object Object]
nebo aspoň tohle ,[object Object]
Zvyšování rychlosti  dřívější zobrazení
< 5 sec Stránku zobrazit do 5 vteřin
1 milión požadavků za den Při dané zátěži
Jak měřit dobu zobrazení?
[object Object]
 
[object Object]
Jak zrychlit?
vizuálně ,[object Object]
Pomocí animací „ zrychlíme“ načítání
Někdy i několikanásobně ,[object Object]
Jak opravdu zrychlit?
CSS Sprites Snížit počet HTTP požadavků pomocí
Logo je součástí jednoho souboru s mnoha dalšími ikonami ,[object Object]
[object Object]
Které jsou vybírány pomocí CSS ,[object Object]
CDN Content Delivery Network
Facebook používá CDN pro statické soubory ,[object Object]
Legenda: Původní server Uzel s kopií dat Návštěvník Spojení wpbeginner.com Takto funguje CDN ,[object Object]
Poskytovatelé CDN
Cache hlavičky v HTTP Pro statický obsah řeší HTTP server Pro správnou funkci nejen CDN a Sprites
Last-Modified If-Modified-Since V HTTP odpovědi V HTTP dotazu, řeší CDN
ETag If-None-Match V HTTP odpovědi V HTTP dotazu, řeší CDN
Content-Length Content-Type Lze poslat více požadavků v jednom spojení Umm, prostě správně říci, co posílám za data
http://www.slideshare.net/spaze/caching-strategies Pro víc info o HTTP cache viz moje prezentace
Zrychlení dotazů do databáze
Je třeba použít indexy ,[object Object]
EXPLAIN SELECT … Prováděcí plán nám poví, jestli se indexy používají Plán zjistíme pomocí SQL příkazu  EXPLAIN
Výstup ,[object Object]
Aplikační cache memcached, APC
Ukládání výsledků dotazů do memcached ,[object Object]
PHP extenze, lze cachovat např. konfiguraci z ini/xml souborů (také opcode cache) ,[object Object]
na více serverů Rozložení zátěže Více serverů pro db Více serverů pro aplikaci Více serverů pro data (CDN) ,[object Object]
Pomalé/nejisté operace Odesílání mailů Převod IP na jméno (DNS)
pomocí externího programu, aby se nezpomalovalo zobrazení stránky Provádět asynchronně
Rychlost není VŠE ,[object Object]
Bezpečnost! ,[object Object]
Mohou snížit výkon, posílají se dva dotazy (připrav a vykonej), ale ochrání proti SQL Injection Prepared statements
Poté vykonání, kde se pošlou pouze data, která se na serveru dosadí na místo otazníků INSERT INTO table (name, price) VALUES (?, ?) Příprava dotazu, místo hodnot otazníky
[object Object]
1 of 45

Recommended

Zabezpečení WordPressu by
Zabezpečení WordPressuZabezpečení WordPressu
Zabezpečení WordPressuRadek Kucera
1.7K views13 slides
Jak zrychlit WP pomocí cachovacích pluginů by
Jak zrychlit WP pomocí cachovacích pluginůJak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginůJakub Klapka
2.5K views24 slides
Principy cachování ve WordPressu by
Principy cachování ve WordPressuPrincipy cachování ve WordPressu
Principy cachování ve WordPressuDavid Biňovec
2.3K views19 slides
How to installing IBM Verse on premises by
How to installing IBM Verse on premisesHow to installing IBM Verse on premises
How to installing IBM Verse on premisesAles Lichtenberg
26 views13 slides
Úvod do Oracle cloudu by
Úvod do Oracle clouduÚvod do Oracle cloudu
Úvod do Oracle clouduMarketingArrowECS_CZ
197 views10 slides
PHP Vysočina - WordPress - 25.10.2018 by
PHP Vysočina - WordPress - 25.10.2018PHP Vysočina - WordPress - 25.10.2018
PHP Vysočina - WordPress - 25.10.2018Brilo Team
163 views51 slides

More Related Content

Viewers also liked

Bezpečnost na mobilních zařízeních by
Bezpečnost na mobilních zařízeníchBezpečnost na mobilních zařízeních
Bezpečnost na mobilních zařízeníchMichal Špaček
2.3K views19 slides
HTTP/2 by
HTTP/2HTTP/2
HTTP/2Michal Špaček
2.2K views20 slides
Kolik webových útoků znáš... by
Kolik webových útoků znáš...Kolik webových útoků znáš...
Kolik webových útoků znáš...Michal Špaček
2.3K views34 slides
Defense in Depth Web Inkognito 12/2013 by
Defense in Depth Web Inkognito 12/2013Defense in Depth Web Inkognito 12/2013
Defense in Depth Web Inkognito 12/2013Michal Špaček
1.4K views68 slides
Bezpečnost e-shopů (HTTPS, XSS, CSP) by
Bezpečnost e-shopů (HTTPS, XSS, CSP)Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)Michal Špaček
1K views14 slides
Jak zlepšit zabezpečení čtvrtiny celého webu by
Jak zlepšit zabezpečení čtvrtiny celého webuJak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webuMichal Špaček
1.7K views23 slides

Viewers also liked(6)

Bezpečnost na mobilních zařízeních by Michal Špaček
Bezpečnost na mobilních zařízeníchBezpečnost na mobilních zařízeních
Bezpečnost na mobilních zařízeních
Michal Špaček2.3K views
Kolik webových útoků znáš... by Michal Špaček
Kolik webových útoků znáš...Kolik webových útoků znáš...
Kolik webových útoků znáš...
Michal Špaček2.3K views
Defense in Depth Web Inkognito 12/2013 by Michal Špaček
Defense in Depth Web Inkognito 12/2013Defense in Depth Web Inkognito 12/2013
Defense in Depth Web Inkognito 12/2013
Michal Špaček1.4K views
Bezpečnost e-shopů (HTTPS, XSS, CSP) by Michal Špaček
Bezpečnost e-shopů (HTTPS, XSS, CSP)Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)
Michal Špaček1K views
Jak zlepšit zabezpečení čtvrtiny celého webu by Michal Špaček
Jak zlepšit zabezpečení čtvrtiny celého webuJak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webu
Michal Špaček1.7K views

Similar to Optimalizace výkonu webových aplikací

Revoluce v cloudu: první autonomně řízená databáze na světě by
Revoluce v cloudu: první autonomně řízená databáze na světěRevoluce v cloudu: první autonomně řízená databáze na světě
Revoluce v cloudu: první autonomně řízená databáze na světěMarketingArrowECS_CZ
410 views75 slides
Hledání příčin pomalého webu a jak to řešit by
Hledání příčin pomalého webu a jak to řešitHledání příčin pomalého webu a jak to řešit
Hledání příčin pomalého webu a jak to řešitDesingdev
4.9K views52 slides
2009 X33EJA Moderní Technologie Pro Vývoj JEE by
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEEMartin Ptáček
316 views18 slides
ASP.NET 3.5 / futures by
ASP.NET 3.5 / futuresASP.NET 3.5 / futures
ASP.NET 3.5 / futuresAleš Roubíček
734 views56 slides
Instalace WordPress by
Instalace WordPressInstalace WordPress
Instalace WordPressVladimír Smitka
1.8K views23 slides
Výkon WordPress by
Výkon WordPressVýkon WordPress
Výkon WordPressVladimír Smitka
8.2K views57 slides

Similar to Optimalizace výkonu webových aplikací(20)

Revoluce v cloudu: první autonomně řízená databáze na světě by MarketingArrowECS_CZ
Revoluce v cloudu: první autonomně řízená databáze na světěRevoluce v cloudu: první autonomně řízená databáze na světě
Revoluce v cloudu: první autonomně řízená databáze na světě
Hledání příčin pomalého webu a jak to řešit by Desingdev
Hledání příčin pomalého webu a jak to řešitHledání příčin pomalého webu a jak to řešit
Hledání příčin pomalého webu a jak to řešit
Desingdev4.9K views
2009 X33EJA Moderní Technologie Pro Vývoj JEE by Martin Ptáček
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE
Martin Ptáček316 views
2007 Technologie Pro Tvorbu Java Enterprise Aplikací by Martin Ptáček
2007 Technologie Pro Tvorbu Java Enterprise Aplikací2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
Martin Ptáček448 views
Výkonnost webových aplikací by Taste Medio
Výkonnost webových aplikacíVýkonnost webových aplikací
Výkonnost webových aplikací
Taste Medio947 views
WordPress - základy bezpečnosti by Vladimír Smitka
WordPress - základy bezpečnostiWordPress - základy bezpečnosti
WordPress - základy bezpečnosti
Vladimír Smitka1.4K views
(cesky) MDS ap a Sybase jak pokracujeme a co nabizime? by MDS ap
(cesky) MDS ap a Sybase jak pokracujeme a co nabizime?(cesky) MDS ap a Sybase jak pokracujeme a co nabizime?
(cesky) MDS ap a Sybase jak pokracujeme a co nabizime?
MDS ap197 views
INPTP Rekapitulace by Jan Hřídel
INPTP Rekapitulace INPTP Rekapitulace
INPTP Rekapitulace
Jan Hřídel130 views
Deployment PHP aplikací | WebExpo 2011 by Jan Mittner
Deployment PHP aplikací | WebExpo 2011Deployment PHP aplikací | WebExpo 2011
Deployment PHP aplikací | WebExpo 2011
Jan Mittner1.4K views
PoSobota 96 ČB 28.4.2018 by Brilo Team
PoSobota 96 ČB 28.4.2018PoSobota 96 ČB 28.4.2018
PoSobota 96 ČB 28.4.2018
Brilo Team45 views
Anonymní Inteligenti - Angular js by Petr Stanislav
Anonymní Inteligenti - Angular jsAnonymní Inteligenti - Angular js
Anonymní Inteligenti - Angular js
Petr Stanislav335 views
2010 X33EJA Vysoká Dostupnost JEE Systémů by Martin Ptáček
2010 X33EJA Vysoká Dostupnost JEE Systémů2010 X33EJA Vysoká Dostupnost JEE Systémů
2010 X33EJA Vysoká Dostupnost JEE Systémů
Martin Ptáček525 views

More from Michal Špaček

Víceúrovňová obrana vysvětlená na Cross-Site Scriptingu by
Víceúrovňová obrana vysvětlená na Cross-Site ScriptinguVíceúrovňová obrana vysvětlená na Cross-Site Scriptingu
Víceúrovňová obrana vysvětlená na Cross-Site ScriptinguMichal Špaček
582 views30 slides
Lámání a ukládání hesel by
Lámání a ukládání heselLámání a ukládání hesel
Lámání a ukládání heselMichal Špaček
501 views37 slides
Fantom Opery, "VPN" a Secure Proxy v Opeře by
Fantom Opery, "VPN" a Secure Proxy v OpeřeFantom Opery, "VPN" a Secure Proxy v Opeře
Fantom Opery, "VPN" a Secure Proxy v OpeřeMichal Špaček
848 views18 slides
Quality of Life, Multiple Lines of Defense by
Quality of Life, Multiple Lines of DefenseQuality of Life, Multiple Lines of Defense
Quality of Life, Multiple Lines of DefenseMichal Špaček
657 views49 slides
Medvědí služba by
Medvědí službaMedvědí služba
Medvědí službaMichal Špaček
832 views36 slides
Disclosing password hashing policies by
Disclosing password hashing policiesDisclosing password hashing policies
Disclosing password hashing policiesMichal Špaček
3K views24 slides

More from Michal Špaček(20)

Víceúrovňová obrana vysvětlená na Cross-Site Scriptingu by Michal Špaček
Víceúrovňová obrana vysvětlená na Cross-Site ScriptinguVíceúrovňová obrana vysvětlená na Cross-Site Scriptingu
Víceúrovňová obrana vysvětlená na Cross-Site Scriptingu
Michal Špaček582 views
Fantom Opery, "VPN" a Secure Proxy v Opeře by Michal Špaček
Fantom Opery, "VPN" a Secure Proxy v OpeřeFantom Opery, "VPN" a Secure Proxy v Opeře
Fantom Opery, "VPN" a Secure Proxy v Opeře
Michal Špaček848 views
Quality of Life, Multiple Lines of Defense by Michal Špaček
Quality of Life, Multiple Lines of DefenseQuality of Life, Multiple Lines of Defense
Quality of Life, Multiple Lines of Defense
Michal Špaček657 views
Disclosing password hashing policies by Michal Špaček
Disclosing password hashing policiesDisclosing password hashing policies
Disclosing password hashing policies
Michal Špaček3K views
Minulé století volalo (Cross-Site Scripting + BeEF + CSP demo) by Michal Špaček
Minulé století volalo (Cross-Site Scripting + BeEF + CSP demo)Minulé století volalo (Cross-Site Scripting + BeEF + CSP demo)
Minulé století volalo (Cross-Site Scripting + BeEF + CSP demo)
Michal Špaček843 views
Password manažeři detailněji – 1Password, LastPass, 2FA, sdílení by Michal Špaček
Password manažeři detailněji – 1Password, LastPass, 2FA, sdíleníPassword manažeři detailněji – 1Password, LastPass, 2FA, sdílení
Password manažeři detailněji – 1Password, LastPass, 2FA, sdílení
Michal Špaček2.7K views
Operations security (OPSEC) in IT by Michal Špaček
Operations security (OPSEC) in ITOperations security (OPSEC) in IT
Operations security (OPSEC) in IT
Michal Špaček1.2K views
HTTPS (a šifrování) všude by Michal Špaček
HTTPS (a šifrování) všudeHTTPS (a šifrování) všude
HTTPS (a šifrování) všude
Michal Špaček2.4K views
HTTP Strict Transport Security (HSTS), English version by Michal Špaček
HTTP Strict Transport Security (HSTS), English versionHTTP Strict Transport Security (HSTS), English version
HTTP Strict Transport Security (HSTS), English version
Michal Špaček2.8K views
Základy webové bezpečnosti pro PR a marketing by Michal Špaček
Základy webové bezpečnosti pro PR a marketingZáklady webové bezpečnosti pro PR a marketing
Základy webové bezpečnosti pro PR a marketing
Michal Špaček3K views
I forgot my password – what a secure password reset needs to have and why by Michal Špaček
I forgot my password – what a secure password reset needs to have and whyI forgot my password – what a secure password reset needs to have and why
I forgot my password – what a secure password reset needs to have and why
Michal Špaček3.8K views
HTTP Strict Transport Security (HSTS) by Michal Špaček
HTTP Strict Transport Security (HSTS)HTTP Strict Transport Security (HSTS)
HTTP Strict Transport Security (HSTS)
Michal Špaček5.6K views
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014) by Michal Špaček
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)
Michal Špaček830 views
Noční můry webového vývojáře by Michal Špaček
Noční můry webového vývojářeNoční můry webového vývojáře
Noční můry webového vývojáře
Michal Špaček7.5K views

Optimalizace výkonu webových aplikací