jokerconf Joker 2014 (20.10.2014 — 21.10.2014)

Monitoring a Java Application with multiprocess architecture

img

Вам случалось полдня разбираться почему не проходит интеграционный тест и обнаружить, что один из Java-процессов Вашего приложения, находясь под нагрузочным тестированием, которое проводил коллега напротив Вас, так усиленно писал логи, что забил все свободное дисковое пространство, что в свою очередь, не позволяло другому Java-процессу этого приложения открыть сокет? Или в Вашей команде более 20 server-side Java-девелоперов, а архитектура Вашего “Ынтерпрайза” со стороны напоминает гигантский клубок нейронов и аксонов?

В общем, если Вы работаете на действительно большом проекте, многочисленные компоненты которого активно взаимодействуют друг с другом и при этом разрабатываются разными командами, то Вы относитесь к одному из двух типов людей: либо Вы мониторите состояния компонентов и окружений, на которых эти компоненты развернуты, либо Вы будете их мониторить. Потому что без мониторинга Вы потратите кучу времени на выявление и устранение неприятных инфраструктурных и интеграционных проблем, вместо того чтобы писать чистый и совершенный Java-код.

В своём докладе я пройдусь по плюсам и минусам принципа single responsibility в server-side архитектуре, расскажу про типичные проблемы своего текущего проекта и поделюсь рабочими рецептами против паранойи бесконечной и болезненной межкомпонентной интеграции. Также будет представлен краткий обзор продуктов основных игроков в сфере мониторинга, таких как hyperic, nagios, appdynamic или newrelic, подходящих для использования как специалистами DevOps, так и Java-программистами.