Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
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
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.