Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Architektura aplikací v Seznam.cz

Podobné prezentace


Prezentace na téma: "Architektura aplikací v Seznam.cz"— Transkript prezentace:

1 Architektura aplikací v Seznam.cz
Vlastimil Pečínka … najdu tam, co neznám !

2 Úvodní axiomy na Seznamu měl v minulosti provozní potíže a zcela jistě je bude mít i v budoucnu Je zřejmý rozdíl mezi fulltextem Seznamu a konkurence, z podstaty věci ten rozdíl bude vždy To, co děláme v technickém oddělení, není nejlepší ani nejoptimálnější, je to však prověřené, sebemotivující, a ne každý to umí Ivo Lukačovič prodává tak maximálně svoje Sony Vaio

3 Seznam jako technologická firma
Říkáme si tak, ačkoliv nevyrábíme a nedodáváme technologie na trh Vyrábíme, provozujeme a vylepšujeme technologie (aplikace, přístupy, frameworky, …) pro provoz vlastních služeb Vyrábíme to, co „nejde koupit“ IT je pro nás konkurenční výhoda (viz. The Red Shift Theory; Greg Papadopoulos)

4 Seznam jako technologická firma
ový cluster Internetové fulltextové hledání Mobilní služby: WapProxy, MobileDetect CDN (Content Delivery Network) Mapy.cz Krabicový fulltext ELSA Jednoduchý master-master replikovaný FS Metaserver, webpublisher, a další…

5 Approach & tools 3-vrstvá architektura: frontend, backend, storage
Middleware: FastRPC, XML-RPC Frontend: vlastní web-publisher Backend: vlastní meta-server Storage: MySQL nebo proprietární řešení SQLWrapper: škálovatelnost a failover pro DB SeznamFS: jednoduchý master-master mirroring Dualita služeb: paralelní provoz ze 2 datacenter

6 3-vrstvá architektura Obecná architektura V jedné lokalitě
Kooperující služby Middleware Loadbalancing Škálovatelnost Failover

7 Backend „ebox“ Backendy „ubox“ a „sbox“ Backend „frog“ Backend
3-vrstvá architektura Backend „ebox“ Backendy „ubox“ a „sbox“ Backend „frog“ Backend „tvprogram“ Frontend „homepage userweb“

8 3-vrstvá architektura Homepage, webmail, novinky.cz, sport.cz,…
ubox, sbox, ebox, frog, tvprogram, …

9 Duální provoz

10 DNS balancing & failover

11 Backendy - metaserver Kostra pro tvorbu backendů Umí pouze
Načíst a parsovat konfiguraci Inicializovat síťová rozhraní a předávat data skrze něj Process management (fork / kill) Rozšiřitelný s pomocí vlastních nebo generických modulů generický modul podporuje komunikační protokol a možnost psát logiku v „libovolném“ jazyce

12 program Backendy - metaserver handler config init core process
generický handler program

13 Frontendy - webpublisher
Nadstavba mod_python pro tvorbu webovek v jazyce Python pod serverem Apache HTTP Od roku 2005 z důvodů vylepšený „dispatching requestů“ globální konfigurace (výkon, přístupnost) „check request“ objekt inteligentní odchycování výjimek implicitní metoda a jiné…

14 Replikace MySQL Failover? Latence? Výkon?

15 SeznamFS Jednoduchý zrcadlený filesystém postavený nad FUSE (Filesystem in Userspace) – netřeba kernel hrátek Je to FS, není nutné předělávat aplikace (vlastní I/O knihovna, apod.) Výkon: R/O operace lze přímo z hostitelského filesystému, minimální síťový overhead Neřeší konflikty na souborovém systému, musí vyřešit aplikace

16 SeznamFS Aplikace Aplikace Inspirace u MySQL Binární log změn
Master-master/slave „Block based“ změny Aplikace Aplikace SeznamFS SeznamFS FS (ext3, xfs, …) FS (ext3, xfs, …) Harddisk Harddisk

17 Co (empiricky) funguje
3-vrstvá architektura (kooperující prostředí) Pragmatický přístup (SeznamFS) Opensource (vždy je na čem stavět, inspirace) Dělení kompetencí (vývojář vs. administrátor) Práce s timeouty (chybové hlášení lepší než nic) Širší portfolio služeb (širší záběr know-how)

18 Co (empiricky) nefunguje
Akademický přístup „normální formy“ u DB pravidelně obcházeny Komplikovaný přístup mnoho vah, které nelze nikdy optimálně nastavit mnoho nepotřebné funkčnosti Outsourcing obecně (je-li pro vás IT výhodou) zejména pokud si na vás někdo know-how získává „To nemůže nastat“ přístup Teorie velkých čísel a objemů => nastane to

19 Poděkování & odkazy Seznam Opensource Seznam blog Mod_python
FastRPC, Teng, SeznamFS, JAK, … Seznam blog Mod_python MySQL replikace dokumentace na


Stáhnout ppt "Architektura aplikací v Seznam.cz"

Podobné prezentace


Reklamy Google