Comment optimiser les performances et la disponibilités des services Web

Combien coûte un site indisponible ou un peu lent ?

Chez Amazon, 1 seconde de latence du site e-commerce engendre une perte de 1,6 milliards $ sur une année, et en cas d’indisponibilité au minimum 2000$ sont perdus en moyenne par seconde (cf : How Much Money Do Top Companies Make Each Second?). Pour un petit projet, la facture peut être proportionnellement plus salé que quelques % de CA, car cela peut engendrer la perte de précieux clients et donc nuire à tout un business.

En bref, ça coûte très cher et un point important de l’appréciation d’un site web est sa vitesse et sa disponibilité (cf : How Loading Time affects your Bottom Line).

Pour remplir ces critères, des milliers de méthodes existent portants chacunes sur différents axes (optimiser le code, fournir une infrastructure robuste, avoir un système de rollback efficace…). Cet article traitera d’une partie de l’infrastructure en passant par un service simple, fiable, au coût insignifiant et rapide à mettre en place : le service Traffic Manager d’Azure.

Qu’est ce que le Traffic Manager ?

Traffic Manager est un service d’Azure qui a pour objectif de router le trafic sur un site, des services cloud ou des machines virtuelles le plus efficacement possible selon un contexte choisi.

ezgif-3253799155

Qu’est ce que ça fait concrètement ?

Traffic Manager fonctionne en se basant sur le DNS pour rediriger les requêtes en fonction de trois méthodes de routages :

  • Priorité : Je veux que mon service Fabrikam soit fiable, je possède de ce fait deux autres services nommés Fabrikam-A et Fabrikam-B qui sont là en cas de défaillance pour prendre la relève. Si Fabrikam tombe, je veux que mes utilisateurs soient redirigés vers Fabrikam-A. Et si Fabrikam et Fabrikam-A tombent je veux que mes utilisateurs soient redirigés vers Fabrikam-B.
  • Pondération : Je veux que la charge sur mon service soit répartie uniformément sur plusieurs environnements en fonction de leur capacité de charge afin d’avoir une haute disponibilité et une utilisation des services appropriée.
  • Performance : Mon service est composé de deux sites web identiques basés en Europe et en Asie. Je veux que les européens soient dirigés vers le site en Europe et les asiatiques sur le site situé en Asie, ou plus généralement, que chaque utilisateur soit redirigé vers le site avec lequel il aura le moins de latence.

Chacune de ces 3 méthodes fait en sorte que les utilisateurs ne seront jamais redirigés vers un site hors ligne (sauf si tout les sites sont HS…), si un service cible est inaccessible l’utilisateur sera routé automatiquement vers le prochain service accessible et répondant au mieux à la méthode de routage choisie. Très pratique pour maintenir une bonne disponibilité. Cela est d’autant plus intéressant durant le déploiement d’un site web où aucune coupure de service ne sera visible des utilisateurs.

La mise en place

La mise en place est très simple et ne prendra que quelques minutes via le portail Azure :

  • Cliquez sur + puis cliquer sur Traffic Manager Profil situé dans la section Monitoring + management

Côté configuration c’est tout aussi simple :

  • Un nom : ce dernier permet de constituer l’URL du Traffic Manager (nom.trafficmanager.net)
  • Un type de routage entre Propriété, Pondération et Performance
  • Une souscription de rattachement + un groupe de ressources
  • Une location : contrairement à la majorité des services, Traffic Manager est un service global et n’est pas lié à la localisation. De ce fait la localisation ne sert qu’au groupe de ressources et n’a absolument aucun impact sur les performances du service.

1

Une fois le service initialisé, il est temps de passer à la configuration. La configuration est simple, et ne consiste qu’à déclarer les Points de terminaison (EndPoints) du Traffic Manager parmi 3 types :

  • Azure endpoint : référence un service Azure
  • External endpoint : référence un service externe à Azure via son FQDN (nom de domaine complètement qualifié)
  • Nested endpoint : référence différents profils Traffic Manager pour obtenir une logique de routage complexe et plus souple (ex: mettre une logique de routage sur la performance afin de rediriger l’utilisateur sur la bonne région, et par la suite appliquer une logique de routage basée sur la pondération afin de lisser la charge sur la région).

2

Une fois tous les points de terminaison configurés, il est nécessaires d’attendre quelques minutes afin que le service puisse s’initialiser.

3

NB : dans le cadre des Web App, ces dernières doivent être au minimum au niveau standard pour pouvoir être pris en charge par Traffic Manager.

Résultat avec la méthode de routage Performance :

  • le site web Europe s’affiche (car je suis situé en Europe)

4

  • Avec un serveur situé à Séoul via le site WebPageTest : le site situé en Asie s’affiche car c’est celui qui possède le moins de latence pour Séoul.

6

  • Et enfin si on déconnecte le site en Europe : le site d’Asie sert de backup et s’affiche pour tous

7

8

La touche finale

Et voilà, il ne reste plus qu’à rediriger le nom de domaine vers le nom de domaine du Traffic Manager via un enregistrement CNAME.

Important : Il n’est pas possible de lier Traffic Manager à la racine du domaine à cause d’une limitation du protocole DNS. Une astuce consiste à passer par un service tiers, tel que CloudFlare qui lui acceptera de le faire.

Côté tarif, Traffic Manager est facturé quelques dizaines de centimes par EndPoint et par millions de requêtes :

pricing-traffic-manager-microsoft-azure-google-chrome

 

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s