SlideShare a Scribd company logo
VADIM GAUZIAK • DEVELOPER • SBERBANK TECHNOLOGY
Как мы искали баг JIRA
и нашли его
AUG SPB
НАШИ ОШИБКИ
ПОИСК БАГА
ДЕЛАЕМ ПРАВИЛЬНО
Agenda
Начало
#JIRAЖИВИ
#JIRAНЕБОЛЕЙ
Melody
Thread Dump
Thread Dump
Thread Dump
Zabbix
LexoRank DB
LexoRank
Сам баг
Продолжение?
Наши Ошибки
Ошибки коммуникации
• Потеря времени
• Редкие взаимодействия администраторов и
разработчиков
• Переключение контекста на другие вопросы
Технические ошибки
• Искали hotfix
• Неправильно локализовали проблему
• Поздно обратились к Atlassian
Делаем правильно
Рекомендации по коммуникациям
• При возникновении проблемы – сразу же сообщить всем
администраторам
• Если проблема не решена за короткий срок (менее ~1
часа) сообщить всей команде
• Одновременная работа разработчика и администратора
• Изолируйте команду
Технические рекомендации
• Ищите проблему, а не hotfix
• Работайте параллельно с Atlassian
Thank you!
VADIM GAUZIAK • DEVELOPER • SBERBANK TECHNOLOGY
GONCHIK TSYMZHITOV • ATLASSIAN ADMINISTRATOR • ITIVITI • FB: GONCHIK
Updates, updates and updates
или как обновляться с меньшей болью
МОТИВАЦИЯ
ОСНОВНЫЕ СЦЕНАРИИ
CLEANUP
МИНИЗАЦИЯ РИСКОВ
План
ШАГИ ОБНОВЛЕНИЯ
Кто мы?
Под брендом Itiviti [Айтивити] в 2016 году объединились компании:
• Orc Group, - разработчик финансового программного обеспечения;
• CameronTec Group - эксперт в области инфраструктуры финансового обмена сообщениями и
подключений к электронным биржам;
• Tbricks AB - автор одной из самых быстрых в мире систем для торговли на электронных биржах.
Основные офисы компании находятся в Стокгольме, Санкт-Петербурге, Чикаго и Гонконге.
Основные сценарии
SLA Решение Ссылка на документацию
Он есть, и нужно нет окна JIRA Data Center Managing zero downtime
upgrades
Есть и есть окно для
обновления
Proxy. Staging and Production
apps
Upgrading JIRA with a fallback
method
Нет, и есть окно обновления VM snapshot, (backup DB,
files)
Upgrading JIRA using a rapid
upgrade method
JIRA DATA CENTER
Zero Downtime update
Обновление
с возможностью отката
Обновление с долгим откатом
• Cleanup JIRA
• VM Snapshot
• Backup DB
• Rsync Files ($JIRA_INSTALL, $JIRA_HOME)
• Disable all add-ons (UPM compability)
• Restart with new installation directory
• Enable add-on by add-on (/update)
Что я получу
от обновления?
• Features from Release notes
• Bug fixes
• Performance or regression?! (Tests?)
Crashes and Performance Issues
Веб-сайт?
• Java App (Oracle JDK)
• JDBC driver
• СУБД? (Database schema)
• OS
Что есть JIRA? Глобально?
Что делать с JVM?
Взято с сайта
Шипилёва Алексея
Подробно разбирали
AUG на митапе
«Performance tricks»
• systemd/init.d with predefined variables
Уменьшаем количество шагов
[Unit]
Description=“JIRA acceptance test server”
After=syslog.target network.target mysqld.target
[Service]
Type=forking
User=jira
Environment="JIRA_HOME=/jira/home"
Environment="JAVA_HOME=/usr/java/latest"
Environment="JRE_HOME=/usr/java/latest/jre"
ExecStart=/jira/current/bin/start-jira.sh
ExecStop=/jira/current/bin/stop-jira.sh
TimeoutSec=180
Restart=on-failure
UMask=0022
[Install]
WantedBy=multi-user.target
#!/bin/sh
# description: JIRA acceptance test server
JAVA_HOME=/usr/java/latest/
export JAVA_HOME
JIRAUSER="jira"
case "$1" in
start)
su - ${JIRAUSER} /jira/current/bin/startup.sh
;;
stop)
su - ${JIRAUSER} /jira/current/bin/shutdown.sh
;;
*)
echo "Usage: $0 {start|stop|forcestop}"
exit 1
;;
esac
CONFSERVER-51937
JRE_HOME is not set
Linux(x64) installer
• JDK/JRE
- symlink (/usr/java/latest)
- $JAVA_HOME
• DB connector latest
- symlink
Причина:
• https://jdbc.postgresql.org/
• https://dev.mysql.com/downloads/connector/j/
Уменьшаем количество шагов
• Config template files in scripts, git/svn
Уменьшаем количество шагов
Это все прекрасно. А
тестовые стенды?
https://bitbucket.org/almworks/pocker
• Git flow
• Оркестрация (Chef,
puppet, ansible,
salstack)
• Docker Pocker
Минизация рисков
https://forge.puppet.com/puppet/jira
Может
в ходе обновления
пересмотреть
сущности JIRA?
А есть смысл?
https://www.atlassian.com/blog
Cleanup
• Пересмотр всех плагинов и проверка совместимости через UPM
• Fields, Screen, Issue type, Permission, Notification, schemes (в помощь Scheme
cleaner)
• Проверка коллизий, ошибок на уровне пользователей (в помощь Botron S.
Integrity checker)
• Архивирование проектов, изменение видимости и т.п. ( в помощь
документация)
• Логи, кэши
Admin cleanup tools
Инструмент Плюсы Минусы Комментарий
Scheme Cleaner for
JIRA
Удобно смотреть
смотреть даты
обновления и общие
манипуляции со
схемами
Не интуитивно
понятный интерфейс,
не поддерживает
последние версии
Проверяю на тестовых
инстансах для
понимания ситуации в
промышленной среде
Cleaner for JIRA Сразу видим
статистику, и можно
делать выводы
На промышленной
среде будет регрессия
по производительности
Проверять только на
тестовых инстансах
Admin Tools for JIRA Подобный функционал
предыдущего плагина
На промышленной
среде будет регрессия
по производительности
Проверять только на
тестовых инстансах
Свои скрипты Можно брать и делать Можно вдумчиво в
продакшен
Статистика сущностей
Пример:
на основе скринов
Life hack:
• поиск по слову Delete на странице,
• Или запрос в БД
Пример на основе полей
Life hack:
• Python jira-api
• Или запрос в БД
Дальше и больше
• Статистика Resolution
• Время жизни в статусах
• Внедрение новой функциональности
Категорий проектов и онлайн
архивирование
Для наглядности
убрал условия
Основной обновления.
Плагины.
• Для отключения плагинов, с 7.3 версий появилась директива
--disable-all-addons (or /disablealladdons for Windows users)
--disable-addons=<addon keys> or (/disableaddons=<addon keys> for Windows users)
• Ранее апдейт в БД
• Или просто перемещали из `mv $JIRA HOME/plugins/installed-plugins{,.bk}`
2.--disable-addons=<addon keys> or (/disableaddons=<addon keys> for Windows users)
Итак, всё вместе
• UPM проверка совместимости плагинов и отключение их пере обновлением
• Обновления на тестовых стендах (не забываем disable mail and app links)
• По максимуму cleanup, и архивирование отдельных проектов, задач
• Запуск части тестировщиков
• Обновление staging и далее разогрев кэша посредством REST API запросов
• Баннер и другие оповещения, после согласований
• Смена proxy_pass перенаправление линков
• Успех или rollback
JIRA Upgrade Notes
Благодарю за
внимание!
GONCHIK TSYMZHITOV • ATLASSIAN ADMINISTRATOR • ITIVITI • FB:GONCHIK
Extra. СовместимостьAPI?
Старое Поновее
getCustomFieldObjectByName(fieldName) getCustomFieldObjectsByName(fieldName).iterator().next()
issue.getResolutionObject issue.getResolution
issue.getPriorityObject() issue.getPriority()
issue.getStatusObject() issue.getStatus()
issue.getIssueTypeObject() issue.getIssueType()
jiraHelper.getProjectObject jiraHelper.getProject
com.atlassian.jira.plugin.webfragment.conditions.AbstractIssueCondition com.atlassian.jira.plugin.webfragment.conditions.AbstractIssueWebCondition
com.atlassian.jira.security.Permissions com.atlassian.jira.permission.ProjectPermissions
Group jiraUserGroup = userManager.getGroup(groupnames[i]);
userUtil.addUserToGroup(jiraUserGroup, user);
GroupManager groupManager = ComponentAccessor.getGroupManager();
try {
Group jiraUserGroup = userManager.getGroup(groupnames[i]);
log.debug("PREPARE add custom user groups");
if (jiraUserGroup == null) {
log.debug("Group does not found");
}
groupManager.addUserToGroup(user, jiraUserGroup);
log.debug("add User into Group");
} catch (Throwable e) {
log.error("Exception thrown on " + e);
e.printStackTrace();
}

