Question

Y at-il une méthode préférée de mise à niveau grâce un site web? J'ai une base de code entièrement nouveau prêt à aller sur un site, mais la mise à jour, il faudra plusieurs heures. Je ne veux pas que le site soit vers le bas tout le temps avec une « mise à niveau, être de retour bientôt! » message, mais je ne puis quitter la place actuelle du site alors que le nouveau est mis en place.

La seule façon que je peux penser à qui pourrait permettre une mise à niveau est gracieuse par l'utilisation de deux serveurs, mais cela obtiendrait plus cher.

Était-ce utile?

La solution

Planification à « mettre à jour votre site grâce » ne démarre pas lorsque vous êtes prêt à déployer. Il commence très tôt dans la conception de votre application. Cela signifie que vous devez construire une application qui peut être gracieusement mis à niveau, et ayant également l'infrastructure en place pour soutenir cette mise à niveau.

Vous avez fourni quelques détails et posez une question vague, mais importante de gens au hasard sur Internet. Cela me conduit à croire que était une préoccupation de dernière minute « mise à niveau avec élégance » (comme il y a 23 minutes).

Votre question: « Y at-il une méthode préférée de mise à niveau grâce un site web? » on ne peut répondre que: « Oui, mais je le fais différemment façon que vous le faites. »

Autres conseils

Il y a un certain nombre de tactiques que vous pouvez utiliser - en fonction du temps / les ressources que vous êtes prêt à engager à la mise à niveau.

Il est peut-être possible, selon la façon dont vous effectuez votre migration, de le faire avec absolument aucun temps d'arrêt.

L'application / site plus complexe, la stratégie de migration plus complexe peut être si vous voulez pas de temps mort.

Nous avons atteint zéro migrations vers le bas par temps:

  1. Configuration de nouveaux serveur (s) avec la nouvelle version du site et base de données.
    • Modification de la équilibreur de charge à répartir le trafic en deux piscines nouvelle app et ancienne app.
    • Configurer les équilibreurs de charge de commencer à envoyer du trafic vers le serveur nouvelle application (s), mais gardez les sessions existantes sur le serveur à l'ancienne application (s)
    • Nouvelles sessions lors de l'enregistrement de nouvelle application pour voir si le client migration des données, et si non - fait rapidement que.
    • fermer les serveurs « progressivement jusqu'à l'ancienne app » que la charge tombe, mise à niveau vers la nouvelle application, et en ajoutant à la nouvelle application pool équilibreur de charge.
    • En fin de session, les données du client est migré vers la nouvelle base de données.
    • Comme le permet la charge, la migration des données des clients inactifs à la nouvelle base de données.

est plus complexe bien sûr, - que nous avions besoin pour maintenir l'accès aux données des clients dans deux environnements et progressivement migrer.

Il ne nous permet que des changements roll-back devrait être une question remarqué - par exemple CPU excessive ou l'utilisation de la mémoire sur l'un des serveurs de nouvelle app.

Pour un petit site où vous n'avez pas le budget pour les serveurs supplémentaires, vous pouvez être en mesure de réaliser cela en utilisant simplement plusieurs adresses IP, ou une certaine forme de logiciel d'équilibrage de charge interne aux demandes de route à l'ancienne, ou nouveau site. Cela peut compliquer les choses plus.

Si vous n'êtes pas en mesure d'exécuter l'ancienne application, et une nouvelle application de la même banque de données (webservices back-end, base de données, etc.) - alors vos applications ne doivent être conscients qu'ils ont besoin de synchroniser les données entre les vieux / nouveau - par exemple pendant la sauvegarde / mise à jour des clients-données, l'écriture devrait se produire dans les deux endroits.

Plusieurs heures est beaucoup, s'il y a beaucoup de conversion dans la base de données que vous pouvez d'abord prendre une copie de la base de données, terminer la conversion, mis en place le nouveau site (mais avec un peu vieux db), regarder ce qui a changé depuis que vous avez pris la copie, le convertir trop (devrait être plus rapide que la grande décharge si vous n'avez pas beaucoup de changements) et l'insérer dans la nouvelle base de données.

Il suffit de ne pas oublier de sauvegarder!

Je pense que, de quelque façon que vous allez avec cela, il est absolument nécessaire d'avoir la pleine coopération de votre hébergement web et fournisseur de nom de domaine.

Une procédure approximative serait:

  1. Louer un nouveau serveur avec une adresse IP différente, qui sera où vous déployer le nouveau site. Ou, si possible, créer un sous-domaine de test au sein de votre site qui est inaccessible au public.
  2. Déployez votre site dans le nouveau serveur / sous-domaine. Effectuer tous les tests nécessaires avec votre nouveau site en utilisant l'adresse IP ou votre sous-domaine en premier.
  3. Lorsque vous êtes sûr que tout est correct, problème réoriente d'abord à votre nouveau serveur / sous-domaine.
  4. Rediriger votre DNS à la nouvelle adresse IP ou le fixer de telle façon que vous pouvez faire de votre domaine principal point maintenant à l'emplacement d'origine du sous-domaine.

Idéalement personne ne remarqua même pas que votre site est en baisse, ou si elle a le temps d'arrêt, il ne durera que quelques minutes.

On dirait que vous voulez avoir votre gâteau et le manger.

Si la mise à niveau est un travail manuel qui prend plusieurs heures, pourquoi ne vous accélérez pas par script le travail.

Ceci est probablement quelque chose que vous aviez besoin d'avoir déjà « conçu » pour la version actuelle.

Peut-il être segmenté de sorte que certaines parties (par exemple catalogue.) Sont disponibles, mais d'autres (par exemple. Achat) sont mis à jour?

une version en lecture seule peut être créé en utilisant un cache?

Ou, sûrement il y a des moments de la journée où une interruption de service est acceptable? Travailler un dimanche soir? Même les sites assez grands ont des fenêtres de maintenance au cours de laquelle des morceaux de fonctionnalité sont indisponible.

Si c'est que la base de données que vous mettez à niveau, juste faire un nouveau et revenir dès qu'il est prêt. Si vous parlez de télécharger le code, transférez-le dans un autre répertoire et mv quand il est prêt. Il est ne devrait pas être un problème si vous avez une configuration similaire sur votre environnement de développement.

Vous pouvez également louer un serveur très pas cher comme ceux 20euro / mois (Kimsufi ou quelque chose) et faire votre mise à niveau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top