Извините, регистрация закрыта. Возможно, на событие уже зарегистрировалось слишком много человек, либо истек срок регистрации. Подробности Вы можете узнать у организаторов события.
В четверг 12 декабря в 19:00 в петербургском офисе компании Oracle состоится встреча с Алексеем Рагозиным, разработчиком московского отделения Deutsche Bank. Встреча будет состоять из двух частей. В первой части речь пойдёт об эмуляции распределённого кластера в JVM (как, зачем, почему) и фреймворке, реализующем эту задачу. Во второй части будет рассказано о движении в противоположном направлении: о том, как этот фреймворк помогает запускать Java-процессы удалённо на разных машинах.
Часть 1. Как и зачем эмулировать распределённый кластер в JVM
Написание автоматических тестов для распределённых Java приложений — дело непростое. Можно ограничиться модульными тестами на отдельные компоненты, но в таком тестовом покрытии будет много белых пятен. Можно пробовать запустить сложную топологию компонентов в рамках теста, но это не всегда работает (статика, сетевая конфигурация и т.п.).
На протяжении нескольких лет Алексей разрабатывал схемы для тестирования и отладки кластерных приложений на Oracle Coherence. Результатом этих усилий стала библиотека, позволяющая эмулировать несколько независимых процессов в одной JVM (с разными system properties, classpath и т.д.). Тот же подход был успешно использован для запуска стека Hadoop + Zookeeper + HBase в рамках интеграционных тестов на основе JUnit.
В докладе будет рассказано о свойствах получившейся Open Source библиотеки и тех возможностях, которые она открывает для автоматического непрерывного тестирования (тесты на обратную совместимость, тесты процедур восстановления после сбоя и т.п.).
Часть 2. Сеть — это большая JVM
Программный интерфейс для управления «виртуальными» Java-процессами из предыдущего доклада получился довольно хорош. Настолько хорош, что захотелось использовать его для управления реальным распределённым кластером. Немного чёрной магии (JSch, репликация classpath и п.р.) и, вуаля, с помощью дюжины строчек кода можно запустить java.util.Runnable на любом доступном по SSH удалённом сервере без предварительного развёртывания, установки агентов и т.п.
Чем это полезно? Две основные задачи, для решения которых мы пользуемся этим инструментом - это автоматические распределённые нагрузочные тесты и развёртывание. Для задач развёртывания так же создан ANT task, предоставляющий возможности выполнять часть скрипта удалённо (опять же, без развёртывания и агентов).
О докладчике
Алексей Рагозин, Deutsche Bank
Специализируется на разработке высоконагруженных распределённых систем на платформе Java. За более чем 10 лет в индустрии он собрал опыт разработки информационных систем в таких вертикалях как финансы, телеком, ecommerce и здравоохранение.
С 2009 по 2011 Алексей возглавлял практику внедрения in-memory data grid решений в компании GridDynamics. В октябре 2011ого, Алексей перешёл в Deustche Bank, где является ведущим специалистом в области технологий распределённого кэширования.
Активный участник российских конференций, посвящённых разработке программного обеспечения и высокопроизводительных информационным системам.