SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
“Mne to na notebooku funguje” 
Ako spraviť z webovej aplikácie, ktorá funguje vývojárovi na 
počítači škálovateľnú web aplikáciu 
Juraj Bednár juraj.bednar@digmia.com
Vývojár programuje aplikáciu… 
Fedora 30000 vo 
VirtualBox 
PHP 12 
NodeJS-git-HEAD 
MongoDB-nightly-build 
optimizator80000
Chce to vidieť zákazník… 
Fedora 30000 vo 
VirtualBox 
…. 
Žiadne zálohy 
Prístup na testovacej 
adrese 
Počet užívateľov: 5
Hurá ostrá prevádzka! 
Internet
Hurá “profi” ostrá prevádzka 
Internet
Nefunguje to! 
• Máte “starú” verziu (napr. RHEL 6 namiesto 
Fedora 30000) 
• PHP máte nižšej verzie a zabudli ste to 
skompilovať s týmto patchom a týmito 
špeciálnymi voľbami 
– Potrebujeme mať v php.ini všetko povolené 
• Nemáme nainštalovaný optimizator80000!
Nefunguje to! 
backport hosting upgradne 
Kto sa bude starať o bezp. upgrady? 
- OpenShift – supportovaný vs. 
nesupportovaný cartridge
Stále to nefunguje 
• (v tomto momente zákazník prichádza 
väčšinou k nám) 
• Dôvod: ľubovoľná kombinácia z: 
– nestíha to 
– padá to 
– hackli nás 
– admin nás má pokrk a nedvíha telefón / nemá na 
nás čas
Navrhneme architektúru… 
Datacentrum 1 Datacentrum 2 
provider independent IP 
Internet Internet 
BGP failover 
Cache/Load balancer 
App server ….. 
DB server 
Statika (img, css, js, video) 
Cache (memcached) 
….. 
Cache/Load balancer 
App server ….. 
DB server 
Statika (img, css, js, video) 
Cache (memcached) 
…..
Nefunguje statika 
• Aplikácia píše statické súbory na disk do 
lokálneho filesystému 
– Synchronizácia 
– CDN 
• Aplikácia sa odvoláva na statiku pod rovnakou 
subdoménou (treba spraviť static.domena.sk) 
– Vieme rýchlo servovať (nginx, varnish) 
– Cache je nastavená správne
HTTP Cache nepomáha 
• Nízky hitrate, lebo… 
– No-cache hlavičky 
• “nikto nemá nič cachovať, aby sa všetky zmeny prejavili 
hneď” 
• dobré na vývoj, nepoužiteľné v produkcii 
• Parametre cachovania treba nastaviť v 
aplikácii a na serveri servujúcom statiku 
– “nastavte si to vy” – my nevieme, ktorý obsah sa 
ako často mení, to vie aplikácia
Kedy to spadne? 
• Väčšina zákazníkov nevie, lebo nikto nerobil 
load-testy 
– Apache JMeter je skvelý nástroj, používajte ho 
– Škálovanie vtedy, keď je to potrebné, nie “keď to 
nestíha”
Rýchlo to vráťte naspäť! 
• Nové verzie sa majú testovať na testovacom prostredí 
– Vrátane load testov 
• Testovacie prostredie nie je: 
– Notebook vývojára 
– Fedora 30000 vo virtualboxe vo firme, kde sa to 
programuje 
• Testovacie prostredie by malo byť aspoň z hľadiska 
softvéru 100% zhodné s produkčným 
• Zmeny sa robia pomocou VCS (git, svn, mercurial, …), 
nikdy needitovať súbor mimo VCS! 
– Pekne to má vyriešené OpenShift
Aplikačný server 
• Apache je dobrý na vývoj, takmer nikdy 
nepoužívame v produkcii (ak sa nedá takmer 
úplne zacachovať) 
• Nikdy nie mod_php 
• Aplikácia nikdy nezapisuje lokálne na disk! 
(pomocné súbory, statika, …) 
– Problémy so session handlingom 
– Problémy s NFS lockmi 
• Nikdy sa nespolieha na to, že na jednej IP je DB, 
cache, … server 
– (ak sa na tom vyslovene nedohodneme…)
Databázový server 
• Nikdy nie je jeden 
– Master<->slave 
– Master<->master 
– + coldspare replika na zálohy 
• Pozor na vzájomné blokovanie queries 
• Pozor na zapisovanie 
– Invalidovanie cache (napr. Logy do DB) 
• Chýbajú indexy 
• Aplikácia zle volí DB server 
– Read-only replika na lokálnom app serveri (za istých 
okolností)
Všeobecné rady 
• Softvér, ktorý nemá stabilnú verziu s 
bezpečnostnou podporou (balíčkovací systém) 
neexistuje 
– …a neexistujúci softvér nemôžeme v aplikácii 
používať, lebo neexistuje 
• Má softvér long term podporu alebo nás 
vendor prinúti upgradovať na novšiu verziu (s 
nekompatibilným API)?
“Mne to na notebooku funguje” 
Ako spraviť z webovej aplikácie, ktorá funguje vývojárovi na 
počítači škálovateľnú web aplikáciu 
Juraj Bednár juraj.bednar@digmia.com

Más contenido relacionado

Destacado

Biosimilars -- Wave of the Future or Child of the Privileged Few?
Biosimilars -- Wave of the Future or Child of the Privileged Few?Biosimilars -- Wave of the Future or Child of the Privileged Few?
Biosimilars -- Wave of the Future or Child of the Privileged Few?Michael Swit
 
Project Management in an Agency Environment
Project Management in an Agency Environment Project Management in an Agency Environment
Project Management in an Agency Environment Jeff Thaler
 
Legal Aspects of Outsourcing for Drug, Biologics and Device Companies
Legal Aspects of Outsourcing for Drug, Biologics and Device CompaniesLegal Aspects of Outsourcing for Drug, Biologics and Device Companies
Legal Aspects of Outsourcing for Drug, Biologics and Device CompaniesMichael Swit
 
Collaborize Overview
Collaborize OverviewCollaborize Overview
Collaborize OverviewRBolden
 
Embedding BCE - Institutional Showcase (Shrewsbury)
Embedding BCE - Institutional Showcase (Shrewsbury)Embedding BCE - Institutional Showcase (Shrewsbury)
Embedding BCE - Institutional Showcase (Shrewsbury)JISC BCE
 
Cum Stiu Ca Sunt Cu Persoana Potrivita By Dimcikmarin
Cum Stiu Ca Sunt Cu Persoana  Potrivita By DimcikmarinCum Stiu Ca Sunt Cu Persoana  Potrivita By Dimcikmarin
Cum Stiu Ca Sunt Cu Persoana Potrivita By Dimcikmarinalexcurbet
 
PecteSNami
PecteSNamiPecteSNami
PecteSNamijana203
 
About Dyantek Media
About Dyantek MediaAbout Dyantek Media
About Dyantek Mediaguest724cfe5
 
Examples of My Work and Creativity
Examples of My Work and CreativityExamples of My Work and Creativity
Examples of My Work and Creativityleewpederson
 
Coronado Island
Coronado IslandCoronado Island
Coronado Islandjangeres
 
I DespréS De L’Eso, Què
I DespréS De L’Eso, QuèI DespréS De L’Eso, Què
I DespréS De L’Eso, QuèRut_ba
 
Got Centerpiece? So Does Everyone Else.
Got Centerpiece? So Does Everyone Else.Got Centerpiece? So Does Everyone Else.
Got Centerpiece? So Does Everyone Else.Michael Fienen
 
e2e People Practices
e2e People Practicese2e People Practices
e2e People Practicesyeshasvini
 
Would You Like Fries with that Virtual 10 x 10?
Would You Like Fries with that Virtual 10 x 10?Would You Like Fries with that Virtual 10 x 10?
Would You Like Fries with that Virtual 10 x 10?Michelle Bruno
 
