O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Mne to na notebooku funguje

922 visualizações

Publicada em

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

Publicada em: Internet
  • Seja o primeiro a comentar

Mne to na notebooku funguje

  1. 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. 2. Vývojár programuje aplikáciu… Fedora 30000 vo VirtualBox PHP 12 NodeJS-git-HEAD MongoDB-nightly-build optimizator80000
  3. 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
  4. 4. Hurá ostrá prevádzka! Internet
  5. 5. Hurá “profi” ostrá prevádzka Internet
  6. 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. 7. Nefunguje to! backport hosting upgradne Kto sa bude starať o bezp. upgrady? - OpenShift – supportovaný vs. nesupportovaný cartridge
  8. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×