mne to na notebooku funguje

Post on 11-Jul-2015

491 Views

Category:

Internet

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

“Mne to na notebooku funguje”

Ako spraviť z webovej aplikácie, ktorá funguje vývojárovi napočítači škálovateľnú web aplikáciu

Juraj Bednár juraj.bednar@digmia.com

Vývojár programuje aplikáciu…

Fedora 30000 voVirtualBoxPHP 12NodeJS-git-HEADMongoDB-nightly-buildoptimizator80000

Chce to vidieť zákazník…

Fedora 30000 voVirtualBox….

Žiadne zálohyPrístup na testovacejadresePoč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 namiestoFedora 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ádzaväčš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á nanás čas

Navrhneme architektúru…

Internet Internet

Datacentrum 1 Datacentrum 2

provider independent IPBGP 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 rovnakousubdomé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 prejavilihneď”

• 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 saako často mení, to vie aplikácia

Kedy to spadne?

• Väčšina zákazníkov nevie, lebo nikto nerobilload-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ľadiskasoftvé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 nikdynepouží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ýchokolností)

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áciipoužívať, lebo neexistuje

• Má softvér long term podporu alebo násvendor 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 napočítači škálovateľnú web aplikáciu

Juraj Bednár juraj.bednar@digmia.com

top related