Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les news > Site du Zéro > Maintenance dans la nuit du jeudi au vendredi > Lecture d'une news

Commentaires de news :
Maintenance dans la nuit du jeudi au vendredi

Revenir à liste des news

Maintenance dans la nuit du jeudi au vendredi

# Par M@teo21, le 22/04/2008 à 12:58:09
"The Itchy and Scratchy shooooooow !"
Itchy et Scratchy


Chers auditeurs, bonjour !

J'ai l'honneur de vous annoncer qu'un nouvel épisode des aventures d'Itchy et Scratchy est programmé pour la nuit du jeudi au vendredi de cette semaine. Un épisode sanglant, à l'issue incertaine... comme on les aime !

Mais... de quoi vous parlez ? Moi pas comprendre o_O


Petit rappel des faits pour nos nouveaux auditeurs : le Site du Zéro étant un site à fort trafic, il est hébergé sur des serveurs dédiés. Nous possédons plusieurs serveurs, 4 très exactement, à qui nous avons donné des noms des personnages des Simpsons pour mieux nous repérer :

  • Bart : notre plus vieux serveur dédié, à l'époque où le site fonctionnait encore sur un seul serveur. Il sert aujourd'hui uniquement à des fins de sauvegarde, et de gestion de services annexes (mails, dns...). A l'occasion, nous le transformons aussi en serveur de jeux pour des soirées jeux ouvertes à tous.
  • Lisa : bien plus performant que Bart, ce serveur assure aujourd'hui la fonction de serveur web (Apache 2).
  • Itchy et Scratchy : ce sont les 2 serveurs les plus récents, achetés grâce aux bénéfices réalisés par la précédente vente de T-Shirts SdZ. Leur rôle était initialement de servir de serveurs SQL (PostgreSQL) en réplication et load balancing.

Oui mais voilà, le destin en a décidé autrement. La mise en place d'un cluster de serveurs PostgreSQL s'est révélée bien plus ardue que prévu, et le manque de documentation à ce sujet ne nous a pas aidé. Finalement, après de nombreuses tentatives, nous avons décidé de ne faire tourner PostgreSQL que sur Itchy et de ne pas faire de réplication, en attendant d'arriver à mettre en place l'architecture que nous voulions.

Réplication ? Load balancing ? C'est-à-dire ?


C'est un sujet un peu technique, mais pour la culture générale c'est toujours bon de savoir "en gros" de quoi il s'agit.

Photo des serveurs Itchy et Scratchy
Photo d'Itchy et Scratchy
Alors en quelques mots, l'objectif est d'avoir 2 copies de la base de données du site qui tournent en même temps sur 2 serveurs différents. Ces serveurs seront en réplication maître / maître, ce qui veut dire que les serveurs vont mutuellement observer les changements qui interviennent sur l'un et l'autre pour les répliquer (les dupliquer).
En clair, si on insère une ligne dans une table sur Itchy, Scratchy doit écrire cette ligne en même temps. Pareil pour une mise à jour et une suppression de ligne.

Il s'agit d'une réplication synchrone, c'est-à-dire que la mise à jour doit être simultanée sur les 2 serveurs. Il ne peut pas y avoir de délai car cela poserait alors de graves problèmes d'accès au site (on aurait 2 "versions" différentes du site en même temps). Là, avec une réplication synchrone, on peut littéralement écrire l'équation : itchy = scratchy.

Par ailleurs, Lisa (le serveur web) doit disposer d'un système de load balancing pour rediriger les visiteurs vers Itchy ou Scratchy en fonction de la charge de chacun d'eux. Notre objectif est d'envoyer chaque requête de chaque visiteur vers le serveur le moins chargé à l'instant T pour faire ce qu'on appelle une répartition de charge (load balancing).
Bien entendu, les requêtes sont répliquées sur l'autre serveur immédiatement mais... pas les requêtes de sélection (SELECT) ! Comme ce sont en général les requêtes les plus courantes, ça veut dire qu'on peut répartir la charge pour ce type de requêtes et donc au final réduire les temps de chargement des pages du site.

