Comment j’ai réduit de 60 % le coût du centre de données tout en doublant sa capacité

Publié le 6 janvier 2014 à 12:36 par Gustavo Franklin Nobrega dans: Hébergement web


C’est simple : j’ai transféré mon site Web d’un gros centre de données situé aux États-Unis à iWeb, puis j’ai virtualisé chaque serveur avec XenServer. Je voudrais maintenant partager avec vous ce que mon équipe et les administrateurs système d’iWeb ont fait.

Je travaille à eSapiens Internet, une petite entreprise spécialisée en TI qui gère un réseau social au Brésil. Aujourd’hui, nous avons près de 500 000 visiteurs uniques par jour et 250 000 000 pages vues par mois. Assurer le bon fonctionnement et la coordination de nos serveurs Web et de nos serveurs de bases de données n’est pas une mince tâche.

Avant octobre 2013, nous disposions de plus de 30 serveurs dédiés connectés par un réseau de 1 Gbit/s et de quelques volumes de stockage iSCSI. Tous ces serveurs fonctionnaient sous CentOS et nGinx. Les serveurs Web principaux exécutaient PHP-FPM, et les serveurs de base de données principaux, PostgreSQL.

Tous les services étaient très bien configurés, et nous obtenions la performance optimale des serveurs dédiés. Mais nous n’étions toujours pas convaincus qu’il s’agissait là de la meilleure solution.
eSapiens
Une nouvelle solution

Après quelques recherches, nous avons décidé de virtualiser tous nos serveurs dédiés en nous servant de Citrix XenServer. Nous avions auparavant comparé ce logiciel avec VMware, pour conclure que XenServer présentait le meilleur rapport coûts-bénéfices. Pour ce qui est du stockage, nous avons choisi DSS V7 d’Open-E. Il s’agit d’une excellente solution logicielle de stockage basée sur Linux et entièrement compatible avec XenServer. Nous disposions ainsi de volumes de stockage iSCSI répliqués et à haute disponibilité et, mieux encore, d’une grappe active-active.

L’image ci-dessous illustre notre solution aujourd’hui. Comme vous pouvez le constater, tout est très simple.

Essentiellement, nous avons six serveurs d’application Citrix XenServer 6.2, deux serveurs de stockage exécutant DSS V7 d’Open-E, quelques pare-feu et un serveur VPN. Pour relier tout ce matériel, nous recourons à deux commutateurs à 10 Gbit utilisant le protocole LACP.

La conception de cette solution résulte d’un effort conjoint des équipes d’eSapiens et d’iWeb, et le soutien offert par iWeb a constitué le facteur décisif qui nous l’a fait préférer à d’autres centres de données. Nous avons discuté de cette conception avec iWeb pendant plusieurs jours avant de lancer le projet ainsi que pendant le déploiement des serveurs. Sans le soutien de l’équipe d’iWeb, nous n’aurions pas connu le même succès. Aujourd’hui, la haute disponibilité est au rendez-vous sur tous les plans (serveurs de stockage, XenServer, pare-feu, commutateurs), si bien qu’aucune défaillance matérielle ne saurait nous arrêter.

Conseil pour réussir

Voici quelques conseils que nous aimerions donner au sujet de la configuration de certains de nos serveurs virtuels :

Étant donné qu’il y a beaucoup d’accès simultanés, nous avons conçu une grappe PostgreSQL comprenant sept machines virtuelles (VM) : un nœud principal et six nœuds esclaves. Pour répliquer les données, nous utilisons Streaming Replication de PostgreSQL, laquelle fonctionne très bien. Et pour répartir les requêtes, nous nous servons de pgPool. Les VM de la base de données sont les plus vastes que XenServer peut prendre en charge, chacune comprenant 128 Go de RAM et 16 vCPU.

Le plus grand défi à relever se situait du côté des entrées-sorties. Avec l’architecture de XenServer, seul le vCPU0 peut traiter toutes les entrées-sorties des VM. Pour obtenir un rendement maximal, nous n’avons pas ajouté de volume de stockage iSCSI directement à la VM à partir du serveur de stockage; nous avons plutôt connecté le volume iSCSI à XenServer, puis à la VM. On pourrait croire qu’ajouter un élément entre le serveur de stockage et la VM ralentit la performance, mais sachez que cet élément comprend huit CPU gérant les entrées-sorties par les IRQ, et c’est ce qui compte le plus. Une autre astuce consiste à employer la commande taskset (sous Linux) pour configurer un ensemble de programmes, comme les traitements PostgreSQL, de façon à ce que cet ensemble utilise tous les vCPU à l’exception du vCPU0 (réservé aux entrées-sorties).

Les résultats

Ce projet nous a permis de réduire de 60 % le coût du centre de données (même en tenant compte de toutes les licences XenServer et DSS V7). Par rapport à notre ancienne architecture, nous estimons avoir doublé, peut-être même triplé notre capacité de traitement de pages Web. Ces résultats ont été rendus possibles grâce aux excellents prix offerts par iWeb pour l’équipement et à l’équipe professionnelle qui nous a assistés tout le long du projet.

Gustavo Franklin Nóbrega est chef de l’exploitation à sSapiens. Trouvez-le ici sur LinkedIn.

Comments Off tags: ,  | 
1 Star2 Stars3 Stars4 Stars5 Stars (Pas de votes)

Commentaires

Pas encore de commentaire.