Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Mne to na notebooku funguje

927 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Internet
  • Als Erste(r) kommentieren

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

×