Il y a par ailleurs une autre application très utile à cette technique : le failover. Si pour une raison ou une autre l'un des serveurs venait à rendre l'âme (crash des disques ou autre), alors l'autre serveur prendrait le relai et encaisserait la charge à lui tout seul. Plus difficilement certes, mais pendant ce temps le site n'est pas coupé et nous pouvons tranquillement travailler à remettre en route le serveur qui est mal en point.


Au final, le schéma des serveurs désiré est le suivant :



Notez qu'Itchy et Scratchy sont respectivement référencés sur ce schéma sous les noms "Nouveau serveur 1" et "Nouveau serveur 2".


Bon, tout ça pour dire que nous avons une bonne nouvelle : cette architecture redevient enfin d'actualité !

Après avoir pas mal galéré il faut bien l'avouer (car c'est assez complexe), nous avons réussi à reproduire ce schéma en local sur nos machines de test dans les bureaux de Simple IT. La réplication synchrone maître / maître marche, le load balancing marche. Nous savons comment faire, il ne reste plus qu'à l'appliquer en production sur le SdZ.

C'est néanmoins une opération délicate qui comporte un certain nombre de risques, aussi nous avons besoin de couper le site pendant que nous mettons en place le cluster de serveurs en réplication. Par conséquent :

Le Site du Zéro sera coupé Jeudi soir à partir de 23h


Nous ne connaissons pas la durée nécessaire à la maintenance, car en production on a toujours des surprises. Nous le ferons donc dans la nuit pour gêner le moins de visiteurs possible.

Nous vous tiendrons ensuite informés de l'issue de la maintenance, en espérant que tout se passe bien. Si tout va bien comme nous l'espérons, le serveur Scratchy (jusqu'alors inutilisé) remplira alors complètement sa fonction.

A terme, on devrait donc pouvoir bénéficier d'un Site du Zéro plus rapide et plus résistant aux pannes. Il deviendra aisé par la suite de rajouter un serveur au cluster pour augmenter la puissance du site si besoin est. Ce devrait donc être rassurant pour l'avenir du site quant à sa capacité à accueillir de nouveaux visiteurs :)

237 Commentaires

Désolé, les commentaires de cette news sont désactivés, vous ne pouvez pas en ajouter !

Page : Précédente  1  2  3  ...  5  6  7  8 
Pseudo Commentaire
1 visiteur sur cette news (0 membre et 1 anonyme)
Page : Précédente  1  2  3  ...  5  6  7  8 
Hors ligne Nelty # Posté le 26/04/2008 à 10:35:15
* Garfield *
Avatar
Groupe : Membres
Citation : Marsignou
j'en ai bien l'impression ! :p


Non ça n'a pas marché, regardez les messages de M@teo21 plus haut. ;)

Image utilisateur






Python



À l'ouïe de ce mot, vous pouvez penser à deux choses. La première, c'est le serpent. La deuxième, c'est le langage de programmation. Étant donné que nous sommes sur un site basé autour de ce dernier domaine, je vais plutôt m'intéresser au langage. :p

Concrètement, Python c'est quoi ?



Python est comme je l'ai indiqué plus haut un langage de programmation interprété.
Il est placé sous une licence libre et est un langage dit «multi-plateforme» (il fonctionne sous Windows, Mac et Linux).
Comme beaucoup, il est à la base exploitable en console, mais l'utilisation de GUI est envisageable pour faire une application graphique.

Atouts



Un des gros avantages de Python est qu'il est très simple à l'écriture et vous permet d'adopter de bonnes méthodes de programmation, notamment au niveau de la lisibilité du code.
En effet, ici, plus d'accolades ou autres pour indiquer un bloc d'instruction (if, else, while, ...), tout se fait par indentation.
Ainsi, un tel code en PHP :
Code : PHP
1
2
3
4
5
6
<?php
for($i=1;$i<=3;$i++)
{
echo $i*2.' ';
}
?>

