Professional Documents
Culture Documents
Hardware
ARCHITECTURE / COMMODITY HARDWARE
Description
Bien quinvisibles depuis nos navigateurs, des millions de serveurs
fonctionnent continuellement pour que le Web reste disponible 24h/24.
Mme si les chiffres restent confidentiels, certains grands acteurs du
Web peuvent avoir des dizaines, des centaines de milliers de machines
comme EC2[1] voire aux alentours de un million chez Google[2]. La
mise en uvre dun si grand nombre de machines reprsente un dfi
technique mais surtout conomique.
La grande majorit de ces acteurs ont relev ce dfi en utilisant
du matriel de grande srie, du commodity hardware
terme que nous allons prciser par la suite.
Cest lune des raisons qui conduit les gants du Web utiliser un
agencement de nombreuses machines de grande srie la place dun seul
grand systme. Un seul service aux utilisateurs, une seule application,
peut ainsi sexcuter sur des centaines de machines. On parle ce
niveau-l de Warehouse Scale Computer[3], des centaines de machines
prenant la place dun seul serveur.
Enfin, les ordres de grandeur des traitements mis en uvre par les gants
du Web sont sans commune mesure avec les traitements traditionnels
dinformatique de gestion dont le nombre dutilisateurs tait jusque-l
born par le nombre demploys. Aucune machine, aussi grosse soit-elle,
ne sera en mesure de rpondre leurs besoins.
[5] Early on, there was an emphasis on the dollar per (search) query, [Urs] Hoelzle said. We
were forced to focus. Revenue per query is very low. > http://news.cnet.com/8301-1001_3-
10209580-92.html
[6] Ibid, [3] page prcdente.
Aux chelles mises en uvre par les gants du Web plusieurs milliers de
machines coordonnes pour excuter une seule fonction dautres cots
deviennent extrmement importants : puissance lectrique, climatisation,
m. Le cot par transaction doit englober ces diffrents aspects.
Ce sont ces constats qui ont amen les gants du Web privilgier la
croissance horizontale (scale-out) base de commodity hardware.
Les machines de type SMP (Symetric Multi Processor), utilises dans une
optique de scale-up, permettent aujourdhui dutiliser la programmation
standard (avec accs toute la mmoire et tous les disques de faon
uniforme).
[7] Cette architecture est connue sous le nom darchitecture de Von Neumann.
En effet, les chiffres sur le schma montrent leffort fait pour que les dbits
et les latences soient sensiblement identiques entre un processeur, sa
mmoire et ses disques, quils soient connects directement, connects
sur le mme processor book[9] ou sur des processor books diffrents. Sil
reste une caractristique NUMA (Non Uniform Memory Access : un accs
la mmoire proche est plus rapide que laccs la mmoire dans une
autre partie du systme), celle-ci se concentre sur la mmoire centrale
avec des diffrences de latence et de bande passante dans un ratio 1
Ainsi, ds que lon passe par le rseau pour accder une donne sur
un autre serveur, les temps daccs augmentent et le dbit diminue dun
rapport 1.000. Par ailleurs, les quipements rseau en entre du datacenter
constituent le facteur limitant par rapport la bande passante agrge de
toutes les machines.
Par consquent, pour optimiser les temps daccs et les dbits au sein
du datacenter, il faut rpartir de faon pertinente les donnes et les
traitements entre les serveurs (notamment pour viter de distribuer des
donnes couramment accder ensemble entre plusieurs machines). Or,
les systmes dexploitation et les couches middleware traditionnelles ne
prennent pas en charge ce type de fonctionnement. Il est donc ncessaire
de les traiter au nouveau applicatif. Cest prcisment l quinterviennent
les stratgies de sharding[10].
La partie frontale des services, servir les pages Web, saccommode assez
facilement de ces contraintes du fait du caractre sans tat et facilement
routable des requtes HTTP entre plusieurs machines. Les autres applicatifs
devront par contre, grer explicitement les changes rseau ou se baser
sur des nouvelles couches middleware spcifiques. Les problmatiques
de stockage sur ce genre de matriel sont mises en uvre chez les gants
du Web galement avec des techniques de sharding.
Cela conduit les gants du Web considrer que le systme doit pouvoir
fonctionner continuellement avec certains composants en panne. L
encore, la couche applicative est responsable dassurer cette tolrance
aux pannes (cf. Design for Failure p. 189).
[12] SGI est aujourdhui issu de la fusion de Silicon Graphics, Cray et surtout Rackable qui
possdait lexpertise dans les serveurs x86.
[13] > http://www.youtube.com/watch?v=Ho1GEyftpmQ
Exceptions !
Les exemples de gants du Web communiquant sur des technologies
hors x86 sont quasi inexistants. Si lon remontait un peu dans le temps, on
pourrait trouver un logo Powered By Sun chez Salesforce[14].
Et chez moi ?
Le down sizing[15] cest--dire la volont de remplacer les serveurs
centraux par des machines plus petites a connu son heure de gloire dans
les annes 90. Lobjectif nest pas ici de plbisciter de la mme faon le
commodity hardware mme si au premier abord on pourrait penser que le
x86 a envahi toute lentreprise. Le choix extensif du commodity hardware
va plus loin que cela en transfrant sur lapplicatif la responsabilit de la
scalabilit et de la tolrance aux pannes.
trs grande chelle, comme chez les gants du Web, lorsque les cots
lectriques et dinvestissement deviennent dterminants, il sagit de la
seule solution viable. Pour des applications existantes pouvant se conten-
ter des ressources dun seul gros serveur multiprocesseurs, le cot du (re-)
dveloppement en systme distribu et le cot du hardware viennent par-
fois squilibrer dans les SI.
Patterns connexes
Linformatique distribue est donc indispensable lutilisation du commodity
hardware. Des patterns comme le sharding (cf. Sharding p. 163) doivent
ncessairement tre implments dans le code pour pouvoir mettre en
uvre du commodity hardware pour le stockage de la donne.