Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms Maarten van Steen1 1 VU
Kitlei Róbert 2
Amsterdam, Dept. Computer Science 2 ELTE Informatikai Kar
12. rész: Elosztott webalapú rendszerek 2015. május 24.
Tartalomjegyzék Fejezet 01: Bevezetés 02: Architektúrák 03: Folyamatok 04: Kommunikáció 05: Elnevezési rendszerek 06: Szinkronizáció 07: Konzisztencia & replikáció 08: Hibaturés ˝ 10: Objektumalapú elosztott rendszerek 11: Elosztott fájlrendszerek 12: Elosztott webalapú rendszerek
Maarten van Steen, Kitlei Róbert
Elosztott rendszerek
2 / 17
12.1 Architektúra
12.2 Folyamatok
12.6 Konzisztencia és replikáció
Elosztott webalapú rendszerek A WWW (világháló, World Wide Web) olyan szerverek összessége, amelyek HTTP protokollon keresztül különféle tartalmakat szolgálnak ki. A dokumentumokat hiperhivatkozások kapcsolják össze. Sok dokumentum szövegalapú: szövegfájl, HTML, XML Egyéb fajták: képek, audio, videó, dokumentum (PDF, PS) A tartalmak lehetnek a kliensoldalon végrehajthatóak (Javascript)
Jelenleg kb. 1 milliárd weboldal létezik, amelyek közül kevesebb mint 200 millió aktív; egy felmérés szerint a szerverek népszerusége: ˝ Apache (40%), IIS (29%), nginx (15%), egyéb (16%).
Maarten van Steen, Kitlei Róbert
Client machine
Server machine
Browser
Web server
2. Server fetches document from local file
OS 3. Response 1. Get document request (HTTP)
Elosztott rendszerek
3 / 17
12.1 Architektúra
12.2 Folyamatok
12.6 Konzisztencia és replikáció
Többrétegu˝ architektúrák
Már a kezdeti kiszolgálók is gyakran három rétegbe tagozódtak. 3. Start process to fetch document 1. Get request
6. Return result
HTTP request handler
CGI program
4. Database interaction
5. HTML document created Web server
Maarten van Steen, Kitlei Róbert
CGI process
Elosztott rendszerek
Database server
4 / 17
12.1 Architektúra
12.2 Folyamatok
12.6 Konzisztencia és replikáció
Webszolgáltatások Felmerült az is, hogy a felhasználó ↔ weboldal interakció mellett az oldalak is igénybe vehetnek szolgáltatásokat más oldalakról ⇒ fontos, hogy a szolgáltatások szabványosak legyenek. Look up a service
Client machine
Server machine
Client application
Server application
Stub
Stub
Communication subsystem
SOAP
Publish service
Communication subsystem Generate stub from WSDL description
Generate stub from WSDL description Servicedescription description(WSDL) (WSDL) Service Service description (WSDL) Directory service (UDDI) Maarten van Steen, Kitlei Róbert
Elosztott rendszerek
5 / 17
12.1 Architektúra
12.2 Folyamatok
12.6 Konzisztencia és replikáció
Webszerverek A szerver szerkezetét a tartalmak kiszolgálásának menete szabja meg. ˝ amelyek a kiszolgálás A szerverekbe beépülo˝ modulok telepíthetok, egyes fázisaiban aktivizálódnak. Module
Module
...
Function
Module
...
... Link between function and hook
Hook
Hook
Hook
Hook
Apache core Functions called per hook Request Maarten van Steen, Kitlei Róbert
Response Elosztott rendszerek
6 / 17
12.1 Architektúra
12.2 Folyamatok
12.6 Konzisztencia és replikáció
Szerverfürtök A teljesítmény és a rendelkezésre állás növelésének érdekében a szerverek sokszor (a felhasználó számára átlátszó módon) többszörözve vannak.
Web server
Web server
Web server
Web server
LAN Front end Request
Front end handles all incoming requests and outgoing responses Response
A kapcsolattartó (front end) szuk ˝ keresztmetszetté válhat, ennek ˝ elkerülésére több lehetoség van. TCP átadás: Valamilyen metrika alapján kiválasztunk egy szervert, és a kliens kiszolgálását az a szerver folytatja. Tartalomérzékeny kéréselosztás (content aware distribution): Lásd következo˝ oldal. Maarten van Steen, Kitlei Róbert
Elosztott rendszerek
7 / 17
12.1 Architektúra
12.2 Folyamatok
12.6 Konzisztencia és replikáció
Szerverfürtök Tartalomérzékeny kéréselosztás (content aware distribution): A HTTP kérés tartalmát is figyelembe vesszük a szerver kiválasztásánál. Ez ˝ megnöveli a kapcsolattartó terhelését, de sok elonye van: segítségével hatékonyabb lehet a szerveroldali cache-elés, és lehetnek bizonyos feladatokra dedikált szervereink. 6. Server responses Web server
5. Forward other messages Other messages Client
Switch Setup request
4. Inform switch
1. Pass setup request to a distributor
Distributor Web server
Maarten van Steen, Kitlei Róbert
3. Hand of f TCP connection
Distributor
Elosztott rendszerek
Dispatcher 2. Dispatcher selects server
8 / 17
12.1 Architektúra
12.2 Folyamatok
12.6 Konzisztencia és replikáció
Webhelyettes A kimeno˝ kapcsolatok kezelésére webhelyetteseket (web proxy) telepíthetünk. Ezek cache-elik a kiszolgált tartalmakat; csak akkor fordulnak a szerverekhez, ha sem náluk, sem a többi helyettesnél nincsen meg a kért tartalom. Web server 3. Forward request to Web server 1. Look in local cache
Cache
Web proxy
2. Ask neighboring proxy caches
Client Client Client HTTP Get request
Web proxy
Cache
Client Client Client Web proxy
Cache
Client Client Client Maarten van Steen, Kitlei Róbert
Elosztott rendszerek
9 / 17
12.1 Architektúra
12.2 Folyamatok
12.6 Konzisztencia és replikáció
Replikáció webkiszolgálókban A replikáció célja a teljesítmény növelése. A rendszer paraméterei (hová célszeru˝ a replikátumokat elhelyezni, konzisztencia megkövetelt ˝ erossége, kérések útvonalválasztása) változóak lehetnek, ezeket célszeru˝ önszabályozással beállítani. Uncontrollable parameters (disturbance / noise)
Corrections
Initial configuration +/Replica placement
+/Consistency enforcement
Web hosting system
Observed output
+/Request routing
Reference input
Metric estimation
Analysis Adjustment triggers
Maarten van Steen, Kitlei Róbert
Elosztott rendszerek
Measured output
10 / 17
12.1 Architektúra
12.2 Folyamatok
12.6 Konzisztencia és replikáció
Hirtelen terhelés A terhelés néha ugrásszeruen ˝ megemelkedik (flash crowd, flash mob), ˝ ezt még akkor sem könnyu˝ kezelni, ha az eroforráskezelés dinamikus.
2 days (a)
2 days (b)
6 days (c)
2.5 days (d)
Maarten van Steen, Kitlei Róbert
Elosztott rendszerek
11 / 17
12.1 Architektúra
12.2 Folyamatok
12.6 Konzisztencia és replikáció
Szerveroldali replikáció A tartalomkézbesíto˝ hálózatok (Content Delivery Network, CDN) nagy teljesítményu˝ és rendelkezésre állású elosztott rendszerek, amelyeknek célja dokumentumok hatékony kiszolgálása. CDN server
Cache
6. Get embedded documents (if not already cached)
5. Get embedded documents Return IP address client-best server CDN DNS server
7. Embedded documents 1. Get base document 4
DNS lookups
Client
Origin server
2. Document with refs to embedded documents
3 Regular DNS system
Maarten van Steen, Kitlei Róbert
Elosztott rendszerek
12 / 17
12.1 Architektúra
12.2 Folyamatok
12.6 Konzisztencia és replikáció
Replikáció webalkalmazásokban ˝ Ha a CDN tárolt adataiban változás következik be, ez eloször az eredetszerveren jelenik meg. A változásokat el kell juttatni a CDN ˝ függ. szerverekhez; ennek a célszeru˝ módja a rendszer jellegétol Teljes replikáció: sok olvasás, kevés írás, összetett lekérdezések Részleges replikáció: sok olv., kevés írás, egyszeru˝ lekérdezések Tartalom szerinti gyorsítótárazás: Az adatbázist az edge szerver módosított, a lekérdezésekhez illeszkedo˝ alakban tárolja helyben, és feliratkozik a szerveren a frissítésekre. Jól muködik ˝ intervallumokra vonatkozó, összetett lekérdezésekre. Eredmények gyorsítótárazása: Az edge szerver a korábbi lekérdezések eredményeit tárolja el. Jól muködik ˝ egyszeru˝ lekérdezésekre, amelyek egyedi adatokra (nem intervallumokra) vonatkoznak. ˝ akkor a replikáció akár ronthatja is a Ha az írások számaránya megno, rendszer teljesítményét. Maarten van Steen, Kitlei Róbert
Elosztott rendszerek
13 / 17
12.1 Architektúra
12.2 Folyamatok
12.6 Konzisztencia és replikáció
Replikáció webalkalmazásokban: nincsen replikáció Edge-server side
Client
Origin-server side
query
Web server
Web server
response
Appl logic
Appl logic
Content-blind cache
Database copy full/partial data replication
Content-aware cache
Maarten van Steen, Kitlei Róbert
Schema
full schema replication/ query templates
Elosztott rendszerek
Schema
Authoritative database
14 / 17
12.1 Architektúra
12.2 Folyamatok
12.6 Konzisztencia és replikáció
Webalk. replikációja: részleges/teljes replikáció Edge-server side
Client
Origin-server side
query
Web server
Web server
response
Appl logic
Appl logic
Content-blind cache
Database copy full/partial data replication
Content-aware cache
Schema
Maarten van Steen, Kitlei Róbert
full schema replication/ query templates
Elosztott rendszerek
Schema
Authoritative database
15 / 17
12.1 Architektúra
12.2 Folyamatok
12.6 Konzisztencia és replikáció
Webalk. replikációja: tartalom szerinti gyorsítótárazás Edge-server side
Client
Origin-server side
query
Web server
Web server
response
Appl logic
Appl logic
Content-blind cache
Database copy full/partial data replication
Content-aware cache
Schema
Maarten van Steen, Kitlei Róbert
full schema replication/ query templates
Elosztott rendszerek
Schema
Authoritative database
16 / 17
12.1 Architektúra
12.2 Folyamatok
12.6 Konzisztencia és replikáció
Webalk. replikációja: eredmények gyorsítótárazása Edge-server side
Client
Origin-server side
query
Web server
Web server
response
Appl logic
Appl logic
Content-blind cache
Database copy full/partial data replication
Content-aware cache
Maarten van Steen, Kitlei Róbert
Schema
full schema replication/ query templates
Elosztott rendszerek
Schema
Authoritative database
17 / 17