Ustream.tv Bepillantás egy közösségi élővideo site működésébe Tolmács Márk
Pillantás bele... Facebook-clean, YouTube simple......so you get the drill
Mivel kell szembenéznünk... Web front-end 30 000 kérés / perc / szerver (átlag) Adatbázis back-end 135 000 kérés / perc / szerver (átlag) Cache front-end 55 000 kérés / perc /szerver (átlag) legalábbis éjszaka...
...és ha tényleg szeretnek bennüket... Web front-end 168 000 kérés / perc / szerver (peak) Adatbázis 260 000 kérés / perc / szerver (peak) Cache 300 000 kérés / perc / szerver (peak)
...mi frappánsan megoldjuk 6 web front-enddel (Apache 2.x) 2 front-end cache szerverrel (Varnish) 2 statikus szerver (Nginx) 2 master + 3 slave adatbázis szerverrel (MySQL 5.x) 16 Flash Media Serverrel no meg némi CDN támogatással (de psszt!)
2 000 000 látogató / nap
2 000 000 látogató / nap * Magyaroszág lakossága 10 millió
2 000 000 látogató / nap köszönjük a többször is visszalátogatóknak!
Deployment A szükség nagy Úr!
Multi-master Subversion?! Yes, you can!
Multi-master Subversion pre- és post-commit hookok optimistic locking számos funkcionális ellenőrzés rsync a végső fázisban
PHP - a mindenes Hatékonyan és gyorsan
Saját keretrendszer Óriások vállán (Facebook, Flickr, stb...) Ötvöztük a legjobb megoldásokat OOP és MVC Előny: Saját szükségleteinkre formáljuk
Reflection API Controller validáció View paraméterek validációja
Reflection API Docblock annotations Típusellenőrzés Sebesség / kényelem APC cache
Statikus filekezelés JS/CSS fileok tömörítve CDN-ről kerülnek a látogatóhoz CSS sprite-ok extenzív használata
Statikus filekezelés Hatékony és egyben kényelmes megoldás Függőségi csoportok (főként JS) SVN revízió mint verzió CDN edge logika
Adatbázisok MySQL multi-master setup (1-1) Load-balanceolt MySQL slave-ek (3)
Adatbázisok DAO minta Kézzel finomhangolt SQL lekérdezések Több szintű cache-elés Többnyire statikus osztályok
JavaScript tippek-trükkök Minden a kódszervezésen múlik
A böngésző első osztályú platform MooToolstól a jquery-ig Nem minden objektum ami fénylik Komponensek és widgetek Interakció a Flash playerrel
A böngésző első osztályú platform Skálázhatósági erények Kódszervezés Egyszerű Event Dispatcher
Flash API Live video for the masses
Flash API Támogatunk minden elterjedt eszközt Flash Professional, Flex, Flashdevelop Támogatjuk AIR alkalmazások készítését A Ustream.tv Flash alkalmazásai is erre épülnek
Flash API Runtime Shared Library-k (moduláris felépítés) Az SWC állományok is elérhetőek Statikus fordítás is lehetséges (bár nem ajánljuk) Dokumentáció ASDoc formátumban is Példakódok is elérhetőek
Broadcasting in HQ WireCast Böngésző plug-in Flash Media Encoder Tricaster
Ha sikerült felcsigáznunk: http://svn.ustream.tv/flash/
Mobile me tender Mesélj akkor is ha úton vagy
Támogatott eszközök Nokia (Symbian) Apple iphone Android Windows Mobile Teljes lista: http://www.ustream.tv/mobile
Broadcast mobilról Direkt RTMP kapcsolat Adaptív bitráta Frame-dropping végső esetben Bájtkód-optimalizált alkalmazások Cél a minimális lag
Mobil kiegészítők Twitter Chat ( IRC ) Szavazás Viral marketing (automatikus feltöltés) Facebook YouTube
Újradefiniált határok Egy kellemes szombat este hazafelé menet megpillantod a naplementét és legszívesebben megmutatnád mindenkinek! Mostmár megteheted!
Jelentkezz mobiltesztelőnek!
Jelentkezz mobiltesztelőnek! Nincs más dolgod, mint emailt írni a betatest@ustream.tv email címen.
Watershed Nekem is kell Ustream!
Watershed Legyen saját viewered, broadcastered, chated Kiterjedt API felhasználókezelésre (fordított SOAP) Metrikák Ugyan az a Flash API mint a ustream.tv-n
Watershed - fordított SOAP Watershed a kliens Az Ügyfél nyújtja a szervert Esemény alapú Szinkron (a legtöbb hívás)
Developer Community Törekvések a közösség felé nyitásban További API és mashup lehetőségek Kommunikáció Fejlesztők támogatása
Kérdések?
Köszönöm! Tolmács Márk - tolmacs.mark@ustream.tv Béta teszter jelentkezés: betatest@ustream.tv