Donnera ceci en Python :
Code : Python
1
2
3
4
for i in xrange(1,4):
  print 2*i
# ou
[i*2 for i in [1,2,3]]


Les deux afficheront (à peu près) :
Citation : Résultat :

2,4,6


Remarquez la simplification du code pour effectuer une action très simple.

Il a aussi l'avantage d'intégrer de nombreuses bibliothèques pour effectuer une multitude d'actions très diverses, dans tous les domaines. math pour les opérations mathématiques par exemple.

Pour finir, il est aussi exploitable sur le Web. Pour l'utiliser, il vous faudra un hébergeur l'acceptant et peut-être inclure certaines bibliothèques selon vos besoins (je pense à CGI pour les traitements de formulaire). À titre d'information, alwaysdata accepte le Python et est gratuit.

Où apprendre ?



Question évidemment indispensable si vous êtes intéressés... La première, la plus évidente, c'est la documentation officielle de Python, malheureusement uniquement disponible en anglais.
Mais il existe un cours très réputé rédigé par un certain Gérard Swinnen qui est disponible en français.
S'il ne vous plaît pas, Google (ou autre moteur de recherche) est votre ami !

Où se faire aider ?



Peut-être une question qui ne vous viendra pas à l'esprit immédiatement, mais quand vous aurez un problème que vous ne saurez résoudre... Ne vous inquiétez pas, d'autres gens sont passés avant vous et sont prêts à vous aider !
Dans un premier temps, je vous conseille de passer sur IRC, channel #python, serveur irc.epiknet.org . Vous y trouverez un petit groupe de gens qui pourront peut-être vous aider.
Après, si vous n'avez pas résolu votre problème, il reste le forum « Autres langages » où des Pythoneux viennent de temps en temps.
Enfin, si votre problème est lié à l'utilisation d'une bibliothèque, n'oubliez pas d'aller consulter sa documentation (très souvent en anglais).
 
Hors ligne woufeigh # Posté le 26/04/2008 à 10:48:33
Webnul
Avatar
Groupe : Membres
On en sait rien il a retenté le coup cette nuit et n'a pas donné de feedback. J'aime bien son "il faut attendre des jours pour décanter etc etc etc" :p

Image utilisateur
 
Hors ligne Zanpa # Posté le 26/04/2008 à 11:37:47
KTHXSPY
Avatar
Groupe : Membres
Citation : woufeigh
il a retenté le coup cette nuit

o_O Tu es le seul au courant dans ce cas.

Haribo a une bonne connexion.
Speedking n'aime pas les livres.
Citation : Nesquick69
Moi perso je préfère me taire quand on m'encule =°



 
Hors ligne thom85 # Posté le 26/04/2008 à 11:51:41
Avatar
Groupe : Membres
non le site était indisponible cette nuit ^^ il y a donc de fortes chances que se soit sa ^^



Si tu te lève avec l'envie de travailler, couche-toi sa passera... :-° :p :lol:

 
Hors ligne M@teo21 # Posté le 26/04/2008 à 12:11:57
Doh ! Nuts. Mmh, donuts !
Avatar
Admins
Oui c'était moi, j'ai recommencé bcp plus tard pour gêner peu de monde et pour être tranquille.
Oui j'ai réussi, plusieurs minutes après la réouverture le site était vraiment en fonctionnement avec la réplication itchy <> scratchy !