EEC '12 - RiderState presentation - 2012
EEC '12 - RiderState presentation - 2012EEC '12 - RiderState presentation - 2012
EEC '12 - RiderState presentation - 2012Santi Casado
 
Miracolul Vietii
Miracolul VietiiMiracolul Vietii
Miracolul Vietiialexcurbet
 

Destacado (20)

The School Bully
The School BullyThe School Bully
The School Bully
 
Biosimilars -- Wave of the Future or Child of the Privileged Few?
Biosimilars -- Wave of the Future or Child of the Privileged Few?Biosimilars -- Wave of the Future or Child of the Privileged Few?
Biosimilars -- Wave of the Future or Child of the Privileged Few?
 
Project Management in an Agency Environment
Project Management in an Agency Environment Project Management in an Agency Environment
Project Management in an Agency Environment
 
Legal Aspects of Outsourcing for Drug, Biologics and Device Companies
Legal Aspects of Outsourcing for Drug, Biologics and Device CompaniesLegal Aspects of Outsourcing for Drug, Biologics and Device Companies
Legal Aspects of Outsourcing for Drug, Biologics and Device Companies
 
Case Study of NYCHA's IT PMO
Case Study of NYCHA's IT PMOCase Study of NYCHA's IT PMO
Case Study of NYCHA's IT PMO
 
激 勵 Motivation
激 勵 Motivation激 勵 Motivation
激 勵 Motivation
 
Collaborize Overview
Collaborize OverviewCollaborize Overview
Collaborize Overview
 
Wensen
WensenWensen
Wensen
 
Embedding BCE - Institutional Showcase (Shrewsbury)
Embedding BCE - Institutional Showcase (Shrewsbury)Embedding BCE - Institutional Showcase (Shrewsbury)
Embedding BCE - Institutional Showcase (Shrewsbury)
 
Cum Stiu Ca Sunt Cu Persoana Potrivita By Dimcikmarin
Cum Stiu Ca Sunt Cu Persoana  Potrivita By DimcikmarinCum Stiu Ca Sunt Cu Persoana  Potrivita By Dimcikmarin
Cum Stiu Ca Sunt Cu Persoana Potrivita By Dimcikmarin
 
PecteSNami
PecteSNamiPecteSNami
PecteSNami
 
About Dyantek Media
About Dyantek MediaAbout Dyantek Media
About Dyantek Media
 
Examples of My Work and Creativity
Examples of My Work and CreativityExamples of My Work and Creativity
Examples of My Work and Creativity
 
Coronado Island
Coronado IslandCoronado Island
Coronado Island
 
I DespréS De L’Eso, Què
I DespréS De L’Eso, QuèI DespréS De L’Eso, Què
I DespréS De L’Eso, Què
 
Got Centerpiece? So Does Everyone Else.
Got Centerpiece? So Does Everyone Else.Got Centerpiece? So Does Everyone Else.
Got Centerpiece? So Does Everyone Else.
 
e2e People Practices
e2e People Practicese2e People Practices
e2e People Practices
 
Would You Like Fries with that Virtual 10 x 10?
Would You Like Fries with that Virtual 10 x 10?Would You Like Fries with that Virtual 10 x 10?
Would You Like Fries with that Virtual 10 x 10?
 
EEC '12 - RiderState presentation - 2012
EEC '12 - RiderState presentation - 2012EEC '12 - RiderState presentation - 2012
EEC '12 - RiderState presentation - 2012
 
Miracolul Vietii
Miracolul VietiiMiracolul Vietii
Miracolul Vietii
 

Similar a Mne to na notebooku funguje

Require.JS & Backbone.JS
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JSsrigi
 
The New Distrowatch – Bachelor's thesis (SK)
The New Distrowatch – Bachelor's thesis (SK)The New Distrowatch – Bachelor's thesis (SK)
The New Distrowatch – Bachelor's thesis (SK)Jakub Žitný
 