More Related Content

What's hot

Управление изменениями и коллективная разработка в Caché. InterSystems Meetup...
Управление изменениями и коллективная разработка в Caché. InterSystems Meetup...Управление изменениями и коллективная разработка в Caché. InterSystems Meetup...
Управление изменениями и коллективная разработка в Caché. InterSystems Meetup...
InterSystems
 
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
Ontico
 
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
Zabbix
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Ontico
 
Переосмысливая подход к инфраструктурному коду / Евгений Пивень (IPONWEB)
Переосмысливая подход к инфраструктурному коду / Евгений Пивень (IPONWEB)Переосмысливая подход к инфраструктурному коду / Евгений Пивень (IPONWEB)
Переосмысливая подход к инфраструктурному коду / Евгений Пивень (IPONWEB)
Ontico
 
История HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качествуИстория HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качеству
SQALab
 
"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov
Fwdays
 
Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?
SQALab
 
Непрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуНепрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуИгорь Родионов
 
React Native в продакшне
React Native в продакшнеReact Native в продакшне
React Native в продакшне
Eugeni Feudorov
 
Экономически эффективный процесс тестирования (Codefest 2015)
Экономически эффективный процесс тестирования (Codefest 2015)Экономически эффективный процесс тестирования (Codefest 2015)
Экономически эффективный процесс тестирования (Codefest 2015)
Andrei Solntsev
 
AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...
AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...
AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...
JSC “Arcadia Inc”
 
Практика тестирования web сервисов
Практика тестирования web сервисовПрактика тестирования web сервисов
Практика тестирования web сервисов
SQALab
 
Grail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестовGrail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестов
CodeFest
 
Концепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикадКонцепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикад
SQALab
 
Тестирование в CCTV: частные случаи и глобальные проблемы
Тестирование в CCTV: частные случаи и глобальные проблемыТестирование в CCTV: частные случаи и глобальные проблемы
Тестирование в CCTV: частные случаи и глобальные проблемы
SQALab
 
End-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияEnd-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализация
SQALab
 
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
JSC “Arcadia Inc”
 
Тимур Шевляков
Тимур ШевляковТимур Шевляков
Тимур Шевляков
CodeFest
 
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинvSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
Positive Hack Days
 

What's hot (20)

Управление изменениями и коллективная разработка в Caché. InterSystems Meetup...
Управление изменениями и коллективная разработка в Caché. InterSystems Meetup...Управление изменениями и коллективная разработка в Caché. InterSystems Meetup...
Управление изменениями и коллективная разработка в Caché. InterSystems Meetup...
 
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
 
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
 
Переосмысливая подход к инфраструктурному коду / Евгений Пивень (IPONWEB)
Переосмысливая подход к инфраструктурному коду / Евгений Пивень (IPONWEB)Переосмысливая подход к инфраструктурному коду / Евгений Пивень (IPONWEB)
Переосмысливая подход к инфраструктурному коду / Евгений Пивень (IPONWEB)
 
История HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качествуИстория HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качеству
 
"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov
 
Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?
 
Непрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуНепрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойменту
 
React Native в продакшне
React Native в продакшнеReact Native в продакшне
React Native в продакшне
 
Экономически эффективный процесс тестирования (Codefest 2015)
Экономически эффективный процесс тестирования (Codefest 2015)Экономически эффективный процесс тестирования (Codefest 2015)
Экономически эффективный процесс тестирования (Codefest 2015)
 
AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...
AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...
AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...
 
Практика тестирования web сервисов
Практика тестирования web сервисовПрактика тестирования web сервисов
Практика тестирования web сервисов
 
Grail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестовGrail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестов
 
Концепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикадКонцепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикад
 
Тестирование в CCTV: частные случаи и глобальные проблемы
Тестирование в CCTV: частные случаи и глобальные проблемыТестирование в CCTV: частные случаи и глобальные проблемы
Тестирование в CCTV: частные случаи и глобальные проблемы
 
End-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияEnd-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализация
 
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
 
Тимур Шевляков
Тимур ШевляковТимур Шевляков
Тимур Шевляков
 
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинvSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
 

Similar to Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки

Jiramania презентации @augspb
Jiramania презентации   @augspbJiramania презентации   @augspb
Jiramania презентации @augspb
Gonchik Tsymzhitov
 
Atlassian user group
Atlassian user groupAtlassian user group
Atlassian user group
Gonchik Tsymzhitov
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaAlex Chistyakov
 
Protrarctor and Angular
Protrarctor and AngularProtrarctor and Angular
Protrarctor and Angular
SQALab
 
Организация процесса ручного тестирования
Организация процесса ручного тестированияОрганизация процесса ручного тестирования
Организация процесса ручного тестирования
IT61
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорьdrupalconf
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьPVasili
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidAnton Rutkevich
 
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Positive Hack Days
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Ontico
 
Обзорная презентация Atlassian JIRA
Обзорная презентация Atlassian JIRAОбзорная презентация Atlassian JIRA
Обзорная презентация Atlassian JIRATeamlead
 
Кирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовКирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектов
Olesya_V
 
So Your WAF Needs a Parser
So Your WAF Needs a ParserSo Your WAF Needs a Parser
So Your WAF Needs a Parser
yalegko
 
Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...
Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...
Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...
Badoo Development
 
Изоморфные react-приложения
Изоморфные react-приложенияИзоморфные react-приложения
Изоморфные react-приложения
Denis Izmaylov
 
Введение в performance management
Введение в performance managementВведение в performance management
Введение в performance management
SQALab
 
Миграция JIRA - безобразие или безрассудство
Миграция JIRA - безобразие или безрассудствоМиграция JIRA - безобразие или безрассудство
Миграция JIRA - безобразие или безрассудство
SQALab
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
Yandex
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для Android
SQALab
 

Similar to Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки (20)

Jiramania презентации @augspb
Jiramania презентации   @augspbJiramania презентации   @augspb
Jiramania презентации @augspb
 
Atlassian user group
Atlassian user groupAtlassian user group
Atlassian user group
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
 
Protrarctor and Angular
Protrarctor and AngularProtrarctor and Angular
Protrarctor and Angular
 
Организация процесса ручного тестирования
Организация процесса ручного тестированияОрганизация процесса ручного тестирования
Организация процесса ручного тестирования
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорь
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для Android
 
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
 
Gitlab devconf
Gitlab devconfGitlab devconf
Gitlab devconf
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
Обзорная презентация Atlassian JIRA
Обзорная презентация Atlassian JIRAОбзорная презентация Atlassian JIRA
Обзорная презентация Atlassian JIRA
 
Кирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовКирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектов
 
So Your WAF Needs a Parser
So Your WAF Needs a ParserSo Your WAF Needs a Parser
So Your WAF Needs a Parser
 
Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...
Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...
Доклад Владислава Чернова & Олега Оямяэ на РИТ++ 2013. "AIDA. Непрерывная инт...
 
