Я довольно новичок во всем стеке Netflix OSS и развертываниях в целом. В качестве фона для моего текущего уровня знаний, моя основная роль заключается в качестве инженера внешнего интерфейса. Тем не менее, мне нравится эксплуатационная сторона, поэтому я пытаюсь настроить новую стратегию развертывания и инструменты для нового проекта.
Наши цели
- Супер легкое развертывание (мы хотим нажать кнопку, чтобы обновить производство)
- Автоматическое развертывание в тестовых средах (с использованием Jenkins)
- Простота обслуживания (у нас есть приложение для написания, мы не хотим тратить время на решение производственных проблем)
- Способность обрабатывать сервис-ориентированную архитектуру (множество небольших приложений, различные языки и хранилища данных)
- Достаточная гибкость, чтобы гарантировать, что нам не придется менять стратегии в ближайшее время (мы уже пытаемся уйти от RightScale)
У нас все в порядке с небольшим временем начальной настройки, если в будущем это избавит нас от головной боли.
Итак, в соответствии с этим, я слушал подкасты, смотрел доклады Ops и читал тонны постов в блоге, и исходя из наших целей и того, что я принял за формирование лучших практик, мы начали формировать план, используя Асгард, закатывая нашу посылку в банку и превращая ее в АМИ.
Мы все спланировали и нам понравились преимущества процесса по сравнению с использованием сервера Chef и конвергенции экземпляров на лету (мы чувствовали, что это может привести к ошибкам, учитывая нашу ограниченную временную шкалу и отсутствие понимания рабочего процесса сервера Chef). Тем не менее, коллега сам немного осмотрелся и почувствовал, что Elastic Beanstalk удовлетворил наши потребности.
Я изучил его и ускорил тестовую среду с помощью файла WAR и прикрепленной базы данных RDS. Кажется, все работает, и я считаю, что мы можем автоматизировать развертывание в среде тестирования с помощью Jenkins через AWS API. Кажется достаточно простым ... возможно, слишком простым.
Что мне интересно, в чем подвох? Если Elastic Beanstalk настолько прост и эффективен, почему о нем не говорится больше? Мне трудно найти достаточно объективных мнений и фактов о двух разных стратегиях развертывания, поэтому я решил спросить.
Вы используете Elastic Beanstalk? Если да, то почему и какие факторы приводят к такому решению? Что тебе нравится и не нравится?
Если вы не используете Elastic Beanstalk, но рассматриваете его, что вы используете и почему вы не использовали Elastic Beanstalk?
Каковы преимущества и недостатки стратегии развертывания на основе Elastic Beanstalk для SOA? То есть, будет ли Elastic Beanstalk хорошо работать со многими небольшими приложениями, которые полагаются на работу друг друга?
источник
Я вижу смысл потери контроля, но я не обязательно вижу обязательное безгражданство. Все, что на самом деле делает eb - это развертывание автоматизации, что, кстати, потрясающе. Я вижу смысл большого хранилища. В общем, я думаю, что разделение логических функций приложения на отдельные приложения bean, а затем создание «промежуточной» и «расширенной» сред - это действительно хорошо. У нас есть модули среды, такие как uploader, это не очень много, и в теории это добавляет много затрат, но тогда вы используете меньшие экземпляры, только больше. Мы запустили централизованный nginx, и нам пришлось написать множество пользовательских дескрипторов sns, чтобы уведомить ngnix об изменениях в политике автоматического масштабирования. Еще одна большая проблема - невозможность изменить баланс нагрузки, так как мы используем ngnix, почему? elb не поддерживает websocket.
источник