Je suis assez nouveau dans l'ensemble de la pile OSS Netflix et des déploiements en général. En tant qu'arrière-plan de mon niveau actuel de connaissances sur le plan opérationnel, mon rôle principal est en tant qu'ingénieur d'application front-end. Cependant, j'apprécie le côté des opérations, donc j'essaie de configurer une nouvelle stratégie de déploiement et l'outillage d'un nouveau projet.
Nos buts
- Déploiements super faciles (nous voulons appuyer sur un bouton pour mettre à jour la production)
- Déploiements automatisés pour tester les environnements (à l'aide de Jenkins)
- Facilité de maintenance (nous avons une application à écrire, je ne veux pas passer notre temps à tripoter les problèmes de production)
- Capacité à gérer une architecture orientée services (de nombreuses petites applications, différentes langues et magasins de données)
- Assez de flexibilité pour nous assurer que nous n'aurons pas à changer de stratégie de sitôt (nous essayons déjà de nous éloigner de RightScale)
Nous sommes d'accord avec un peu plus de temps de configuration initiale si cela nous évitera des maux de tête à l'avenir.
Donc, dans ce sens, j'ai écouté des podcasts, regardé des conférences d'Ops et lu des tonnes de billets de blog et en fonction de nos objectifs et de ce que j'ai pris pour former des meilleures pratiques, nous avons commencé à élaborer un plan en utilisant Asgard, rouler notre paquet dans un bocal et le rouler dans une AMI.
Nous avions tout prévu et apprécions les avantages du processus par rapport à l'utilisation d'un serveur Chef et de la convergence d'instances à la volée (nous avons pensé que cela était sujet aux erreurs étant donné notre calendrier limité et notre manque de compréhension autour d'un flux de travail du serveur Chef). Cependant, un collègue a fait un peu de recherche par lui-même et s'est senti comme Elastic Beanstalk répondait à nos besoins.
Je l'ai étudié et créé un environnement de test avec un fichier WAR et une base de données RDS attachée. Les choses semblent fonctionner et je pense que nous pouvons automatiser les déploiements dans un environnement de test à l'aide de Jenkins via l'API AWS. Semble assez simple ... peut-être trop simple.
Je me demande, quel est le problème? Si Elastic Beanstalk est si simple et efficace, pourquoi n'en parle-t-on pas davantage? J'ai du mal à trouver suffisamment d'opinions et de faits objectifs sur les deux différentes stratégies de déploiement, alors j'ai pensé poser des questions.
Utilisez-vous Elastic Beanstalk? Si oui, pourquoi et quels facteurs ont conduit à cette décision? Qu'est-ce que tu aimes et n'aimes pas?
Si vous n'utilisez pas Elastic Beanstalk mais que vous y avez pensé, qu'utilisez-vous et pourquoi n'avez-vous pas utilisé Elastic Beanstalk?
Quels sont les avantages et les inconvénients d'une stratégie de déploiement basée sur Elastic Beanstalk pour une architecture SOA? Autrement dit, Elastic Beanstalk fonctionnera-t-il bien avec de nombreuses petites applications qui dépendent les unes des autres pour fonctionner?
la source
Je vois le point de la perte de contrôle, mais je ne vois pas nécessairement l'apatridie obligatoire. Tout ce que fait eb est de déployer l'automatisation, ce qui est d'ailleurs génial. Je vois l'intérêt d'un grand référentiel. Je pense qu'en général, la séparation des fonctions d'applications logiques dans des applications de beans distinctes, puis des environnements de "mise en scène" et "de production" en dessous, est vraiment agréable. Nous avons des environnements de modules comme uploader, cela ne fait pas grand-chose et en théorie cela ajoute beaucoup de coûts, mais alors vous utilisez des instances plus petites juste plus. Nous exécutons un nginx centralisé et avons dû écrire de nombreux descripteurs de messages sns personnalisés pour notifier ngnix des changements dans la politique de mise à l'échelle automatique. Un autre gros problème eb est l'incapacité à désactiver les équilibrages de charge, puisque nous utilisons ngnix, pourquoi? elb ne prend pas en charge websocket.
la source