SlideShare a Scribd company logo
Релиз инжиниринг Mail.ru, взгляд изнутри
Глеков Максим
программист-разработчик почтовой службы
• v4
Организация работы релиз-инженеров
• Стоит ли брать что-то готовое?
• Сборка релиза
• Раздача релиза
• Демон обновлений
• Тестовые сервера
• Выкладка на бой
• Мониторинг
• Узкие места
ПОСЛЕ ЧЕГО ОТВЕЧУ НА ВСЕ ВАШИ ВОПРОСЫ И ДАМ ТЕХНИЧЕСКИЕ РЕКОМЕНДАЦИИ
О чем доклад ?
Организация работы верстальщика
Организация работы релиз-инженера
Может быть есть что-то готовое?
Что выбрать?
• Git pull на продакшне :)
Может быть есть что-то готовое?
Что выбрать?
• Git pull на продакшне :)
• Fabric (python)
Может быть есть что-то готовое?
Что выбрать?
• Git pull на продакшне :)
• Fabric (python)
• Capistrano (ruby)
Почему мы написали свою систему?
Все сложно
• Безопасность
• Быстрые фиксы багов
• Минимальные зависимости
Комманды для управления
Какие нужны и зачем?
• risk-deploy-create — создать релиз
• risk-deploy-push — положить релиз на группу серверов
• risk-deploy-switch — переключить группу серверов
• risk-deploy-clean — удалить релиз с группы серверов
Сборка релиза
Последовательность действий в раскладчике
Проверка конситентности сборки
Md5sum — то, что нам надо
• файл с контрольными суммами
• Проверка консистентности сборки: md5sum -c имя_файла_с_суммами
• «дешевый» способ» — измерение размера всей сборки
• «дешевый способ» только для мониторинга!
Тарболы практика
Где же все-таки удобнее использовать тарболы?
• Нет root-доступа
• Разные дистрибутивы Linux
• Еще хуже -— Windows
• Маленькие репозитории
• Раскладки на тестовые сервера
Тарболы практика
Где же все-таки удобнее использовать тарболы?
• Нет root-доступа
• Разные дистрибутивы Linux
• Еще хуже — Windows
• Маленькие репозитории
• Раскладки на тестовые сервера
SquashFs самое оптимальное?
SquashFs — отличное решение для выкатки боевых релизов
• Сжимающая файловая система gzip/lzma
• Применяется во встраиваемых системах
SquashFs самое оптимальное?
SquashFs — отличное решение для выкатки боевых релизов
• Сжимающая файловая система gzip/lzma
• Применяется во встраиваемых системах
• роутеры
• квадрокоптеры
• холодильники
• кофеварки
SquashFs самое оптимальное?
SquashFs — отличное решение для выкатки боевых релизов
• Сжимающая файловая система gzip/lzma
• Применяется во встраиваемых системах
• роутеры
• кофеварки
• холодильники
• квадрокоптеры
• Просто собрать: mksquashfs data_dir sqsh_file_path.sqsh
SquashFs самое оптимальное?
SquashFs — минусы
• Одна и та же версия SquashFs
• Одно и то же сжатие gzip или lzma
• Для монтирования требуются root-права
Почему не RPM + puppet?
RPM или DEB — неплохое решение
• Требуется писать spec файлы
• Просто собирать: rpmbuild -bb имя_спеки
• Все фаилы в одном пакете
• Не засоряет систему
• RPM → DEB с помощью alien
Почему не RPM + puppet?
RPM или DEB — минусы
• Для установки требуются root-права
• Нужно привлекать админа
• Проблемы с накати/откати в выходной/ночью
Что выбрали мы?
Вроде бы все очевидно....
• Мы катим в среднем 3 раза в день
• Для выкатки пакуем все файлы
• Тарболы только для тестовых серверов
• В продакшне SquashFS
• RPM на проектах с редкими выкатками (Ответы@Mail.ru,
Календарь@Mail.ru)
Схема обновления обновлений дифами
Плохой вариант для production
• Выкатки не консистентны
• Откатиться полноценно назад трудно
• Непонятно чем закончится исправление ошибки
• Подходит только для тестовых серверов
Раздача релиза
Хранилище релизов
Раздача релиза
Сущности внутри репозитория
• Кикстарт — файл с текущей сборкой
• deploy_files.list — файл со списком сборок
Раздача релиза
Выкладываем на группу серверов в тест
• risk-deploy-push -b alphatest -f e.mail.ru-f-alpha-505-en-m.glekov-1427105421
Раздача релиза
Выкладываем на группу серверов в тест
Раздача релиза
Схема раздачи
Раздача релиза
Но есть проблема....
• Узкое место — получение обновлений с одного источника
Раздача релиза
Простое решение - шардинг
• Увеличить количество раздающих серверов
Устройство демона обновлений
Get risk — так называется наш демон обновлений
Статика (js,css, images, etc)
Шаблоны отдельно, статика отдельно — надо делать две отдельные
сборки!
Выкладка релиза на тестовые серверы
Тестовые серверы, плавающий DOCUMENT_ROOT
• DOCUMENT_ROOT сервера — директория с шаблонами
• На серверах, где нет веток, DOCUMENT_ROOT один
• На серверах с ветками каждая ветка — новый DOCUMENT_ROOT
• Переключение DOCUMENT_ROOT в backend регулярным выражением
Выкладка релиза на тестовые серверы
FUSE (Filesystem on Userspace) для веток
• Храним только различающиеся файлы
• Недостающие файлы берем из корневой ветки
Выкладка релиза на тестовые серверы
FUSE для веток
Выкладка релиза на тестовые серверы
FUSE для веток
Выкладка релиза на тестовые серверы
FUSE для веток
Выкладка релиза на тестовые серверы
FUSE для веток
Хочу себе FUSE!
Что можно найти в открытом доступе?
• MergeFS (http://bersace03.free.fr/mergefs/mergefs)
• UnionFS (http://unionfs.filesystems.org/)
• Aufs (http://aufs.sourceforge.net/)
• Mhddfs (http://mhddfs.uvw.ru/)
Выкладываем в продакшн
Выкладываем билд, который прошел через тестовые сервера
1. Раскладываем сборку по серверам:
risk-deploy-push -b production -f e.mail.ru-f-alpha-505-en-m.glekov-1427105421
2. Переключаемся на разложенную сборку:
risk-deploy-switch -b production -f e.mail.ru-f-alpha-505-en-m.glekov-1427105421
Мониторинг
Get Risk Network Monitoring или просто grnmon ;)
Мониторинг
Get Risk Network Monitoring
Мониторинг
Get Risk Network Monitoring
Как устроен мониторинг
Get Risk Network Monitoring
• Как работает мониторинг?
• Демон grnmon — принимает данные с серверов
• MySQL — хранение данных для старта
• Memcached — чтобы не мучить базу
• Fcgi — отдача jsonp из Memcached
• JavaScript — отображение данных
Переключаем сервера между билдами
Накати — первый этап
• risk-deploy-switch -b alphatest -f e.mail.ru-f-alpha-505-en-m.glekov-1427105421
• Время переключения между билдами от 2-5 секунд (!!!!)
Дашборд
Или как мы понимаем, что все хорошо
Что-то пошло не так....
Быстрый откат в случае неудачи
Сколько времени надо, чтобы откатиться?
• Не более 2-5 сек (!!!)
• Переключаемся обратно на прошлый стабильный билд
• Снова смотрим в дашборд
Запуск тестов
Несколько советов
Узкие места, проблемы и методы их решения
Есть некоторые нюансы...
• При работе с большими тарболами(> 100 MB) надо использовать pv для
затормаживания диска (Ex: cat filename | pv -L limit_rate_speed -rt | tar -xmzf -
-C folder_full_path)
• Все операции должны быть атомарные
• Шардинг серверов с обновлениями
• Не пользоваться базой данных в демоне обновления
СПАСИБО ЗА ВНИМАНИЕ!
Вопросы?
m.glekov@corp.mail.ru

More Related Content

PDF
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Ontico
 
PDF
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
Ontico
 
PPTX
smart balancing with nginx+lua / Андрей Кононов (IPONWEB)
Ontico
 
PDF
My talk on monitoring systems at RootConf 2016
Alex Chistyakov
 
PPTX
Денис Иванов
CodeFest
 
PDF
Вячеслав Бахмутов
CodeFest
 
PDF
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
Ontico
 
PPTX
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Ontico
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Ontico
 
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
Ontico
 
smart balancing with nginx+lua / Андрей Кононов (IPONWEB)
Ontico
 
My talk on monitoring systems at RootConf 2016
Alex Chistyakov
 
Денис Иванов
CodeFest
 
Вячеслав Бахмутов
CodeFest
 
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
Ontico
 
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Ontico
 

What's hot (20)

PPT
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Ontico
 
PPTX
Антон Турецкий
CodeFest
 
PDF
Андрей Ситник
CodeFest
 
PPTX
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Ontico
 
PDF
2020.10.13 HA Redis is simple. FWDays Highload
Yehor Herasymchuk
 
PDF
Облако в Badoo год спустя
Yuriy Nasretdinov
 
PDF
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
Ontico
 
PPTX
Тестируем производительность распределённых систем, Александр Киров (Parallels)
Ontico
 
PDF
Архитектура хранения фотографий в Badoo
Badoo Development
 
PDF
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Ontico
 
PDF
Юрий Насретдинов, Badoo
Ontico
 
PPTX
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Ontico
 
PDF
Антон Галицын
CodeFest
 
PPTX
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Ontico
 
PDF
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Ontico
 
PPTX
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
Ontico
 
PPTX
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Ontico
 
PDF
Docker & Puppet: как их скрестить и надо ли вам это?
Anton Turetsky
 
PDF
Что нового и полезного в PostgreSQL 9.5 / Илья Космодемьянский (PostgreSQL-Co...
Ontico
 
PPTX
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Ontico
 
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Ontico
 
Антон Турецкий
CodeFest
 
Андрей Ситник
CodeFest
 
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Ontico
 
2020.10.13 HA Redis is simple. FWDays Highload
Yehor Herasymchuk
 
Облако в Badoo год спустя
Yuriy Nasretdinov
 
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
Ontico
 
Тестируем производительность распределённых систем, Александр Киров (Parallels)
Ontico
 
Архитектура хранения фотографий в Badoo
Badoo Development
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Ontico
 
Юрий Насретдинов, Badoo
Ontico
 
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...
Ontico
 
Антон Галицын
CodeFest
 
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Ontico
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Ontico
 
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
Ontico
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Ontico
 
Docker & Puppet: как их скрестить и надо ли вам это?
Anton Turetsky
 
Что нового и полезного в PostgreSQL 9.5 / Илья Космодемьянский (PostgreSQL-Co...
Ontico
 
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Ontico
 
Ad

Viewers also liked (20)

PDF
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Ontico
 
PDF
Использование haproxy/iptables+etcd+confd для автоматического service discove...
Ontico
 
PPTX
Highload в ВУЗе идеализм, расчётливый менеджмент или пустые надежды / Артем К...
Ontico
 
PDF
Highway to Сontinuous Integration, Денис Трифонов (2GIS)
Ontico
 
PPTX
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Ontico
 
PPTX
Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...
Ontico
 
PDF
Performance management lessons learnt / Андрей Дмитриев (JUGRU)
Ontico
 
PPTX
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Ontico
 
PPTX
Agile мёртв (!|?) / Александр Сидоров (Яндекс)
Ontico
 
PDF
Как не положить тысячи серверов с помощью системы централизованного управлени...
Ontico
 
PDF
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Ontico
 
PPTX
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Ontico
 
PDF
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
Ontico
 
PDF
Continuous Integration на стероидах / Александр Акбашев (HERE)
Ontico
 
PDF
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
Ontico
 
PDF
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Ontico
 
PDF
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Ontico
 
PDF
Принципы автоматического масштабирования приложения в AWS / Антон Регеда (Juno)
Ontico
 
PDF
Путь мониторинга 2.0 всё стало другим / Всеволод Поляков (Grammarly)
Ontico
 
PDF
Evaluation of High Availability Performance of Kubernetes and Docker Swarm on...
Ontico
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Ontico
 
Использование haproxy/iptables+etcd+confd для автоматического service discove...
Ontico
 
Highload в ВУЗе идеализм, расчётливый менеджмент или пустые надежды / Артем К...
Ontico
 
Highway to Сontinuous Integration, Денис Трифонов (2GIS)
Ontico
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Ontico
 
Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...
Ontico
 
Performance management lessons learnt / Андрей Дмитриев (JUGRU)
Ontico
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Ontico
 
Agile мёртв (!|?) / Александр Сидоров (Яндекс)
Ontico
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Ontico
 
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Ontico
 
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Ontico
 
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
Ontico
 
Continuous Integration на стероидах / Александр Акбашев (HERE)
Ontico
 
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
Ontico
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Ontico
 
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Ontico
 
Принципы автоматического масштабирования приложения в AWS / Антон Регеда (Juno)
Ontico
 
Путь мониторинга 2.0 всё стало другим / Всеволод Поляков (Grammarly)
Ontico
 
Evaluation of High Availability Performance of Kubernetes and Docker Swarm on...
Ontico
 
Ad

Similar to Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group) (20)

PDF
Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва
it-people
 
PDF
Иван Евтухович — Как перестать релизиться и начать жить
Daria Oreshkina
 
PDF
«​Масштабируемый DevOps​» Александр Колесень
IT Share
 
PDF
Масштабируемый DevOps
Minsk Linux User Group
 
PPT
«Механизмы обновления платформы и окружений пользователей в Jelastic»
Nata_Churda
 
PDF
IT-инфраструктура. FAQ для разработчика
Mikhail Chinkov
 
PPTX
Управление облачной инфраструктурой
dddpaul
 
PPTX
Простой и удобный деплоймент проекта
MoscowDjango
 
PDF
DVCS как конвейер
Артур Орлов
 
PDF
Continuousdelivery
Ivan Evtukhovich
 
PDF
Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы
Yandex
 
PDF
Эффективное управление ПО под *nix
Andrew Pantyukhin
 
PDF
Фламп на спидах или ка релизить каждый день
DevDay
 
PDF
Как Vagrant и Chef ускорили разработку в несколько раз / Тимур Батыршин (Cina...
Ontico
 
PDF
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
Timur Batyrshin
 
PDF
My talk on Salt and Ansible from DevConf 2014
Alex Chistyakov
 
PDF
Software engineering seminars: git
Semen Martynov
 
PDF
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Ontico
 
PPTX
антон веснин Rails Application Servers
rit2010
 
PPTX
развертывание среды Rails (антон веснин, Locum Ru)
guest40e031
 
Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва
it-people
 
Иван Евтухович — Как перестать релизиться и начать жить
Daria Oreshkina
 
«​Масштабируемый DevOps​» Александр Колесень
IT Share
 
Масштабируемый DevOps
Minsk Linux User Group
 
«Механизмы обновления платформы и окружений пользователей в Jelastic»
Nata_Churda
 
IT-инфраструктура. FAQ для разработчика
Mikhail Chinkov
 
Управление облачной инфраструктурой
dddpaul
 
Простой и удобный деплоймент проекта
MoscowDjango
 
DVCS как конвейер
Артур Орлов
 
Continuousdelivery
Ivan Evtukhovich
 
Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы
Yandex
 
Эффективное управление ПО под *nix
Andrew Pantyukhin
 
Фламп на спидах или ка релизить каждый день
DevDay
 
Как Vagrant и Chef ускорили разработку в несколько раз / Тимур Батыршин (Cina...
Ontico
 
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
Timur Batyrshin
 
My talk on Salt and Ansible from DevConf 2014
Alex Chistyakov
 
Software engineering seminars: git
Semen Martynov
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Ontico
 
антон веснин Rails Application Servers
rit2010
 
развертывание среды Rails (антон веснин, Locum Ru)
guest40e031
 

More from Ontico (20)

PDF
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
Ontico
 
PDF
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Ontico
 
PPTX
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Ontico
 
PDF
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico
 
PDF
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Ontico
 
PDF
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
Ontico
 
PDF
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Ontico
 
PDF
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Ontico
 
PPTX
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
Ontico
 
PPTX
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
Ontico
 
PDF
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Ontico
 
PPTX
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Ontico
 
PPTX
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Ontico
 
PDF
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Ontico
 
PPT
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
Ontico
 
PPTX
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Ontico
 
PPTX
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Ontico
 
PPTX
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
Ontico
 
PPTX
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Ontico
 
PDF
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Ontico
 
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Ontico
 

Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)