Velké obsahové systémy Petr Joachim @petrjoachim úterý, 30. října 12 Petr Joachim úterý, 30. října 12 Co nás čeká? úterý, 30. října 12 Obecně úterý, 30. října 12 Obsahový portál • Informační systém jako každý jiný • Obsahuje data. Texty a jiné objekty • Je dobré, aby uměl data vhodně zobrazovat úterý, 30. října 12 Malý obsahový portál • Převážně jediný autor (redaktor, korektor a fotograf v jednom) • Často není zdrojem zisku • Nejčastěji blog úterý, 30. října 12 Velký obsahový portál • Píše celá redakce • Používá jej celá řada rolí • Vydělává peníze • Převážně zpravodajství úterý, 30. října 12 V čem je rozdíl? úterý, 30. října 12 V čem je rozdíl? • Více rolí úterý, 30. října 12 V čem je rozdíl? • Více rolí • Větší návštěvnost úterý, 30. října 12 V čem je rozdíl? • Více rolí • Větší návštěvnost • Peníze úterý, 30. října 12 Nároky • Kvalita obsahu • Stabilita služby • Rychlost odezvy Novinky.cz - 5.000.000 PV/den ~ 57 PV/s úterý, 30. října 12 Uživatelské role úterý, 30. října 12 Uživatelské role • Uživatel úterý, 30. října 12 Uživatelské role • Uživatel • Redaktor a Šéfredaktor úterý, 30. října 12 Uživatelské role • Uživatel • Redaktor a Šéfredaktor • Editor a Korektror úterý, 30. října 12 Uživatelské role • Uživatel • Redaktor a Šéfredaktor • Editor a Korektror • Majitel, Akcionář, Produktový manažer úterý, 30. října 12 Uživatelské role • Uživatel • Redaktor a Šéfredaktor • Editor a Korektror • Majitel, Akcionář, Produktový manažer • Obchodník úterý, 30. října 12 Uživatelské role • Uživatel • Redaktor a Šéfredaktor • Editor a Korektror • Majitel, Akcionář, Produktový manažer • Obchodník • Vývojář úterý, 30. října 12 Uživatelské role • Uživatel • Redaktor a Šéfredaktor • Editor a Korektror • Majitel, Akcionář, Produktový manažer • Obchodník • Vývojář • Administrátor úterý, 30. října 12 Uživatelské role • Uživatel • Redaktor a Šéfredaktor • Editor a Korektror • Majitel, Akcionář, Produktový manažer • Obchodník • Vývojář • Administrátor • Grafik, Návrhář úterý, 30. října 12 Uživatel • Stabilní systém • Žádné reklamy • Kvalitní obsah • Pohodlné ovládání úterý, 30. října 12 Redaktor a Šéfredaktor • Dobrý nástroj na chod redakce • Statistiky návštěvnosti, prokliků, ... • Plat úterý, 30. října 12 Editor a Korektor • Totéž co Redaktor • navíc aby systém řešil mnoho za něj úterý, 30. října 12 Majitel, ... • Zisk • Spokojenost uživatelů • Vysokou návštěvnost • Věhlas úterý, 30. října 12 Obchodník • Spoustu reklamního prostoru • Hodně návštěvníků, kteří klikají na reklamy úterý, 30. října 12 Vývojář • Automatické testy • Automatické nasazování • Automaticky generované featury • Žádné uživatele • Žádnou redakci úterý, 30. října 12 Administrátor • Žádnou databázi • Žádné technologické kejkle • Minimum obrázků a žádné videa úterý, 30. října 12 Grafik a Návrhář • Krásný web • Kvalitní obsah • Obrázky, videa úterý, 30. října 12 Nároky podruhé • Kvalita obsahu • Stabilita služby • Rychlost odezvy Novinky.cz - 5.000.000 PV/den ~ 57 PV/s úterý, 30. října 12 Technicky úterý, 30. října 12 Řešení je na nás • Apache/PHP • MySQL • Hotovo? úterý, 30. října 12 Jak a proč to tak děláme • Jak s daty? • Jak s množstvím requestů? úterý, 30. října 12 Naše data • Obrázky • Videa • Text • Vazby mezi daty • Statistiky • Sezení uživatelů úterý, 30. října 12 Kam s daty • Relační databáze SQL • Filesystém • CDN (content delivery network) • NoSQL • a další úterý, 30. října 12 úterý, 30. října 12 Statistika • NE v jedné databázi s výdejem • NE přímý zápis do SQL úterý, 30. října 12 Stabilita? • Výpadky • Přetížení • Nedostupnosti úterý, 30. října 12 Monitoring • Cokoli co má bežet pořád • A to ostatní co má běžet jen někdy úterý, 30. října 12 Replikace databází • Master - master • Cluster úterý, 30. října 12 Soubory ve FileSystému • Síťový FS (nfs, seznamfs, ...) • Synchronizace mezi lokálními FS (rsync, nginx sync) úterý, 30. října 12 Cache • Ulehčí databázi • Zmenší CPU zátěž • Zrychlí výdej • Pokud je dobře navržená úterý, 30. října 12 Architektura • Škálovatelnost • Více vrstev úterý, 30. října 12 Zevnitř úterý, 30. října 12 Architektura BFU http://novinky.cz úterý, 30. října 12 Architektura DBweb server BFU http://novinky.cz GET /domaci/ HTTP/1.1 FS úterý, 30. října 12 Architektura DB web server BFU rpc serverproxy http://novinky.cz GET /domaci/ HTTP/1.1 FS cache úterý, 30. října 12 Architektura BFU http://novinky.cz GET /domaci/ HTTP/1.1 balancer web container proxy web FS cache proxy web FS cache rpc container rpc db farm master slave RW RO úterý, 30. října 12 Když se něco pokazí • Logování chyb • Přístup k logům • Možnost zjištění stavu úterý, 30. října 12 Dotazy a odpovědi úterý, 30. října 12 Děkuji za pozornost… Petr Joachim @petrjoachim úterý, 30. října 12 úterý, 30. října 12