Node.js @ Rubyslava
Node.js @ RubyslavaNode.js @ Rubyslava
Node.js @ RubyslavaIvan Srba
 
Debian na minimum | Energo TT Live 2012
Debian na minimum | Energo TT Live 2012Debian na minimum | Energo TT Live 2012
Debian na minimum | Energo TT Live 2012Erich Stark
 
Zváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App EngineZváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App EngineJuraj Michálek
 
DataCore Software - The one and only Storage Hypervisor
DataCore Software - The one and only Storage HypervisorDataCore Software - The one and only Storage Hypervisor
DataCore Software - The one and only Storage HypervisorASBIS SK
 
OSS Vikend 2016: vpsFree.cz - linuxový server od neziskovky
OSS Vikend 2016: vpsFree.cz - linuxový server od neziskovkyOSS Vikend 2016: vpsFree.cz - linuxový server od neziskovky
OSS Vikend 2016: vpsFree.cz - linuxový server od neziskovkyTomas Srnka
 
Varnish + cdb – rezervná proxy
Varnish + cdb – rezervná proxyVarnish + cdb – rezervná proxy
Varnish + cdb – rezervná proxywebsupportsk
 
BarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na WebBarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na WebJuraj Michálek
 
Libraries and tools for C++
Libraries and tools for C++Libraries and tools for C++
Libraries and tools for C++Juraj Michálek
 
Ako si vybrať programovací jazyk a framework?
Ako si vybrať programovací jazyk a framework?Ako si vybrať programovací jazyk a framework?
Ako si vybrať programovací jazyk a framework?Jano Suchal
 
Web design in html editor
Web design in html editorWeb design in html editor
Web design in html editorvibration.sk
 
Čo sú to webové aplikácie ?
Čo sú to webové aplikácie ?Čo sú to webové aplikácie ?
Čo sú to webové aplikácie ?Drahoslav Madar
 
Diplomová práca - Štúdia pokročilých vlastností operačného systému Solaris
Diplomová práca - Štúdia pokročilých vlastností operačného systému SolarisDiplomová práca - Štúdia pokročilých vlastností operačného systému Solaris
Diplomová práca - Štúdia pokročilých vlastností operačného systému SolarisMatus Kovacik
 
Wordcamp 2015, Juraj Hanták - Ako zvládnúť rast webu
Wordcamp 2015, Juraj Hanták - Ako zvládnúť rast webuWordcamp 2015, Juraj Hanták - Ako zvládnúť rast webu
Wordcamp 2015, Juraj Hanták - Ako zvládnúť rast webuWebglobe - Yegon
 

Similar a Mne to na notebooku funguje (20)

Require.JS & Backbone.JS
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JS
 
The New Distrowatch – Bachelor's thesis (SK)
The New Distrowatch – Bachelor's thesis (SK)The New Distrowatch – Bachelor's thesis (SK)
The New Distrowatch – Bachelor's thesis (SK)
 
Node.js @ Rubyslava
Node.js @ RubyslavaNode.js @ Rubyslava
Node.js @ Rubyslava
 
Php sec
Php secPhp sec
Php sec
 
Nehacknutelny web
Nehacknutelny webNehacknutelny web
Nehacknutelny web
 
Analytika
AnalytikaAnalytika
Analytika
 
Apex day 1.0 vicejazycne aplikace lokalizace_kamil schvarcz
Apex day 1.0 vicejazycne aplikace lokalizace_kamil schvarczApex day 1.0 vicejazycne aplikace lokalizace_kamil schvarcz
Apex day 1.0 vicejazycne aplikace lokalizace_kamil schvarcz
 
Debian na minimum | Energo TT Live 2012
Debian na minimum | Energo TT Live 2012Debian na minimum | Energo TT Live 2012
Debian na minimum | Energo TT Live 2012
 
Zváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App EngineZváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App Engine
 
DataCore Software - The one and only Storage Hypervisor
DataCore Software - The one and only Storage HypervisorDataCore Software - The one and only Storage Hypervisor
DataCore Software - The one and only Storage Hypervisor
 
