ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
¡°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 
¨C 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 ¨C 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: 
¨C nest¨ªha to 
¨C pad¨¢ to 
¨C hackli n¨¢s 
¨C 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 
¨C Synchroniz¨¢cia 
¨C CDN 
? Aplik¨¢cia sa odvol¨¢va na statiku pod rovnakou 
subdom¨¦nou (treba spravi? static.domena.sk) 
¨C Vieme r?chlo servova? (nginx, varnish) 
¨C Cache je nastaven¨¢ spr¨¢vne
HTTP Cache nepom¨¢ha 
? N¨ªzky hitrate, lebo¡­ 
¨C 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 
¨C ¡°nastavte si to vy¡± ¨C 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 
¨C Apache JMeter je skvel? n¨¢stroj, pou?¨ªvajte ho 
¨C ?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¨ª 
¨C Vr¨¢tane load testov 
? Testovacie prostredie nie je: 
¨C Notebook v?voj¨¢ra 
¨C 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! 
¨C 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, ¡­) 
¨C Probl¨¦my so session handlingom 
¨C Probl¨¦my s NFS lockmi 
? Nikdy sa nespolieha na to, ?e na jednej IP je DB, 
cache, ¡­ server 
¨C (ak sa na tom vyslovene nedohodneme¡­)
Datab¨¢zov? server 
? Nikdy nie je jeden 
¨C Master<->slave 
¨C Master<->master 
¨C + coldspare replika na z¨¢lohy 
? Pozor na vz¨¢jomn¨¦ blokovanie queries 
? Pozor na zapisovanie 
¨C Invalidovanie cache (napr. Logy do DB) 
? Ch?baj¨² indexy 
? Aplik¨¢cia zle vol¨ª DB server 
¨C 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 
¨C ¡­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

More Related Content

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 ¨C 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 ¨C 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: ¨C nest¨ªha to ¨C pad¨¢ to ¨C hackli n¨¢s ¨C 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 ¨C Synchroniz¨¢cia ¨C CDN ? Aplik¨¢cia sa odvol¨¢va na statiku pod rovnakou subdom¨¦nou (treba spravi? static.domena.sk) ¨C Vieme r?chlo servova? (nginx, varnish) ¨C Cache je nastaven¨¢ spr¨¢vne
  • 11. HTTP Cache nepom¨¢ha ? N¨ªzky hitrate, lebo¡­ ¨C 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 ¨C ¡°nastavte si to vy¡± ¨C 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 ¨C Apache JMeter je skvel? n¨¢stroj, pou?¨ªvajte ho ¨C ?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¨ª ¨C Vr¨¢tane load testov ? Testovacie prostredie nie je: ¨C Notebook v?voj¨¢ra ¨C 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! ¨C 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, ¡­) ¨C Probl¨¦my so session handlingom ¨C Probl¨¦my s NFS lockmi ? Nikdy sa nespolieha na to, ?e na jednej IP je DB, cache, ¡­ server ¨C (ak sa na tom vyslovene nedohodneme¡­)
  • 15. Datab¨¢zov? server ? Nikdy nie je jeden ¨C Master<->slave ¨C Master<->master ¨C + coldspare replika na z¨¢lohy ? Pozor na vz¨¢jomn¨¦ blokovanie queries ? Pozor na zapisovanie ¨C Invalidovanie cache (napr. Logy do DB) ? Ch?baj¨² indexy ? Aplik¨¢cia zle vol¨ª DB server ¨C 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 ¨C ¡­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