Introduction
Avez-vous prévu le crash de votre serveur web ?
Avez-vous doublé votre serveur et installé une solution d’IP Failover qui
aiguillera vers le serveur de secours vos utilisateurs ? Payez-vous donc
un second serveur qui n’est sollicité qu’en cas de panne du premier ?
Avez-vous prévu un pic de visiteurs sur votre site
web ? Là encore, disposez-vous d’un second serveur qui tourne 24H/24H pour
répondre à ces pics ou laissez-vous les visiteurs déçus de ne rien pouvoir
consulter ?
Parce que doubler les coûts d’hébergements pour quelques
jours de besoins ce n’est franchement pas une super option, vous risquez de
n’avoir tout simplement rien prévu !
Avec le cloud, et cette idée initiale d’élasticité des
ressources, il est possible de parer aux éventualités avec des coûts hyper
optimisés et qui n’apparaîtront qu’en cas d’utilisation effective.
Présentation de la solution Traffic
Manager
La Traffic Manager est un service que propose Azure
permettant d’aiguiller des demandes vers différentes instances d’un site Web.
On l’utilise pour équilibrer la charge (fort trafic), pour répartir la charge
par géographie, pour la défaillance d’une instance (ip failover).
Depuis juin 2014 on peut utiliser le gestionnaire de trafic
d’Azure pour un site Web hébergé en dehors du cloud de Microsoft : par
exemple sur un serveur d’entreprise, un serveur d’un hébergeur tiers etc…
Traffic Manager peut donc fonctionner avec un site Web existant hébergé
n’importe où.
L’avantage de cette ��volution est qu’un site Web existant
pourrait donc avoir un site de secours dans Azure qui ne sera sollicité qu’en
cas de besoin : surcharge de visiteurs, défaillance du serveur principal,
mise à jour du site web.
Avec une telle configuration on optimise donc les coûts liés
à l’usage d’Azure et on offre une solution de secours efficace à un site web
existant.
Prérequis :
-
Disposer d’un abonnement à Azure
-
Disposer de Powershell pour Azure : https://azure.microsoft.com/fr-fr/documentation/articles/powershell-install-configure/
Mise en œuvre un site de secours dans
Azure :
Pour cette mise en œuvre on se contente de dupliquer un site
Web :
- on ne prend pas en compte l’utilisation d’une base de données. Si tel est le
cas et si celle-ci se trouve sur un serveur dédié autre que celui qui héberge
le site web, aucun problème pour appliquer la méthode qui suit. Par contre si
celle-ci se trouve sur le même serveur que celui qui héberge le site web, il
faudra améliorer notre projet ou se contenter de publier dans Azure une simple
page qui affiche « Maintenance » aux couleurs du site original.
Dans tous les cas, nous l’objectif est de faire en sorte que
les utilisateurs aient toujours une réponse lorsqu’ils interrogent votre nom de
domaine.
1) rendez-vous sur le portail : https://portal.azure.com
et authentifiez-vous.
2) Créez un environnement pour votre site Web de secours
dans Azure.
a) créer un Plan de service
d’application : ceci permet de prédéfinir des plans d’hébergements : https://azure.microsoft.com/fr-fr/documentation/articles/azure-web-sites-web-hosting-plans-in-depth-overview/
b) créer un App Service de type Application
Web (qui s’appuiera sur le plan de service d’application créé précédemment).
Par exemple : MyWebsite
c) déployer une copie du site Web
original dans Azure (ou la version dégradée « Maintenance ».) Pour
déployer votre site rien de plus simple si vous utilisez Visual Studio. Et plus
globalement, quel que soit le type de site, vous verrez ici l’ensemble des
possibilités :
https://azure.microsoft.com/fr-fr/documentation/articles/web-sites-deploy/
Le site déployé dans le cloud de Microsoft disposera d’une url : http://MyWebsite.azurewebsites.com
3) Accédez et configurez Traffic Manager.
Depuis le portail, rendez-vous dans la rubrique App Services et cliquez votre site Web créé en (2).
Cliquez sur Paramètres puis cliquez
sur Traffic Manager dans la section Routage. Vous êtes alors renvoyé vers
le portail http://manager.windowsazure.com.
Vous allez pouvoir utiliser ce portail pour créer un profil TrafficManager ;
par exemple : MyWebsiteTM.
Vous disposez alors d’une url vers le service Traffic Manager du type : MyWebsiteTM.trafficmanager.net
Vous pouvez maintenant créer le point de terminaison vers le site de secours
dans Azure. http://MyWebsite.azurewebsites.com
Depuis le portail Azure, il n’est pas encore possible de
créer des points de terminaisons extérieurs. Vous serez obligé de passer par PowerShell
pour créer un point de terminaison vers le site Web original hébergé en dehors
d’Azure.
$profile = Get-AzureTrafficManagerProfile –Name “MyWebsiteTM”
MyWebsiteTM = nom créé depuis
le portail pour le profil TrafficManager.
Add-AzureTrafficManagerEndpoint -TrafficManagerProfile $profile -DomainName "www.VotreSiteOriginal.com" -Status "Enabled" -Type "Any" –Location “West Europe” | Set-AzureTrafficManagerProfile
Attention, vu que Traffic Manager traite les redirections par ordre de création des points de terminaisons, vous devrez utiliser le portail pour réorganiser l’ordre des points de terminaisons et positionner en premier votre site extérieur…
4) Modifiez l’enregistrement DNS de votre nom de domaine pour disposer d’un enregistrement MyWebsite.com CNAME MyWebsiteTM.trafficmanager.net de sorte que ce soit le TrafficManager qui aiguille les requêtes.
C’est terminé ! Si votre site Web principal, hébergé en dehors d’Azure, tombe c’est celui hébergé dans Azure prendra le relai !!
Combien ça coûte ?
L’utilisation de Traffic Manager en tant que tel n’est pas
cher :
Il faut compter 0,4554€ / millions de requêtes, jusqu’à 1 milliard de requêtes
DNS par mois.
Puis 0,3163€ / million de requêtes, au-delà d’1 milliard de requêtes DNS par mois.
A quoi s’ajoute 0,3036 € pour un point de terminaison Azure
Et 0,4554€ pour un point de terminaison externe.
Exemple : votre site reçoit 100 000 visiteurs /
mois. Le coût sera de
0,91€ / mois
Les détails tarifaires : https://azure.microsoft.com/fr-fr/pricing/details/traffic-manager/
Il faudra ajouter à ce tarif, le coût d’hébergement du site
dans Azure lorsque celui-ci sera sollicité.
Par exemple pour une instance avec 2 cœurs, 3,5 Go de RAM, 10 Go de stockage,
compter 3,04€ / 24H d’utilisation (donc si votre site principal tombe en panne
1 journée).
Pour aller plus loin.
Si votre site Web utilise une base de données ou des
fichiers générés, hébergés sur le même serveur, cette solution reste légère et
pour être totalement efficace il faudrait aussi gérer la remise en service de
la base de données ou la copie des fichiers en cas de crash, de sorte à pouvoir
proposer un site Web 100% opérationnel et pas simplement une page « maintenance ».