J'ai donc réussi mon coup mais il nous restera 2 problèmes :
- rediriger les visiteurs vers le load balancer (parce que là c'est itchy qui prenait toute la charge encore, à la grosse différence près que scratchy le suivait en répliquant). Pas la partie la plus dure à mon avis.
- comprendre pourquoi à deux reprises après 5-6 minutes le cluster d'itchy a arrêté de communiquer avec son réplicateur, rendant la navigation sur le site impossible (toute requête de type update par ex. était refusée car impossible pour le cluster de communiquer avec son réplicateur).

Ce qui se conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément.

Nicolas Boileau (je suis fan)
Autobiographe à ses heures perdues :p
 
Hors ligne jaye # Posté le 26/04/2008 à 12:27:40
Avatar
Groupe : Membres
Citation : M@teo21
- comprendre pourquoi à deux reprises après 5-6 minutes le cluster d'itchy a arrêté de communiquer avec son réplicateur, rendant la navigation sur le site impossible (toute requête de type update par ex. était refusée car impossible pour le cluster de communiquer avec son réplicateur).


moi ce qui me préoccupe, c'est qu'en dehors des problemes de réplication, ca veut dire que le failover ne marche pas ??
 
Hors ligne M@teo21 # Posté le 26/04/2008 à 12:35:07
Doh ! Nuts. Mmh, donuts !
Avatar
Admins
Il ne pouvait pas faire failover dans la configuration que j'avais mis en place puisque tous les visiteurs étaient tjs redirigés vers itchy. C'est donc un détail qui ne demande qu'à être réglé.

Ce qui se conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément.

Nicolas Boileau (je suis fan)
Autobiographe à ses heures perdues :p
 
Hors ligne Adrien93 # Posté le 26/04/2008 à 13:10:36
Avatar
Groupe : Membres
Ah :D Bravo Mateo, j'espère que ces problèmes seront simple à résoudre :)

Bonne continuation

KDE 4.1 C'est Magiik' :magicien:
Le C++, C'est plus fort que toi! :p
 
Hors ligne Kushou # Posté le 26/04/2008 à 13:31:09
Avatar
Groupe : Membres
Citation : M@teo21
Oui c'était moi, j'ai recommencé bcp plus tard pour gêner peu de monde et pour être tranquille.
Oui j'ai réussi, plusieurs minutes après la réouverture le site était vraiment en fonctionnement avec la réplication itchy <> scratchy !

J'ai donc réussi mon coup mais il nous restera 2 problèmes :
- rediriger les visiteurs vers le load balancer (parce que là c'est itchy qui prenait toute la charge encore, à la grosse différence près que scratchy le suivait en répliquant). Pas la partie la plus dure à mon avis.
- comprendre pourquoi à deux reprises après 5-6 minutes le cluster d'itchy a arrêté de communiquer avec son réplicateur, rendant la navigation sur le site impossible (toute requête de type update par ex. était refusée car impossible pour le cluster de communiquer avec son réplicateur).


Félicitation, mais apparemment il reste encore quelques problèmes. Bonne chance pour les régler.

Image utilisateur
Guitariste à découvrir ! (Kiko Loureiro)
xHTML/CSS - PHP/MySQL - The GIMP - C et C++ - Blender (bases) - Linux (Kubuntu 8.04.1 "Hardy Heron")
"L'informatique c'est l'art de passer 10 jours à économiser 10 secondes."
 
Hors ligne Loup Bleu # Posté le 26/04/2008 à 17:45:58
Avatar
Groupe : Membres
En effet, j'étais présent sur le site lors de la manipulation (3h du matin ;) )
 
Hors ligne Jlnblade # Posté le 26/04/2008 à 23:14:04
Groupe : Membres
Ah! Super nouvelle!
Content que tu aies pu presque mettre en place le système de réplication :D
Bon courage pour les prochains tests ^^
Hors ligne Tristou # Posté le 26/04/2008 à 23:30:50
Noël@home
Avatar
Groupe : Membres
C'est déjà une bonne nouvelle d'avoir pu avancer dans la mise en place du processus, même sil reste des choses à faire pour que tout marche comme vous l'avez prévu ;)
 
Hors ligne jjfm # Posté le 28/04/2008 à 02:39:34
For The Horde Guys!
Avatar
Groupe : Membres
Bravo Mateo...J'aimerais pas ça moi si il fallais resté éveillé jusqu'a 3H tu mat pour règlé un problème. Mais après il y a quand même e des problème avec le site mes des petit. ;)
 
Hors ligne AnCaRioN # Posté le 29/04/2008 à 13:55:51
Avatar
Groupe : Membres
Sa va bientôt marcher :)
Et sa c'est bon pour le site :)

