Компания ZeroTurnaround, известная инструментами для разработчиков JRebel и XRebel, недавно представила новый продукт XRebel Hub. Мы решили не ограничиваться информацией с официального сайта, а узнать подробности из первых рук: расспросили PM этого проекта Дмитрия Пивоварова.
— Что представляет собой XRebel Hub?
— Это инструмент для обнаружения проблем перфоманса в текущем релизе. Мы ищем три основных типа ошибок: первый — когда что-то стало медленнее работать, второй — когда приложение делает слишком много I/O-запросов, третий — исключения. Эти три вещи в сумме составляют 86% связанных с перфомансом проблем, которые встречаются в продакшене. Так что можно до того, как они попадут в продакшен и начнут портить жизнь пользователям, своевременно заметить и побороть их.
— Привычный XRebel тоже заблаговременно ищет проблемы перфоманса, чем Hub отличается?
— Основное отличие в следующем. Возьмём типичный delivery pipeline, который начинается от компьютера, где разработчик пишет код, и заканчивается сервером на продакшене. Где-то ближе к началу будет находиться репозиторий. И XRebel предназначен для стадии от локального компьютера разработчика до репозитория, а XRebel Hub — для всех остальных окружений или серверов, идущих после репозитория, до продакшена.
Идея в том, что XRebel помогает сразу писать хороший код, давая живой фидбэк, и такой код можно будет закоммитить без проблем в репозиторий. А XRebel Hub позволяет удостовериться, что всё закоммиченное хорошо работает вместе, и на продакшен не проходят никакие ошибки. Один продукт помогает производить качественный код, а второй — убедиться, что код работает как надо.
Оба инструмента подключаются как Java-агенты, но из-за их разницы дальнейшее взаимодействие с ними выглядит по-разному. Панель XRebel отображается прямо поверх приложения, над которым работаешь: подевелопил, смотришь на результат, и в реальном времени видишь показатели. А Hub — для тестовых сред, где не нужно постоянно сидеть и смотреть (тем более, что там автоматические тесты бегают). В его панель заходишь либо в случае, когда сам хочешь проверить статус релиза или состояние приложений, либо когда получаешь от него уведомление, что что-то стало хуже работать.
У «Хаба» также есть интересное отличие в том, что он использует историю. XRebel ищет ошибки, ориентируясь на статические пороги, допустим, «медленнее 200 миллисекунд считается ошибкой». А в XRebel Hub появились динамические: при появлении новой версии сравниваем её с предыдущей, если видим, что точка входа (entry point) резко стала работать медленнее, понимаем, что это ошибка. Но статические при этом выставить тоже можно.
— Почему решено было сделать два разных инструмента? Напрашивается ведь их совместное использование.
— Да, они хорошо дополняют друг друга, и вместе создают синергию, полностью покрывая все стадии процесса разработки. Поэтому мы планируем собрать их в suite, как раз и предполагающий совместное использование. Но каждый из них по отдельности — вполне самодостаточный продукт, который можно использовать независимо, и он будет помогать на своей стадии.
— И над каждым работает своя команда?
— Да, в ZeroTurnaround две команды. Но, конечно, в работе над этими инструментами есть пересечения.
— Любопытно узнать: а пользуетесь ли XRebel Hub вы сами в ZeroTurnaround?
Мы используем XRebel Hub непосредственно на самом XRebel Hub’е при тестировании и на стейджинге, т.е. догфудим. Не раз он нам помог заметить и решить проблемы до выкатывания обновления в лайв.
— Сейчас XRebel Hub в бете, а к чему будет приурочен выход из беты? Собираетесь ощутимо расширять функциональность, или будете просто работать над стабильностью?
— Следующая веха — on-premise версия. Сейчас Hub живёт в облаке, и поставить его себе полностью во внутреннюю сеть нельзя. И хотя переход в облако — общий тренд индустрии, иногда компании всё же хотят on-premise, волнуются из-за безопасности, поэтому достаточно много людей об этом спрашивают, и это мы собираемся реализовать.
А бета у нас закончится попросту тогда, когда продукт станет платным. Строгой даты выхода из беты нет, но хотим сделать это в ближайшую пару месяцев.
— Так что тем, кто хочет подольше использовать бесплатно, стоит как можно быстрее устанавливать?
— Да, у нас в любом случае будет trial-версия с бесплатным периодом, но если сейчас установить, получится на два месяца дольше. А кроме того, сейчас самый подходящий момент, чтобы сообщить нам какие-то пожелания о развитии инструмента, так что устанавливать его прямо сейчас стоит и для этого тоже.
— Напоследок хочется узнать: а что в Hub особенно радует лично вас?
— Есть фича, которой я не видел ни у каких других application performance management-инструментов: мы сравниваем и диффим stack trace. Если в новой версии вашего приложения что-то резко замедлилось, мы берём стек-трейс нормального реквеста, который отрабатывал быстро, нового, который тормозит, и сравниваем их. Прямо diff делаем, как в каком-нибудь Bitbucket. И показываем, какие методы стали медленнее и почему, добавился ли новый код, откуда код был удалён. Думать вообще не надо, открываешь, смотришь — и сразу видишь, в каком методе проблема:
— Спасибо за ответы! А нас особенно радует эффектная наклейка XRebel Hub, поместили её на макбук прямо к нашей наклейке Joker: