Basculement simple pour site Web (surveillance + DNS dynamique)

Dans cet article, je souhaite montrer à quel point vous pouvez facilement et gratuitement créer un système de basculement pour un site Web (ou tout autre service Internet) en utilisant une combinaison de surveillance ok et service DNS dynamique. Autrement dit, en cas de problèmes avec le site principal (d'un problème avec une « erreur PHP » sur la page, au manque d'espace ou simplement à un nombre suspect de commandes dans le cas d'une boutique en ligne), les nouveaux visiteurs seront être dirigé vers le deuxième (troisième, et ainsi de suite) plus loin) un serveur fonctionnel connu, ou vers la page « Désolé », où ils expliqueront poliment qu'« il y a un problème, nous en sommes déjà conscients et sommes déjà en train de le résoudre, nous je le réparerai bientôt » (et dans ce cas, vous serez déjà au courant et pourrez réparer).

Vivre avec ou sans basculement ?

Jusqu'à ce qu'un problème survienne, il n'y a pas beaucoup de différence. Mais lorsque cela se produit, sans basculement, ce qui suit se produit souvent : vous essayez de comprendre rapidement quel est le problème, cela ne fonctionne pas (les sauvegardes ne se déploient pas, le logiciel, pour une raison quelconque, ne fonctionne pas comme il le devrait d'après la documentation , etc.), mais il n'y a pas de temps, pas de serveur - les sites s'arrêtent, les clients appellent, tout le monde est à bout de souffle, vous essayez d'une manière ou d'une autre de le réparer grossièrement et salement "avec du ruban adhésif", puis d'une manière ou d'une autre, il semble démarrer avec des béquilles et des vies. Vous pensez que pendant votre temps libre, vous devrez le comprendre plus en détail et tout refaire magnifiquement, mais il n'y a rien de plus permanent que temporaire.

Maintenant, comment cela se passe dans une belle version avec un fichier :

  • Une erreur se produit
  • L'erreur est détectée automatiquement
  • L'alerte est envoyée
  • Le basculement vers l'un des serveurs de sauvegarde est transféré
  • Sereinement et sans panique, le problème est réglé, corrigé et le serveur est remis en service.

Ce schéma, bien sûr, peut aussi avoir ses propres problèmes, mais néanmoins, le schéma est linéaire, chaque étape est simple et l'essentiel est qu'il puisse être débogué séparément, donc le risque d'échec de ce schéma est beaucoup plus faible, et toutes les actions peuvent être automatisées et exécutées rapidement (contrairement à la tâche consistant à trouver et à réparer des conneries épiques inconnues). Votre avion a atterri dans un pays lointain, vous allumez votre téléphone et voyez une notification dans un télégramme indiquant que le serveur est tombé en panne, mais tout va bien, le serveur de sauvegarde a été activé, vous pouvez continuer votre voyage, vous n'en avez pas besoin pour revenir en avion ou le réparer via SSH depuis le café le plus proche avec WiFi. Vous le découvrirez quand ce sera plus pratique.

Le futur est déjà là !

Auparavant, le principal problème qui faisait du basculement une solution souvent inacceptable était le coût qu'il engendrait. Ou il fallait acheter du matériel coûteux (et inviter des spécialistes encore plus chers). Ou une ferme collective quelque chose de compliqué selon les guides (je suis même tombé sur une option où deux serveurs sont en plus connectés avec un câble null modem, et ils envoient un battement de cœur à travers celui-ci, de sorte qu'au bon moment le serveur de sauvegarde le reconnaît et prend le relais contrôle). Il existe désormais des moyens plus simples et gratuits. Si vous avez un site Web avec des chats, vous n’avez aucune excuse pour ne pas encore mettre en œuvre le basculement !

Eh bien, en plus, pour un système de basculement, vous avez besoin d'un autre serveur (et peut-être de plusieurs) et avant, cela représentait une grosse dépense, vous pouvez désormais obtenir un VDS pour quelques centimes.

Le site le plus fiable avec les chats