Désolé pour les fautes d'orthographes >_<

Sous Debian Lenny, Archlinux et Windows XP -.-
 
Hors ligne zeroologue # Posté le 29/04/2008 à 21:44:38
le zéro est une science
Avatar
Groupe : Membres
Ce serait bien que tu fasses une autre news pour expliquer la situation , car pour bien comprendre , il faut relire tous les comentaires , et franchement c'est long ! :p
Et aussi , bon courage , et bon boulot !

* (_,)|_|'357-©3 (_,)|_|3 ©'357 (_,)|_|3 ©3 5!73 ? ©'357 |_||\| 5!73 (_,)|_|! 4 é7é ©|2éé |*0|_||2 4!|)3|2 £35 |)é)3|_|74|\|75, £35 \/|24!5. \/0|_|5 \/0|_|£3% 3|\| 54\/0!|2 |*£|_|5 5|_||2 £3 5!73 |)|_| %é|20 ? 5! \/0|_|5 \/0|_|5 53|\|73% |_||\| |*3|_| |*3|2|)|_|, |\|'|-|é5!73% |*45 à ©0|\|5|_|£73|2 £3 |*£4|\| 0|_| à £!|23 £3 |\/|4|\||_|3£ |)|_| %é|20.
* (_,)|_|! 4|*|*3££3-7-0|\| "£35 %é|205" ? ©'357 \/0|_|5, £35 \/!5!73|_||25 |)3 ©3 5!73. |\|0|_|5 \/0|_|5 |)0|\||\|0|\|5 ©3 5|_||2|\|0|\/| 4|\/|!©4£ ©4|2 70|_|5 |\|05 ©0|_||25 |*4|273|\|7 |)3 "%é|20" : 4|_|©|_||\|3 ©0|\||\|4!554|\|©3 |\|'357 |23(_,)|_|!53 |*0|_||2 |*0|_|\/0!|2 £35 £!|23. \/0|_|5 |*0|_|\/3% \/0!|2 £4 £!573 |)35 ©0|_||25 0|=|=!©!3£5 37 £4 £!573 |)35 ©0|_||25 |2é|)!6é5 |*4|2 £35 %é|205.
* Ç4 ©0û73 ©0|\/|)3!3|\| ? 70|_|7 ©3£4 357 6|247|_|!7. 3|\| 3|=|=37, |\|0|_|5 \/0|_|£0|\|5 (_,)|_|'|_||\| |\/|4><!|\/||_||\/| |)'3|\|7|23 \/0|_|5 |*|_|!553 3|\| |*|20|=!73|2.
 
Hors ligne basoree # Posté le 29/04/2008 à 22:11:42
Avatar
Groupe : Membres
ou tout simplement éditer la news...

Image utilisateur
 
Hors ligne jjfm # Posté le 29/04/2008 à 22:31:08
For The Horde Guys!
Avatar
Groupe : Membres
Mateo...Est-ce que vous allez faire d'autre test pour faire tou marcher...ou c'est deja fait?
 
Hors ligne samuel2202 # Posté le 30/04/2008 à 18:53:33
<? echo 'PHP for ever'; ?>
Avatar
Groupe : Membres
Pas de nouvelles?
 
Hors ligne lo49 # Posté le 30/04/2008 à 19:01:46
Allez le SCO ..... !
Avatar
Groupe : Membres
Franchement, je suis content qu'il ont réussi le Site va explosé ^^
Mais bon, il reste des problème ! C'est dommage, mais M@théo21 va résoudre cela !
a+

Un Jeu Un Seul :
ViruX

Pourquoi ne pas y jouer ?


Jeu qui parle d'ordinatueur !!!
 
