SlideShare a Scribd company logo
1 of 51
Download to read offline
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();
}
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
Jiramania презентации   @augspb

More Related Content

What's hot

IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаMikhail Chinkov
 
"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov
"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov
"Prom.ua shopping cart workflow as a microfrontend", Danylo KazymyrovFwdays
 
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальностьДенис Измайлов, JavaScript сегодня: React, Redux и новая реальность
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальностьScrumTrek
 
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous DeliveryJenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous DeliverySQALab
 
Phalcon. Что нового?
Phalcon. Что нового?Phalcon. Что нового?
Phalcon. Что нового?Oleksandr Torosh
 
Ядро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуруЯдро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуруSQALab
 
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...SQALab
 
Dump-IT Загрузка и инициализация JavaScript
Dump-IT Загрузка и инициализация JavaScriptDump-IT Загрузка и инициализация JavaScript
Dump-IT Загрузка и инициализация JavaScriptMikhail Davydov
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Денис Паясь
Денис ПаясьДенис Паясь
Денис ПаясьCodeFest
 
"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий МантулаFwdays
 
Сергей Яковлев "Phalcon 2 - стабилизация и производительность"
Сергей Яковлев "Phalcon 2 - стабилизация и производительность"Сергей Яковлев "Phalcon 2 - стабилизация и производительность"
Сергей Яковлев "Phalcon 2 - стабилизация и производительность"Fwdays
 
Maven 3 : уличная магия
Maven 3 : уличная магияMaven 3 : уличная магия
Maven 3 : уличная магияAleksey Solntsev
 
"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27MoscowJS
 
Maven как средство сборки проекта
Maven как средство сборки проектаMaven как средство сборки проекта
Maven как средство сборки проектаYova Stoika
 
Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Ontico
 
Java 9 модули
Java 9 модулиJava 9 модули
Java 9 модулиZheka Kozlov
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days
 

What's hot (20)

IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
 
"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov
"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov
"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov
 
Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)
 
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальностьДенис Измайлов, JavaScript сегодня: React, Redux и новая реальность
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
 
Непрерывная интеграция (Марина Пестова)
Непрерывная интеграция (Марина Пестова)Непрерывная интеграция (Марина Пестова)
Непрерывная интеграция (Марина Пестова)
 
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous DeliveryJenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
 
Phalcon. Что нового?
Phalcon. Что нового?Phalcon. Что нового?
Phalcon. Что нового?
 
Ядро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуруЯдро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуру
 
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...
 
Dump-IT Загрузка и инициализация JavaScript
Dump-IT Загрузка и инициализация JavaScriptDump-IT Загрузка и инициализация JavaScript
Dump-IT Загрузка и инициализация JavaScript
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Денис Паясь
Денис ПаясьДенис Паясь
Денис Паясь
 
"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула
 
Сергей Яковлев "Phalcon 2 - стабилизация и производительность"
Сергей Яковлев "Phalcon 2 - стабилизация и производительность"Сергей Яковлев "Phalcon 2 - стабилизация и производительность"
Сергей Яковлев "Phalcon 2 - стабилизация и производительность"
 
Maven 3 : уличная магия
Maven 3 : уличная магияMaven 3 : уличная магия
Maven 3 : уличная магия
 
"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27
 
Maven как средство сборки проекта
Maven как средство сборки проектаMaven как средство сборки проекта
Maven как средство сборки проекта
 
Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)
 
Java 9 модули
Java 9 модулиJava 9 модули
Java 9 модули
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 

Similar to Jiramania презентации @augspb

Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиДоклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиGonchik Tsymzhitov
 
Кирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовКирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовOlesya_V
 
Caché github continuous intergration
Caché github continuous intergrationCaché github continuous intergration
Caché github continuous intergrationInterSystems
 
Приемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на CachéПриемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на CachéInterSystems CEE
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeYehor Herasymchuk
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayAndrey Rebrov
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Ontico
 
Комфортная разработка мобильных проектов
Комфортная разработка мобильных проектовКомфортная разработка мобильных проектов
Комфортная разработка мобильных проектовCodeFest
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusCisco Russia
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Anton Baranov
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Ontico
 
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Fwdays
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорьdrupalconf
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Yandex
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Yandex
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов ИгорьPVasili
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...Provectus
 

Similar to Jiramania презентации @augspb (20)

Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиДоклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
 
Atlassian user group
Atlassian user groupAtlassian user group
Atlassian user group
 
Кирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовКирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектов
 
Caché github continuous intergration
Caché github continuous intergrationCaché github continuous intergration
Caché github continuous intergration
 
Приемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на CachéПриемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на Caché
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
 
Комфортная разработка мобильных проектов
Комфортная разработка мобильных проектовКомфортная разработка мобильных проектов
Комфортная разработка мобильных проектов
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорь
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 
CI/CD with Fastlane and Telegram
CI/CD with Fastlane and TelegramCI/CD with Fastlane and Telegram
CI/CD with Fastlane and Telegram
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
 
Breaking logs
Breaking logsBreaking logs
Breaking logs
 

More from 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 SoftwareGonchik 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 ReportingGonchik Tsymzhitov
 
Atlassian user group in itiviti
Atlassian user group in itivitiAtlassian user group in itiviti
Atlassian user group in itivitiGonchik Tsymzhitov
 
"Гибкие методологии выбраны, но как жить с этим?"
"Гибкие методологии выбраны, но как жить с этим?""Гибкие методологии выбраны, но как жить с этим?"
"Гибкие методологии выбраны, но как жить с этим?"Gonchik Tsymzhitov
 