Pour illustrer pratiquement la solution avec okerr + DNS dynamique, nous avons lancé notre site Web avec des chats cat.okerr.com. Nous détestons les chats, donc il n'y en aura pas beaucoup. Il y a trois sites au total, chacun se ressemble à peu près (tous sur le même modèle), mais avec des chatons différents pour faciliter la distinction, et chacun écrit des informations techniques pour voir comment fonctionne le basculement. La page se met à jour toutes les minutes, mais vous pouvez toujours cliquer sur recharger dans le navigateur.

Dans les informations techniques, il y a une ligne « status=OK ». Parfois, les serveurs feignent des problèmes et écrivent status=ERR. Le serveur principal « semble planter » toutes les 20 minutes (0h20, 1h20, 2h20,…). Serveur de sauvegarde en 40 minutes. Le dernier serveur (serveur « désolé ») est toujours en cours d'exécution. A 0 minute toutes les heures, les serveurs principal et de sauvegarde sont « restaurés ».

Basculement simple pour site Web (surveillance + DNS dynamique)

Si vous ouvrez le site et le laissez dans l'onglet, vous verrez qu'il ne plante jamais (bien que chaque serveur individuel simule périodiquement un problème), et en cas de problème avec le serveur, il « fonctionne » simplement entre les serveurs en direct. L'image, le nom et l'adresse du serveur ainsi que son rôle changeront. Parfois, vous pouvez saisir le moment où status = ERR (le problème existe déjà, mais l'ensemble du système de basculement n'a pas encore fonctionné), mais la prochaine mise à jour vous montrera une page du site de travail.

Basculement sur okerr + DNS dynamique

Voyons comment cela fonctionne sous le capot. La tâche du filer est de s'assurer que l'adresse cat.okerr.com pointe toujours vers l'adresse IP du serveur de travail.
Derrière chacun des serveurs qui hébergent notre site félin à okerr se trouve un indicateur qui vérifie son statut une fois par minute.

Basculement simple pour site Web (surveillance + DNS dynamique)

Dans cette capture d'écran, nous voyons comment le site cat.okerr.com est vérifié à partir du serveur alpha.okerr.com. La page doit contenir status=OK, et comme nous le voyons ci-dessus, l'état de notre indicateur est OK maintenant. Lorsque le serveur « tombe en panne », il y aura un ERR. (Ce n'est qu'un exemple d'indicateur, okerr surveille, vous pouvez donc attacher n'importe quel type d'indicateur, par exemple, vérifier l'espace libre sur le disque, le nombre de nouvelles commandes dans la base de données, et même des indicateurs logiques, par exemple , la nuit il y aura certains critères d'erreur, et le jour d'autres) .

Dans les paramètres du projet, nous avons créé un schéma de basculement avec ces indicateurs :

Basculement simple pour site Web (surveillance + DNS dynamique)

Le système comporte trois indicateurs (trois serveurs), de priorité différente. Le serveur principal du site est Charlie, s'il ne fonctionne pas (il n'aura pas « status=OK » ou est tout simplement indisponible), alors bravo et dans ce dernier cas - alpha. Le côté droit de la page affiche l'état de l'enregistrement DNS sur différents serveurs.

Pour ceux qui ont remarqué que le nom cat.he.okerr.com est utilisé : Nous utilisons un schéma légèrement plus complexe. Au lieu de simplement changer l'enregistrement DNS de cat.okerr.com, nous modifions cat.he.okerr.com (sur le fournisseur de DNS dynamique Hurricane électrique), et cat.okerr.com est un CNAME (alias), qui ne change pas, pointe toujours vers cat.he.okerr.com. Nous préférons Hurricane en tant que DNS dynamique, et il dispose de clés pour gérer une seule entrée (plutôt qu'une zone entière), nous pensons que c'est plus sûr. Vous n'avez pas non plus besoin de spécifier des mots de passe clés dans okerr pour gérer l'ensemble du domaine, mais uniquement pour un sous-domaine ou un enregistrement.

De la chute à la montée

