Я разработчик много лет, но у меня нет большого опыта в операциях, поэтому извиняюсь, если это новый вопрос.
В моей компании мы запускаем веб-сервис, написанный на Java, в основном на основе веб-сервера Tomcat. У нас есть два центра обработки данных примерно по 10 хостов в каждом. Хосты бывают нескольких типов: Dababase, Tomcats, некоторые автономные java-процессы, серверы memcached. Все хосты - Linux CentOS
До сих пор, при выпуске новой версии в производство, мы использовали набор собственных сценариев оболочки, которые копируют файлы jar / wars и перезапускают котов.
Компания стала больше, поэтому ей становилось все сложнее управлять всем этим и брать код от разработки, через QA, отладку до производства. Типичный выпуск часто включает в себя человеческие ошибки, которые стоят нам драгоценного времени безотказной работы. Иногда нам нужно вернуться к последнему известному хорошему, и это, мягко говоря, непросто ...
Мы ищем инструмент, фреймворк, решение, которое обеспечило бы следующее:
Кто-нибудь может поделиться своим опытом? Предложите несколько инструментов?
Спасибо!
Отказ от ответственности, я менеджер сообщества Zenoss.
Зенос охватывает все ваши пункты, кроме управления конфигурацией, но вы можете использовать его вместе с другой системой.
Я определенно рекомендую попробовать Сервер TC из SpringSource. Это упрощает управление и диагностику экземпляров Tomcat на предприятии, и вы получаете большую поддержку от ребят, участвующих в проекте Tomcat. Впрочем, все это имеет свою цену .. :(
я слышал Гиперический подходит для приложений Java.
Нет личного опыта, извините.
Ну, по крайней мере частично, вы можете использовать собственный jVisualVM Java.
Он включен в каждую установку java JDK ...
Просто загляните в папку lib, она тут же.
Splunk + Nagios + Nagios JMX Plugin или Log4j могут подойти ...
Также оформить заказ MuleSoft Сервер Tcat который обеспечивает простое развертывание, управление конфигурацией, надежные перезапуски и диагностику для Tomcat.
Отказ от ответственности: я работаю в MuleSoft.
Для управления конфигурацией, Повар - отличный инструмент, который может настраивать различные аспекты на разных типах серверов Linux, а также может использоваться для управления конфигурацией и, возможно, развертывания ваших приложений. Я настоятельно рекомендую использовать Chef или что-то подобное (Puppet и т. Д.) Для управления вашими серверами.
Также рассмотрите что-то вроде Hudson, который вы можете использовать для непрерывной интеграции (создание и запуск автоматических тестов каждый раз, когда кто-то фиксирует изменение источника), а также для развертывания сборок ваших приложений на серверах (dev, stage, live и т. д.). Его необходимо использовать вместе со сценариями (Ant, Maven, оболочка и т. Д.) Для фактического развертывания программного обеспечения, но это полезная часть головоломки.
То, что меня интересует, но я еще не вникал, это Облачные инструменты, который представляет собой набор инструментов для автоматизации развертывания приложений в стеке Tomcat / MySQL. Он предназначен для использования в облаках IaaS (например, Amazon EC2), но его также можно использовать и на обычных серверах, возможно, с небольшим количеством смазки. Главный потенциальный недостаток заключается в том, что на данный момент он не очень активно развивается.
Для мониторинга и развертывания на одном сервере Tomcat пси-зонд это возможное решение. Это форк Lambda Probe.
Что касается мониторинга инфраструктуры дыр, я согласен с ответом Nagios.
Альтернативой jVisualVM является jconsole, также входящая в состав JDK.
Я думаю, что для управления инфраструктурой дыр нет никакого способа обойтись без каких-либо настраиваемых сценариев, написанных ли они на bash, perl, ant, марионеточном манифесте или чем-то еще. Но вы можете скрыть их сложность за такими инструментами, как уже упомянутые hudson, puppet, cfengine, chef, ...