Алексей Рагозин, Deutsche Bank — Из распределённого кластера в JVM и обратно!

Встреча / Meetup сайт события http://jugru.timepad.ru/event/90530/

Добавить в календарь:
Поделиться:

В четверг 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, предоставляющий возможности выполнять часть скрипта удалённо (опять же, без развёртывания и агентов).

О докладчике

fa6d1af6-70e1-4610-8aea-2d35d078f9e1

Алексей Рагозин

Deutsche Bank

Специализируется на разработке высоконагруженных распределённых систем на платформе Java. За более чем 10 лет в индустрии он собрал опыт разработки информационных систем в таких вертикалях как финансы, телеком, ecommerce и здравоохранение.

С 2009 по 2011 Алексей возглавлял практику внедрения in-memory data grid решений в компании GridDynamics. В октябре 2011ого, Алексей перешёл в Deustche Bank, где является ведущим специалистом в области технологий распределённого кэширования.

Активный участник российских конференций, посвящённых разработке программного обеспечения и высокопроизводительных информационным системам.

Комментарии (0):

Оставлять комментарии могут только зарегистрированные пользователи

Для получения embed кода необходимо кликнуть правой
кнопкой мыши на видео и выбрать пункт меню
'Сгенерировать HTML код'

Забыли пароль? Регистрация