Изоморфные react-приложения
Изоморфные react-приложенияИзоморфные react-приложения
Изоморфные react-приложения
 
Введение в performance management
Введение в performance managementВведение в performance management
Введение в performance management
 
Миграция JIRA - безобразие или безрассудство
Миграция JIRA - безобразие или безрассудствоМиграция JIRA - безобразие или безрассудство
Миграция JIRA - безобразие или безрассудство
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для Android
 

More from Gonchik Tsymzhitov

TsymzhitovGB - Jira Day
TsymzhitovGB - Jira DayTsymzhitovGB - Jira Day
TsymzhitovGB - Jira Day
Gonchik Tsymzhitov
 
28.08 Как COVID-19 помогает безопасности земных инсталляции Jirа, продуктов A...
28.08 Как COVID-19 помогает безопасности земных инсталляции Jirа, продуктов A...28.08 Как COVID-19 помогает безопасности земных инсталляции Jirа, продуктов A...
28.08 Как COVID-19 помогает безопасности земных инсталляции Jirа, продуктов A...
Gonchik Tsymzhitov
 
Мифы про Project-ов, Product-ов, любимую Jira и многие темы вокруг на
Мифы про Project-ов, Product-ов, любимую Jira и многие темы вокруг на Мифы про Project-ов, Product-ов, любимую Jira и многие темы вокруг на
Мифы про Project-ов, Product-ов, любимую Jira и многие темы вокруг на
Gonchik Tsymzhitov
 
Aнализ требований, управление тестами в Jira Software
Aнализ требований, управление тестами в Jira SoftwareAнализ требований, управление тестами в Jira Software
Aнализ требований, управление тестами в Jira Software
Gonchik Tsymzhitov
 
TsymzhitovGB - PMI
TsymzhitovGB - PMITsymzhitovGB - PMI
TsymzhitovGB - PMI
Gonchik Tsymzhitov
 
Misleading Confluence Security Settings and What to Do With Them and Reporting
Misleading Confluence Security Settings and What to Do With Them and ReportingMisleading Confluence Security Settings and What to Do With Them and Reporting
Misleading Confluence Security Settings and What to Do With Them and Reporting
Gonchik Tsymzhitov
 
Atlassian user group in itiviti
Atlassian user group in itivitiAtlassian user group in itiviti
Atlassian user group in itiviti
Gonchik Tsymzhitov
 
"Гибкие методологии выбраны, но как жить с этим?"
"Гибкие методологии выбраны, но как жить с этим?""Гибкие методологии выбраны, но как жить с этим?"
"Гибкие методологии выбраны, но как жить с этим?"
Gonchik Tsymzhitov
 
SAFe in Jira
SAFe in JiraSAFe in Jira
SAFe in Jira
Gonchik Tsymzhitov
 
Жизнь после SAFe
Жизнь после SAFeЖизнь после SAFe
Жизнь после SAFe
Gonchik Tsymzhitov
 
По Вашей просьбе, продукты Atlassian в Docker
По Вашей просьбе, продукты Atlassian в DockerПо Вашей просьбе, продукты Atlassian в Docker
По Вашей просьбе, продукты Atlassian в Docker
Gonchik Tsymzhitov
 
Markelov-AUG-Jira
Markelov-AUG-JiraMarkelov-AUG-Jira
Markelov-AUG-Jira
Gonchik Tsymzhitov
 
BorodinA-AUG-2
BorodinA-AUG-2BorodinA-AUG-2
BorodinA-AUG-2
Gonchik Tsymzhitov
 
Tsymzhitov GB chaos constructions 2017
Tsymzhitov GB chaos constructions 2017Tsymzhitov GB chaos constructions 2017
Tsymzhitov GB chaos constructions 2017
Gonchik Tsymzhitov
 
AUG-5: Testing tools
AUG-5: Testing toolsAUG-5: Testing tools
AUG-5: Testing tools
Gonchik Tsymzhitov
 
Astafiev - plugins
Astafiev - pluginsAstafiev - plugins
Astafiev - plugins
Gonchik Tsymzhitov
 