По Вашей просьбе, продукты Atlassian в Docker
По Вашей просьбе, продукты Atlassian в DockerПо Вашей просьбе, продукты Atlassian в Docker
По Вашей просьбе, продукты Atlassian в DockerGonchik Tsymzhitov
 
Tsymzhitov GB chaos constructions 2017
Tsymzhitov GB chaos constructions 2017Tsymzhitov GB chaos constructions 2017
Tsymzhitov GB chaos constructions 2017Gonchik Tsymzhitov
 
Через тернии к звездам
Через тернии к звездамЧерез тернии к звездам
Через тернии к звездам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 презентации @augspb

  • 1.
  • 2. GONCHIK TSYMZHITOV • ATLASSIAN ADMINISTRATOR • ITIVITI • FB: GONCHIK Updates, updates and updates или как обновляться с меньшей болью
  • 4. Кто мы? Под брендом Itiviti [Айтивити] в 2016 году объединились компании: • Orc Group, - разработчик финансового программного обеспечения; • CameronTec Group - эксперт в области инфраструктуры финансового обмена сообщениями и подключений к электронным биржам; • Tbricks AB - автор одной из самых быстрых в мире систем для торговли на электронных биржах. Основные офисы компании находятся в Стокгольме, Санкт-Петербурге, Чикаго и Гонконге.
  • 5. Основные сценарии 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
  • 6. JIRA DATA CENTER Zero Downtime update
  • 8. Обновление с долгим откатом • 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)
  • 9. Что я получу от обновления? • Features from Release notes • Bug fixes • Performance or regression?! (Tests?) Crashes and Performance Issues
  • 10. Веб-сайт? • Java App (Oracle JDK) • JDBC driver • СУБД? (Database schema) • OS Что есть JIRA? Глобально?
  • 11. Что делать с JVM? Взято с сайта Шипилёва Подробно разбирали AUG на митапе «Performance tricks»
  • 12. • 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
  • 13. • JDK/JRE - symlink (/usr/java/latest) - $JAVA_HOME • DB connector latest - symlink Причина: • https://jdbc.postgresql.org/ • https://dev.mysql.com/downloads/connector/j/ Уменьшаем количество шагов
  • 14. • Config template files in scripts, git/svn Уменьшаем количество шагов
  • 15. Это все прекрасно. А тестовые стенды? https://bitbucket.org/almworks/pocker • Git flow • Оркестрация (Chef, puppet, ansible, salstack) • Docker Pocker
  • 18. А есть ли смысл? https://www.atlassian.com/blog
  • 19. Cleanup • Пересмотр всех плагинов и проверка совместимости через UPM • Fields, Screen, Issue type, Permission, Notification, schemes (в помощь Scheme cleaner) • Проверка коллизий, ошибок на уровне пользователей (в помощь Botron S. Integrity checker) • Архивирование проектов, изменение видимости и т.п. ( в помощь документация) • Логи, кэши
  • 20. Admin cleanup tools Инструмент Плюсы Минусы Комментарий Scheme Cleaner for JIRA Удобно смотреть смотреть даты обновления и общие манипуляции со схемами Не интуитивно понятный интерфейс, не поддерживает последние версии Проверяю на тестовых инстансах для понимания ситуации в промышленной среде Cleaner for JIRA Сразу видим статистику, и можно делать выводы На промышленной среде будет регрессия по производительности Проверять только на тестовых инстансах Admin Tools for JIRA Подобный функционал предыдущего плагина На промышленной среде будет регрессия по производительности Проверять только на тестовых инстансах Свои скрипты Можно брать и делать Можно вдумчиво в продакшен
  • 22. Пример: на основе скринов Life hack: • поиск по слову Delete на странице, • Или запрос в БД
  • 23. Пример на основе полей Life hack: • Python jira-api • Или запрос в БД
  • 24. Дальше и больше • Статистика Resolution • Время жизни в статусах • Внедрение новой функциональности
  • 25. Категории проектов и онлайн архивирование
  • 26. Основные обновления. Плагины. • Для отключения плагинов, с 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)
  • 27. Итак, всё вместе • UPM проверка совместимости плагинов и отключение их пере обновлением • Обновления на тестовых стендах (не забываем disable mail and app links) • По максимуму cleanup, и архивирование отдельных проектов, задач • Запуск части тестировщиков • Обновление staging и далее разогрев кэша посредством REST API запросов • Баннер и другие оповещения, после согласований • Смена proxy_pass перенаправление линков • Успех или rollback JIRA Upgrade Notes
  • 28. Благодарю за внимание! GONCHIK TSYMZHITOV • ATLASSIAN ADMINISTRATOR • ITIVITI • FB:GONCHIK
  • 29. 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(); }
  • 30.
  • 31. VADIM GAUZIAK • DEVELOPER • SBERBANK TECHNOLOGY Как мы искали баг JIRA и нашли его AUG SPB
  • 34.
  • 45. Ошибки коммуникации • Потеря времени • Редкие взаимодействия администраторов и разработчиков • Переключение контекста на другие вопросы
  • 46. Технические ошибки • Искали hotfix • Неправильно локализовали проблему • Поздно обратились к Atlassian
  • 48. Рекомендации по коммуникациям • При возникновении проблемы – сразу же сообщить всем администраторам • Если проблема не решена за короткий срок (менее ~1 часа) сообщить всей команде • Одновременная работа разработчика и администратора • Изолируйте команду
  • 49. Технические рекомендации • Ищите проблему, а не hotfix • Работайте параллельно с Atlassian
  • 50. Thank you! VADIM GAUZIAK • DEVELOPER • SBERBANK TECHNOLOGY