OSS Vikend 2016: vpsFree.cz - linuxový server od neziskovky
OSS Vikend 2016: vpsFree.cz - linuxový server od neziskovkyOSS Vikend 2016: vpsFree.cz - linuxový server od neziskovky
OSS Vikend 2016: vpsFree.cz - linuxový server od neziskovky
 
Puppet Enterprise presented by Elostech
Puppet Enterprise presented by ElostechPuppet Enterprise presented by Elostech
Puppet Enterprise presented by Elostech
 
Varnish + cdb – rezervná proxy
Varnish + cdb – rezervná proxyVarnish + cdb – rezervná proxy
Varnish + cdb – rezervná proxy
 
BarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na WebBarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na Web
 
Libraries and tools for C++
Libraries and tools for C++Libraries and tools for C++
Libraries and tools for C++
 
Ako si vybrať programovací jazyk a framework?
Ako si vybrať programovací jazyk a framework?Ako si vybrať programovací jazyk a framework?
Ako si vybrať programovací jazyk a framework?
 
Web design in html editor
Web design in html editorWeb design in html editor
Web design in html editor
 
Čo sú to webové aplikácie ?
Čo sú to webové aplikácie ?Čo sú to webové aplikácie ?
Čo sú to webové aplikácie ?
 
Diplomová práca - Štúdia pokročilých vlastností operačného systému Solaris
Diplomová práca - Štúdia pokročilých vlastností operačného systému SolarisDiplomová práca - Štúdia pokročilých vlastností operačného systému Solaris
Diplomová práca - Štúdia pokročilých vlastností operačného systému Solaris
 
Wordcamp 2015, Juraj Hanták - Ako zvládnúť rast webu
Wordcamp 2015, Juraj Hanták - Ako zvládnúť rast webuWordcamp 2015, Juraj Hanták - Ako zvládnúť rast webu
Wordcamp 2015, Juraj Hanták - Ako zvládnúť rast webu
 

Más de Juraj Bednar

Optionality, uncertainty and freedom from HCPP
Optionality, uncertainty and freedom from HCPPOptionality, uncertainty and freedom from HCPP
Optionality, uncertainty and freedom from HCPPJuraj Bednar
 
Biohacking a mentální koučing - Miroslav Nečas, Biohacking meetup Paralelná p...
Biohacking a mentální koučing - Miroslav Nečas, Biohacking meetup Paralelná p...Biohacking a mentální koučing - Miroslav Nečas, Biohacking meetup Paralelná p...
Biohacking a mentální koučing - Miroslav Nečas, Biohacking meetup Paralelná p...Juraj Bednar
 
Tedsig introduction
Tedsig introductionTedsig introduction
Tedsig introductionJuraj Bednar
 
Úvod do biohackingu, Paralelná Polis
Úvod do biohackingu, Paralelná PolisÚvod do biohackingu, Paralelná Polis
Úvod do biohackingu, Paralelná PolisJuraj Bednar
 
Sifrovanie hovorov a textovych sprav
Sifrovanie hovorov a textovych spravSifrovanie hovorov a textovych sprav
Sifrovanie hovorov a textovych spravJuraj Bednar
 
Processing workshop intro
Processing workshop introProcessing workshop intro
Processing workshop introJuraj Bednar
 
Dssh @ Confidence, Prague 2010
Dssh @ Confidence, Prague 2010Dssh @ Confidence, Prague 2010
Dssh @ Confidence, Prague 2010Juraj Bednar
 
Processing a Arduino
Processing a ArduinoProcessing a Arduino
Processing a ArduinoJuraj Bednar
 
Processing and Arduino
Processing and ArduinoProcessing and Arduino
Processing and ArduinoJuraj Bednar
 
Úvod do umelej inteligencie
Úvod do umelej inteligencieÚvod do umelej inteligencie
Úvod do umelej inteligencieJuraj Bednar
 