Tsymzhitov Performance Tricks
Tsymzhitov Performance TricksTsymzhitov Performance Tricks
Tsymzhitov Performance Tricks
Gonchik Tsymzhitov
 
DevOps with Atlassian
DevOps with AtlassianDevOps with Atlassian
DevOps with Atlassian
Gonchik Tsymzhitov
 
AUG-1
AUG-1AUG-1
Через тернии к звездам
Через тернии к звездамЧерез тернии к звездам
Через тернии к звездам
Gonchik Tsymzhitov
 

More from Gonchik Tsymzhitov (20)

TsymzhitovGB - Jira Day
TsymzhitovGB - Jira DayTsymzhitovGB - Jira Day
TsymzhitovGB - Jira Day
 
28.08 Как COVID-19 помогает безопасности земных инсталляции Jirа, продуктов A...
28.08 Как COVID-19 помогает безопасности земных инсталляции Jirа, продуктов A...28.08 Как COVID-19 помогает безопасности земных инсталляции Jirа, продуктов A...
28.08 Как COVID-19 помогает безопасности земных инсталляции Jirа, продуктов A...
 
Мифы про Project-ов, Product-ов, любимую Jira и многие темы вокруг на
Мифы про Project-ов, Product-ов, любимую Jira и многие темы вокруг на Мифы про Project-ов, Product-ов, любимую Jira и многие темы вокруг на
Мифы про Project-ов, Product-ов, любимую Jira и многие темы вокруг на
 
Aнализ требований, управление тестами в Jira Software
Aнализ требований, управление тестами в Jira SoftwareAнализ требований, управление тестами в Jira Software
Aнализ требований, управление тестами в Jira Software
 
TsymzhitovGB - PMI
TsymzhitovGB - PMITsymzhitovGB - PMI
TsymzhitovGB - PMI
 
Misleading Confluence Security Settings and What to Do With Them and Reporting
Misleading Confluence Security Settings and What to Do With Them and ReportingMisleading Confluence Security Settings and What to Do With Them and Reporting
Misleading Confluence Security Settings and What to Do With Them and Reporting
 
Atlassian user group in itiviti
Atlassian user group in itivitiAtlassian user group in itiviti
Atlassian user group in itiviti
 
"Гибкие методологии выбраны, но как жить с этим?"
"Гибкие методологии выбраны, но как жить с этим?""Гибкие методологии выбраны, но как жить с этим?"
"Гибкие методологии выбраны, но как жить с этим?"
 
SAFe in Jira
SAFe in JiraSAFe in Jira
SAFe in Jira
 
Жизнь после SAFe
Жизнь после SAFeЖизнь после SAFe
Жизнь после SAFe
 
По Вашей просьбе, продукты Atlassian в Docker
По Вашей просьбе, продукты Atlassian в DockerПо Вашей просьбе, продукты Atlassian в Docker
По Вашей просьбе, продукты Atlassian в Docker
 
Markelov-AUG-Jira
Markelov-AUG-JiraMarkelov-AUG-Jira
Markelov-AUG-Jira
 
BorodinA-AUG-2
BorodinA-AUG-2BorodinA-AUG-2
BorodinA-AUG-2
 
Tsymzhitov GB chaos constructions 2017
Tsymzhitov GB chaos constructions 2017Tsymzhitov GB chaos constructions 2017
Tsymzhitov GB chaos constructions 2017
 
AUG-5: Testing tools
AUG-5: Testing toolsAUG-5: Testing tools
AUG-5: Testing tools
 
Astafiev - plugins
Astafiev - pluginsAstafiev - plugins
Astafiev - plugins
 
Tsymzhitov Performance Tricks
Tsymzhitov Performance TricksTsymzhitov Performance Tricks
Tsymzhitov Performance Tricks
 
DevOps with Atlassian
DevOps with AtlassianDevOps with Atlassian
DevOps with Atlassian
 
AUG-1
AUG-1AUG-1
AUG-1
 
