Ближайшая конференция: Joker 2023 910 октября Online 1314 октября Offline Санкт-Петербург
Подробности и билеты:
.
.
.
.
Алексей Рагозин Deutsche Bank Блеск и нищета распределенных кешей
Встреча JUG.ru 05.06.2014
Часть 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 предоставляющий возможности выполнять часть скрипта удалённо опять же без развёртывания и агентов.
Источник: rutube.ru