J'ai une application web simple déployée sur une grande instance avec EC2. Je veux maintenant déployer le dernier code sur ce serveur, mais je veux le faire d'une manière qui minimise les temps d'arrêt et soit aussi fluide que possible pour l'utilisateur final. Voici mon plan :
- Démarrer une autre grande instance
- Installer toutes les couches de logiciels sur cette instance
- Restaurer et attacher un lecteur EBS à l'instance
- Déployer notre dernier code prêt pour la production sur la nouvelle instance
- Exécuter tous les tests (y compris les tests manuels de l'application)
- (Si les tests passent) Mettre un avis de "Site en maintenance" sur le site en direct.
- Sauvegarder l'instance EBS sur le site en direct
- Détacher l'instance EBS du nouveau serveur et la remplacer par la dernière sauvegarde
- Utiliser ec2-associate-address pour déplacer l'adresse IP vers la nouvelle instance
- Se retirer et attendre que le trafic commence à passer par la nouvelle instance
- Terminer l'ancienne instance
Cette stratégie vous semble-t-elle bonne ? Y a-t-il des tutoriels ou des livres qui pourraient couvrir ce sujet ? J'ai déjà lu Cloud Application Architectures de George Reese, qui est un excellent livre, mais qui ne couvre pas le déploiement. De plus, je sais qu'il existe des outils qui peuvent aider comme RightScale ou enStratus que j'utiliserai lorsque je commencerai à utiliser plus d'une instance.