Через тернии к звездам
Через тернии к звездамЧерез тернии к звездам
Через тернии к звездам
 

Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки

  • 1. VADIM GAUZIAK • DEVELOPER • SBERBANK TECHNOLOGY Как мы искали баг JIRA и нашли его AUG SPB
  • 4.
  • 15. Ошибки коммуникации • Потеря времени • Редкие взаимодействия администраторов и разработчиков • Переключение контекста на другие вопросы
  • 16. Технические ошибки • Искали hotfix • Неправильно локализовали проблему • Поздно обратились к Atlassian
  • 18. Рекомендации по коммуникациям • При возникновении проблемы – сразу же сообщить всем администраторам • Если проблема не решена за короткий срок (менее ~1 часа) сообщить всей команде • Одновременная работа разработчика и администратора • Изолируйте команду
  • 19. Технические рекомендации • Ищите проблему, а не hotfix • Работайте параллельно с Atlassian
  • 20. Thank you! VADIM GAUZIAK • DEVELOPER • SBERBANK TECHNOLOGY
  • 21. GONCHIK TSYMZHITOV • ATLASSIAN ADMINISTRATOR • ITIVITI • FB: GONCHIK Updates, updates and updates или как обновляться с меньшей болью
  • 23. Кто мы? Под брендом Itiviti [Айтивити] в 2016 году объединились компании: • Orc Group, - разработчик финансового программного обеспечения; • CameronTec Group - эксперт в области инфраструктуры финансового обмена сообщениями и подключений к электронным биржам; • Tbricks AB - автор одной из самых быстрых в мире систем для торговли на электронных биржах. Основные офисы компании находятся в Стокгольме, Санкт-Петербурге, Чикаго и Гонконге.
  • 24. Основные сценарии SLA Решение Ссылка на документацию Он есть, и нужно нет окна JIRA Data Center Managing zero downtime upgrades Есть и есть окно для обновления Proxy. Staging and Production apps Upgrading JIRA with a fallback method Нет, и есть окно обновления VM snapshot, (backup DB, files) Upgrading JIRA using a rapid upgrade method
  • 25. JIRA DATA CENTER Zero Downtime update
  • 27. Обновление с долгим откатом • Cleanup JIRA • VM Snapshot • Backup DB • Rsync Files ($JIRA_INSTALL, $JIRA_HOME) • Disable all add-ons (UPM compability) • Restart with new installation directory • Enable add-on by add-on (/update)
  • 28. Что я получу от обновления? • Features from Release notes • Bug fixes • Performance or regression?! (Tests?) Crashes and Performance Issues
  • 29. Веб-сайт? • Java App (Oracle JDK) • JDBC driver • СУБД? (Database schema) • OS Что есть JIRA? Глобально?
  • 30. Что делать с JVM? Взято с сайта Шипилёва Алексея Подробно разбирали AUG на митапе «Performance tricks»
  • 31. • systemd/init.d with predefined variables Уменьшаем количество шагов [Unit] Description=“JIRA acceptance test server” After=syslog.target network.target mysqld.target [Service] Type=forking User=jira Environment="JIRA_HOME=/jira/home" Environment="JAVA_HOME=/usr/java/latest" Environment="JRE_HOME=/usr/java/latest/jre" ExecStart=/jira/current/bin/start-jira.sh ExecStop=/jira/current/bin/stop-jira.sh TimeoutSec=180 Restart=on-failure UMask=0022 [Install] WantedBy=multi-user.target #!/bin/sh # description: JIRA acceptance test server JAVA_HOME=/usr/java/latest/ export JAVA_HOME JIRAUSER="jira" case "$1" in start) su - ${JIRAUSER} /jira/current/bin/startup.sh ;; stop) su - ${JIRAUSER} /jira/current/bin/shutdown.sh ;; *) echo "Usage: $0 {start|stop|forcestop}" exit 1 ;; esac CONFSERVER-51937 JRE_HOME is not set Linux(x64) installer
  • 32. • JDK/JRE - symlink (/usr/java/latest) - $JAVA_HOME • DB connector latest - symlink Причина: • https://jdbc.postgresql.org/ • https://dev.mysql.com/downloads/connector/j/ Уменьшаем количество шагов
  • 33. • Config template files in scripts, git/svn Уменьшаем количество шагов
  • 34. Это все прекрасно. А тестовые стенды? https://bitbucket.org/almworks/pocker • Git flow • Оркестрация (Chef, puppet, ansible, salstack) • Docker Pocker
  • 38. Cleanup • Пересмотр всех плагинов и проверка совместимости через UPM • Fields, Screen, Issue type, Permission, Notification, schemes (в помощь Scheme cleaner) • Проверка коллизий, ошибок на уровне пользователей (в помощь Botron S. Integrity checker) • Архивирование проектов, изменение видимости и т.п. ( в помощь документация) • Логи, кэши
  • 39. Admin cleanup tools Инструмент Плюсы Минусы Комментарий Scheme Cleaner for JIRA Удобно смотреть смотреть даты обновления и общие манипуляции со схемами Не интуитивно понятный интерфейс, не поддерживает последние версии Проверяю на тестовых инстансах для понимания ситуации в промышленной среде Cleaner for JIRA Сразу видим статистику, и можно делать выводы На промышленной среде будет регрессия по производительности Проверять только на тестовых инстансах Admin Tools for JIRA Подобный функционал предыдущего плагина На промышленной среде будет регрессия по производительности Проверять только на тестовых инстансах Свои скрипты Можно брать и делать Можно вдумчиво в продакшен
  • 41. Пример: на основе скринов Life hack: • поиск по слову Delete на странице, • Или запрос в БД
  • 42. Пример на основе полей Life hack: • Python jira-api • Или запрос в БД
  • 43. Дальше и больше • Статистика Resolution • Время жизни в статусах • Внедрение новой функциональности
  • 44. Категорий проектов и онлайн архивирование Для наглядности убрал условия
  • 45. Основной обновления. Плагины. • Для отключения плагинов, с 7.3 версий появилась директива --disable-all-addons (or /disablealladdons for Windows users) --disable-addons=<addon keys> or (/disableaddons=<addon keys> for Windows users) • Ранее апдейт в БД • Или просто перемещали из `mv $JIRA HOME/plugins/installed-plugins{,.bk}` 2.--disable-addons=<addon keys> or (/disableaddons=<addon keys> for Windows users)
  • 46. Итак, всё вместе • UPM проверка совместимости плагинов и отключение их пере обновлением • Обновления на тестовых стендах (не забываем disable mail and app links) • По максимуму cleanup, и архивирование отдельных проектов, задач • Запуск части тестировщиков • Обновление staging и далее разогрев кэша посредством REST API запросов • Баннер и другие оповещения, после согласований • Смена proxy_pass перенаправление линков • Успех или rollback JIRA Upgrade Notes
  • 47. Благодарю за внимание! GONCHIK TSYMZHITOV • ATLASSIAN ADMINISTRATOR • ITIVITI • FB:GONCHIK
  • 48. Extra. СовместимостьAPI? Старое Поновее getCustomFieldObjectByName(fieldName) getCustomFieldObjectsByName(fieldName).iterator().next() issue.getResolutionObject issue.getResolution issue.getPriorityObject() issue.getPriority() issue.getStatusObject() issue.getStatus() issue.getIssueTypeObject() issue.getIssueType() jiraHelper.getProjectObject jiraHelper.getProject com.atlassian.jira.plugin.webfragment.conditions.AbstractIssueCondition com.atlassian.jira.plugin.webfragment.conditions.AbstractIssueWebCondition com.atlassian.jira.security.Permissions com.atlassian.jira.permission.ProjectPermissions Group jiraUserGroup = userManager.getGroup(groupnames[i]); userUtil.addUserToGroup(jiraUserGroup, user); GroupManager groupManager = ComponentAccessor.getGroupManager(); try { Group jiraUserGroup = userManager.getGroup(groupnames[i]); log.debug("PREPARE add custom user groups"); if (jiraUserGroup == null) { log.debug("Group does not found"); } groupManager.addUserToGroup(user, jiraUserGroup); log.debug("add User into Group"); } catch (Throwable e) { log.error("Exception thrown on " + e); e.printStackTrace(); }