Progressbar promo - slovenska verzia
Progressbar promo - slovenska verziaProgressbar promo - slovenska verzia
Progressbar promo - slovenska verziaJuraj Bednar
 
Progressbar promo - english version
Progressbar promo - english versionProgressbar promo - english version
Progressbar promo - english versionJuraj Bednar
 
DSSH: Innovation in SSH
DSSH: Innovation in SSHDSSH: Innovation in SSH
DSSH: Innovation in SSHJuraj Bednar
 
Telefónia a VoIP barcamp
Telefónia a VoIP barcampTelefónia a VoIP barcamp
Telefónia a VoIP barcampJuraj Bednar
 

Más de Juraj Bednar (16)

Optionality, uncertainty and freedom from HCPP
Optionality, uncertainty and freedom from HCPPOptionality, uncertainty and freedom from HCPP
Optionality, uncertainty and freedom from HCPP
 
Biohacking a mentální koučing - Miroslav Nečas, Biohacking meetup Paralelná p...
Biohacking a mentální koučing - Miroslav Nečas, Biohacking meetup Paralelná p...Biohacking a mentální koučing - Miroslav Nečas, Biohacking meetup Paralelná p...
Biohacking a mentální koučing - Miroslav Nečas, Biohacking meetup Paralelná p...
 
Tedsig introduction
Tedsig introductionTedsig introduction
Tedsig introduction
 
Úvod do biohackingu, Paralelná Polis
Úvod do biohackingu, Paralelná PolisÚvod do biohackingu, Paralelná Polis
Úvod do biohackingu, Paralelná Polis
 
Sifrovanie hovorov a textovych sprav
Sifrovanie hovorov a textovych spravSifrovanie hovorov a textovych sprav
Sifrovanie hovorov a textovych sprav
 
Tedx hacktivism
Tedx hacktivismTedx hacktivism
Tedx hacktivism
 
Processing workshop intro
Processing workshop introProcessing workshop intro
Processing workshop intro
 
Phone security
Phone securityPhone security
Phone security
 
Dssh @ Confidence, Prague 2010
Dssh @ Confidence, Prague 2010Dssh @ Confidence, Prague 2010
Dssh @ Confidence, Prague 2010
 
Processing a Arduino
Processing a ArduinoProcessing a Arduino
Processing a Arduino
 
Processing and Arduino
Processing and ArduinoProcessing and Arduino
Processing and Arduino
 
Úvod do umelej inteligencie
Úvod do umelej inteligencieÚvod do umelej inteligencie
Úvod do umelej inteligencie
 
Progressbar promo - slovenska verzia
Progressbar promo - slovenska verziaProgressbar promo - slovenska verzia
Progressbar promo - slovenska verzia
 
Progressbar promo - english version
Progressbar promo - english versionProgressbar promo - english version
Progressbar promo - english version
 
DSSH: Innovation in SSH
DSSH: Innovation in SSHDSSH: Innovation in SSH
DSSH: Innovation in SSH
 
Telefónia a VoIP barcamp
Telefónia a VoIP barcampTelefónia a VoIP barcamp
Telefónia a VoIP barcamp
 