Hors ligne Zanpa # Posté le 30/04/2008 à 19:15:55
KTHXSPY
Avatar
Groupe : Membres
Ben pour l'instant si j'ai bien compris, le site n'est pas plus rapide heing.
Mais si Itchy tombe en panne, Scratchy peut prendre le relais en quelques minutes sans aucune perte de données, c'est toujours ça :)

Haribo a une bonne connexion.
Speedking n'aime pas les livres.
Citation : Nesquick69
Moi perso je préfère me taire quand on m'encule =°



 
Hors ligne Paralele # Posté le 01/05/2008 à 16:32:21
Groupe : Membres
Citation : Zanpakutoh
Ben pour l'instant si j'ai bien compris, le site n'est pas plus rapide heing.
Mais si Itchy tombe en panne, Scratchy peut prendre le relais en quelques minutes sans aucune perte de données, c'est toujours ça :)


Ce n'est pas en quelques minutes, c'est instantané ;)
Je ne pense pas que le load balancing soit déjà en place, on aurait été prévenu je pense.

Paralele

Mon site en développement : Ibob.fr
 
Hors ligne woufeigh # Posté le 01/05/2008 à 16:41:34
Webnul
Avatar
Groupe : Membres
Oui mais la réplication se fait déjà si j'ai tout compris. C'est juste que le partage des tâches n'est pas encore OK. Donc si le premier serveur crache M@téo switch sur le deuxième et le site est up en quelques minutes... (toujours si j'ai bien compris :p)

Image utilisateur
 
Hors ligne Paralele # Posté le 01/05/2008 à 17:17:52
Groupe : Membres
Pas a l'heure actuel si j'ai bien compris, en effet, comme le dit M@teo21 ici :
Citation : M@teo21
-comprendre pourquoi à deux reprises après 5-6 minutes le cluster d'itchy a arrêté de communiquer avec son réplicateur, rendant la navigation sur le site impossible (toute requête de type update par ex. était refusée car impossible pour le cluster de communiquer avec son réplicateur).


La communication entre les deux serveurs ne se fait pas après un certain temps, les données ne sont donc pas identiques et en cas de coupure, le site reviendrais donc à un état antérieur. ;)

Paralele

Mon site en développement : Ibob.fr
 
Hors ligne Urc@d0X # Posté le 02/05/2008 à 20:50:21
Avatar
Groupe : Membres
Tu n'as pas bien compris, dans le cas que cite M@teo, le problème rend le site inacessible (il n'y a donc pas de changements dans la BDD) mais quand ça fonctionne la réplication est synchrone : c'est le but sinon il y aurait deux versions du site ce qui ferait un sacré bordel :-° .

Image utilisateur
"When I get sad, I stop being sad and be awesome instead. True story." (Barney Stinson, How I Met Your Mother)
 
Hors ligne Paralele # Posté le 02/05/2008 à 21:21:06
Groupe : Membres
Je sais bien, c'est pour ça que j'ai précisé : "Pas a l'heure actuelle" ;)

Je connais le load balancing, ne t'inquiètes pas pour moi ;)

Paralele

Mon site en développement : Ibob.fr
 
Hors ligne congelli501 # Posté le 03/05/2008 à 12:00:34
Avatar
Groupe : Membres
Le tuto est une bonne idée. Bonne chance !

On dit que la Grèce antique beaucoup d'influence sur notre culture... C'est vrai : la chute d'Athènes a eu lieu en 404 avant JC. Ca vous rappelle quelque chose ? Si non, aller ici.
 
Hors ligne samuel2202 # Posté le 06/05/2008 à 23:20:16
<? echo 'PHP for ever'; ?>
Avatar
Groupe : Membres
Citation : congelli501
Le tuto est une bonne idée. Bonne chance !

Tu parle de quoi ? :p
 

Désolé, les commentaires de cette news sont désactivés, vous ne pouvez pas en ajouter !

Revenir à liste des news

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 301 Zéros connectés | Requêtes SQL 6 requêtes | Temps de génération de la page : Total (SQL) 0.03s (0.0129s)