Comment fonctionne ce schéma étape par étape :

  1. Un problème survient (simulé) sur le serveur
  2. Le capteur okerr vérifie l'état de chaque serveur une fois par minute et fait rapport au serveur principal du projet dans okerr.
  3. L'indicateur du serveur correspondant passe de OK à ERR
  4. Lorsque l'état de l'indicateur change, le basculement est recalculé et il est calculé quelle adresse doit être définie (si nécessaire. Par exemple, si le serveur principal fonctionne et qu'en même temps le serveur de sauvegarde est mort, aucun changement ne sera fait)
  5. Cette adresse est signalée au service DNS dynamique. À la fin de cette étape, vous verrez le statut « synchronisé » sur la droite.
  6. Très bientôt (en quelques secondes) l'enregistrement parviendra aux serveurs DNS de votre domaine (pour le site chat, il s'agit de ns1-ns5.he.net).
  7. A partir de ce moment, certains utilisateurs seront déjà sur le nouveau serveur live. Mais tous les serveurs DNS du monde n’ont pas encore mis à jour les enregistrements, et l’ancien enregistrement peut encore être mis en cache quelque part. Vous pouvez voir comment les données sur les serveurs DNS publics « dansent », affichant une nouvelle ou une ancienne valeur. Si vous mettez à jour la page de configuration du basculement, l'opérateur lui-même demandera de nouvelles données aux serveurs DNS.
  8. Une fois les données stabilisées, l'ancien enregistrement mis en cache est pourri partout - 100 % des demandes sont dirigées vers le nouveau serveur.

Pour accélérer l'étape 7 (souvent la plus longue), la durée de vie de l'enregistrement DNS dynamique doit être définie aussi bas que possible. Généralement, les services autorisent des intervalles de 90 à 120 secondes. C'est un compromis tout à fait raisonnable.

en outre

Tout cela peut être configuré en une soirée (si vous disposez déjà d'un serveur de sauvegarde). Les services DNS okerr et dynamiques sont gratuits. Pour obtenir plus de contrôles dans okerr et une période de vérification plus courte, vous devez suivre une formation (à partir de votre page de profil). Une fois terminé, le niveau augmente immédiatement (20 indicateurs par heure + 1 rapide, 10 minutes). Et s'ils sont peu nombreux, écrivez à [email protected], il sera très probablement possible d'augmenter (jusqu'à présent il y a toujours eu une opportunité, je n'ai jamais refusé, au contraire, je l'ai proposée moi-même). C’est juste qu’au départ je n’ai pas envie de tout promettre à tout le monde, je ne suis pas sûr d’avoir assez de capacité pour tenir parole. Mais jusqu'à présent, il y a peu d'utilisateurs, il n'y a donc aucun problème pour augmenter les limites.

Ce qu'okerr peut faire en général - regardez le site Web présentation. En général, il s'agit d'une surveillance (zabbix depuis le cloud), et le filer est une fonction supplémentaire intéressante. Vous pouvez également accéder à la démo depuis le site sans inscription.

Lorsque l'état de l'indicateur change, une notification est envoyée par email ou Telegram. (Nous avons regardé ce qui se passait et avons réalisé que Telegram semble être le messager le plus fiable. Merci à RKN pour le test de stress !) Avec okerr correctement configuré, toute notification est soit un signal « laissez tout tomber, nous devons le réparer ! , ou « lumières éteintes ! » Il ne devrait pas y avoir d'alertes supplémentaires de la part de l'okerra (s'il y en a, elles doivent être configurées différemment). Par exemple, pour notre site chat, le serveur alpha est le dernier et ne simule jamais d'erreur. S'il se couche, nous devons le savoir. Mais d'autres serveurs simulent constamment des erreurs, donc, afin de ne pas recevoir d'alertes plusieurs fois par heure, ces indicateurs ont un statut « silencieux ».

Il est également logique de créer un serveur désolé (sur n'importe quel hébergement le moins cher), qui aura soit votre page d'excuses (au cas où tous les serveurs principaux et de sauvegarde seraient en panne), soit vous redirigera vers la page d'état sur okerr (par exemple, la nôtre cp.okerr.com/status/okerr) ou statuspage.io.

Source: habr.com

Ajouter un commentaire