Mne to na notebooku funguje

  • 1. “Mne to na notebooku funguje” Ako spraviť z webovej aplikácie, ktorá funguje vývojárovi na počítači škálovateľnú web aplikáciu Juraj Bednár juraj.bednar@digmia.com
  • 2. Vývojár programuje aplikáciu… Fedora 30000 vo VirtualBox PHP 12 NodeJS-git-HEAD MongoDB-nightly-build optimizator80000
  • 3. Chce to vidieť zákazník… Fedora 30000 vo VirtualBox …. Žiadne zálohy Prístup na testovacej adrese Počet užívateľov: 5
  • 5. Hurá “profi” ostrá prevádzka Internet
  • 6. Nefunguje to! • Máte “starú” verziu (napr. RHEL 6 namiesto Fedora 30000) • PHP máte nižšej verzie a zabudli ste to skompilovať s týmto patchom a týmito špeciálnymi voľbami – Potrebujeme mať v php.ini všetko povolené • Nemáme nainštalovaný optimizator80000!
  • 7. Nefunguje to! backport hosting upgradne Kto sa bude starať o bezp. upgrady? - OpenShift – supportovaný vs. nesupportovaný cartridge
  • 8. Stále to nefunguje • (v tomto momente zákazník prichádza väčšinou k nám) • Dôvod: ľubovoľná kombinácia z: – nestíha to – padá to – hackli nás – admin nás má pokrk a nedvíha telefón / nemá na nás čas
  • 9. Navrhneme architektúru… Datacentrum 1 Datacentrum 2 provider independent IP Internet Internet BGP failover Cache/Load balancer App server ….. DB server Statika (img, css, js, video) Cache (memcached) ….. Cache/Load balancer App server ….. DB server Statika (img, css, js, video) Cache (memcached) …..
  • 10. Nefunguje statika • Aplikácia píše statické súbory na disk do lokálneho filesystému – Synchronizácia – CDN • Aplikácia sa odvoláva na statiku pod rovnakou subdoménou (treba spraviť static.domena.sk) – Vieme rýchlo servovať (nginx, varnish) – Cache je nastavená správne
  • 11. HTTP Cache nepomáha • Nízky hitrate, lebo… – No-cache hlavičky • “nikto nemá nič cachovať, aby sa všetky zmeny prejavili hneď” • dobré na vývoj, nepoužiteľné v produkcii • Parametre cachovania treba nastaviť v aplikácii a na serveri servujúcom statiku – “nastavte si to vy” – my nevieme, ktorý obsah sa ako často mení, to vie aplikácia
  • 12. Kedy to spadne? • Väčšina zákazníkov nevie, lebo nikto nerobil load-testy – Apache JMeter je skvelý nástroj, používajte ho – Škálovanie vtedy, keď je to potrebné, nie “keď to nestíha”
  • 13. Rýchlo to vráťte naspäť! • Nové verzie sa majú testovať na testovacom prostredí – Vrátane load testov • Testovacie prostredie nie je: – Notebook vývojára – Fedora 30000 vo virtualboxe vo firme, kde sa to programuje • Testovacie prostredie by malo byť aspoň z hľadiska softvéru 100% zhodné s produkčným • Zmeny sa robia pomocou VCS (git, svn, mercurial, …), nikdy needitovať súbor mimo VCS! – Pekne to má vyriešené OpenShift
  • 14. Aplikačný server • Apache je dobrý na vývoj, takmer nikdy nepoužívame v produkcii (ak sa nedá takmer úplne zacachovať) • Nikdy nie mod_php • Aplikácia nikdy nezapisuje lokálne na disk! (pomocné súbory, statika, …) – Problémy so session handlingom – Problémy s NFS lockmi • Nikdy sa nespolieha na to, že na jednej IP je DB, cache, … server – (ak sa na tom vyslovene nedohodneme…)
  • 15. Databázový server • Nikdy nie je jeden – Master<->slave – Master<->master – + coldspare replika na zálohy • Pozor na vzájomné blokovanie queries • Pozor na zapisovanie – Invalidovanie cache (napr. Logy do DB) • Chýbajú indexy • Aplikácia zle volí DB server – Read-only replika na lokálnom app serveri (za istých okolností)
  • 16. Všeobecné rady • Softvér, ktorý nemá stabilnú verziu s bezpečnostnou podporou (balíčkovací systém) neexistuje – …a neexistujúci softvér nemôžeme v aplikácii používať, lebo neexistuje • Má softvér long term podporu alebo nás vendor prinúti upgradovať na novšiu verziu (s nekompatibilným API)?
  • 17. “Mne to na notebooku funguje” Ako spraviť z webovej aplikácie, ktorá funguje vývojárovi na počítači škálovateľnú web aplikáciu Juraj Bednár juraj.bednar@digmia.com