SlideShare a Scribd company logo
1 of 28
Download to read offline
CI/CD в Playrix:
Как собирать тысячи билдов
в день для разных платформ
Юрий Труфанов
Technical Director, IT Platform
Поддержка серверной
инфраструктуры наших игр,
развитие CI/CD процессов
IT Platform
Что мы собираем?
Выпускаем игры для IOS, Android, Mac, Windows(UWP);
Над играми работают сотни разработчиков;
Билды собираются по коммитам, по расписанию, по кнопке;
Для сборки нужны MacOS, Windows, Linux;
Серверный API и вспомогательные сервисы работают в Docker;
▪
▪
▪
▪
▪
Нам необходимо стабильно
и быстро собирать билды
У НАС БЫЛА СЕРВЕРНАЯ В ОФИСЕ
TeamCity, несколько Mac и целая пачка серверов разной степени свежести
У НАС БЫЛА СЕРВЕРНАЯ В ОФИСЕ
Office 1
TeamCity Server
Server
Linux Agents
Windows Agents
Mac Agents
Office 2
Office 3
Office 4
Internet
У НАС БЫЛА СЕРВЕРНАЯ В ОФИСЕ
Office 1
TeamCity Server
Server
Linux Agents
Windows Agents
Mac Agents
Office 2
Office 3
Office 4
Internet
▪ TeamCity сервер переживает выход из строя железа и инстансов EC2;
▪ Собранные билды хранятся в S3, а это сторейдж с резервированием;
▪ Если какой-то филиал выходит из строя — нагрузка распределяется по агентам других доступных филиалов.
ДОБАВИМ НАДЕЖНОСТИ
Office 4
Office 2
Office 1
Linux Agents Windows Agents
Mac Agents
Office 3
Linux Agents Windows Agents
Mac Agents
AWS Cloud
TeamCity
Server
Auto Scaling Group
Auto Scaling Group
Builds
portal
Amazon Aurora
MySQL
S3 Artifact
Storage
Internet
Настройка серверов руками —
это долго и приводит к ошибкам.
ПОЧЕМУ МЫ ВЫБРАЛИ ANSIBLE?
Простой инструмент;
Поддержка Linux, MacOS и Windows;
Весь провижининг описан в YAML файлах и хранится в Git репозитории —
понятно кто какие изменения делал и зачем;
Можем применить одновременно изменения на десятках сборочных
агентов и получить одинаковое окружение;
Существенная экономия времени инженеров и сокращение человеческих
ошибок;
▪
▪
▪
▪
▪
Нам нужно больше сборочных
агентов (а иногда меньше)
ЧТО МЫ ИМЕЕМ
Большое количество железных серверов, которые работают постоянно;
Очередь ожидания сборки, которая постоянно растет;
Днем нагрузка больше чем ночью;
Сборка может сломать окружение на агенте - приводит к инцидентам.
К ЧЕМУ МЫ СТРЕМИМСЯ
Нулевая очередь ожидания сборки;
Минимум инцидентов из-за поломанного окружения;
Эффективно расходовать ресурсы;
▪
▪
▪
▪
▪
▪
▪
КАКИЕ ПРОБЛЕМЫ НАМ НУЖНО РЕШИТЬ?
Как сделать так, чтобы на запускаемых инстансах было настроено
окружение для сборки?
Как TeamCity работает с облачными сборочными агентами?
Какой тип инстанса выбрать и в каком облаке для сборочных агентов
Linux? А какой для Windows?
У нас большие репозитории. Как уменьшить время checkout на
запускаемых в облаке инстансах?
Что делать с Mac-ами?
▪
▪
▪
▪
▪
ПОЧЕМУ МЫ ВЫБРАЛИ PACKER (https://www.packer.io/)?
Работает со множеством облачных провайдеров включая AWS и Azure;
Поддерживает Linux и Windows;
Конфигурация описывается в JSON, который хранится в репозитории (IaC);
Мы можем использовать уже написанный Ansible провижининг и для сборки
образов облачных сборочных агентов.
▪
▪
▪
▪
Инстансы для сборочных агентов Linux
Цены OnDemand, взяты отсюда: https://aws.amazon.com/ru/ec2/pricing/on-demand/,
https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/#pricing
Облако AWS Azure
Тип инстанса c4.4xlarge c5.4xlarge Standard_D16a_v4
CPU ядра 16 16 16
RAM 32G 32G 64G
Цена за час $0.796 $0.68 $0.856
Инстансы для сборочных агентов Windows
Облако AWS Azure
Тип инстанса c5.4xlarge c5.9xlarge Standard_D16a_v4
CPU ядра 16 36 16
RAM 32G 72G 64G
Цена за час $1.512 $3.402 $1.592
Взято с: https://azure.microsoft.com/en-us/pricing/details/virtual-machines/windows/
и AWS Spot Instance pricing history. Цена может изменяться.
ГДЕ ХРАНИТЬ ЗЕРКАЛА РЕПОЗИТОРИЕВ GIT?
Amazon Elastic File System (EFS);
GlusterFS, Ceph, NFS;
Amazon FSx for Lustre;
Amazon Elastic Block Store (EBS).
▪
▪
▪
▪
Используем много EBS
ЧТО ДЕЛАТЬ С MAC-АМИ?
ЧТО ДЕЛАТЬ С MAC-АМИ?
ЧТО ДЕЛАТЬ С MAC-АМИ?
Поставить шкаф и набить его Mac Mini и MacPro;
Арендовать Mac Mini или Mac Pro у хостинг провайдера или у облачного
провайдера;
Все, что можно не собирать на Mac — не собирать на Mac;
Собирать на Linux;
Xcode Сloud.
▪
▪
▪
▪
▪
Spot инстансы
Есть в AWS и Azure;
Стоят до 90% дешевле;
Могут быть в любой момент отозваны и выключены;
▪
▪
▪
Spot инстансы
Цены OnDemand, взяты отсюда: https://aws.amazon.com/ru/ec2/pricing/on-demand/,
https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/#pricing
Облако AWS Spot Azure Spot
Azure Spot
with Hybrid Benefit
Тип инстанса c5.4xlarge Standard_D16a_v4 Standard_D16a_v4
CPU ядра 16 16 16
RAM 32G 64G 64G
Цена за час $1.512 $0.2652 $1.592 $0.4494 $1.592 $0.1798
НАША СБОРОЧНАЯ ФЕРМА СЕЙЧАС
Office 3
Mac Agents
Office 4
Office 2
Office 1
Mac Agents
Linux Agents
AWS Cloud
Internet
TeamCity
Server
Auto Scaling Group
S3 Artifact
Storage
Auto Scaling Group
Builds
portal
Amazon Aurora
MySQL
Windows Agents
Azure
НЕМНОГО ЦИФР
7000+ от 100 до 200 500+
сборок
в день
сборочных
агентов
активных пользователей
в день
Вопросы?
Спасибо за внимание!

More Related Content

Similar to CI/CD в Playrix: Как собирать тысячи билдов в день для разных платформ / Юрий Труфанов (Playrix)

Контейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблемКонтейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблемOpenVZ
 
SmartOS/Solaris app tuning tools/technologies on HL++ 2013
SmartOS/Solaris app tuning tools/technologies on HL++ 2013SmartOS/Solaris app tuning tools/technologies on HL++ 2013
SmartOS/Solaris app tuning tools/technologies on HL++ 2013Alex Chistyakov
 
Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013Serguei Gitinsky
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)Ontico
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиIBS
 
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнесаФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнесаЭкосистемные Проекты Фрии
 
Andrii Bereznikov ITEM 2018
Andrii Bereznikov ITEM 2018Andrii Bereznikov ITEM 2018
Andrii Bereznikov ITEM 2018ITEM
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...it-people
 
Linux Terminal Server Project
 Linux Terminal Server Project Linux Terminal Server Project
Linux Terminal Server ProjectIlya Siganov
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаITCrowd Almaty
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаendeveit
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime Community
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime community
 
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)Ontico
 
Миграции информационной инфраструктуры бизнес-приложений в облако
Миграции информационной инфраструктуры бизнес-приложений в облакоМиграции информационной инфраструктуры бизнес-приложений в облако
Миграции информационной инфраструктуры бизнес-приложений в облакоNatalia Efimtseva
 
CodeFest 2014. Сибирев А. — Управление инфраструктурой под Cocaine
CodeFest 2014. Сибирев А. — Управление инфраструктурой под CocaineCodeFest 2014. Сибирев А. — Управление инфраструктурой под Cocaine
CodeFest 2014. Сибирев А. — Управление инфраструктурой под CocaineCodeFest
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Ontico
 
Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...
Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...
Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...Ontico
 
Evgeniy Potapov Root Conf потапов
Evgeniy Potapov Root Conf   потаповEvgeniy Potapov Root Conf   потапов
Evgeniy Potapov Root Conf потаповrit2010
 

Similar to CI/CD в Playrix: Как собирать тысячи билдов в день для разных платформ / Юрий Труфанов (Playrix) (20)

Контейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблемКонтейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблем
 
SmartOS/Solaris app tuning tools/technologies on HL++ 2013
SmartOS/Solaris app tuning tools/technologies on HL++ 2013SmartOS/Solaris app tuning tools/technologies on HL++ 2013
SmartOS/Solaris app tuning tools/technologies on HL++ 2013
 
Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
 
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнесаФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
 
Andrii Bereznikov ITEM 2018
Andrii Bereznikov ITEM 2018Andrii Bereznikov ITEM 2018
Andrii Bereznikov ITEM 2018
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
Linux Terminal Server Project
 Linux Terminal Server Project Linux Terminal Server Project
Linux Terminal Server Project
 
Windows Azure Internals
Windows Azure InternalsWindows Azure Internals
Windows Azure Internals
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервиса
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервиса
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
 
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
 
Миграции информационной инфраструктуры бизнес-приложений в облако
Миграции информационной инфраструктуры бизнес-приложений в облакоМиграции информационной инфраструктуры бизнес-приложений в облако
Миграции информационной инфраструктуры бизнес-приложений в облако
 
CodeFest 2014. Сибирев А. — Управление инфраструктурой под Cocaine
CodeFest 2014. Сибирев А. — Управление инфраструктурой под CocaineCodeFest 2014. Сибирев А. — Управление инфраструктурой под Cocaine
CodeFest 2014. Сибирев А. — Управление инфраструктурой под Cocaine
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
 
Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...
Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...
Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...
 
Evgeniy Potapov Root Conf потапов
Evgeniy Potapov Root Conf   потаповEvgeniy Potapov Root Conf   потапов
Evgeniy Potapov Root Conf потапов
 

More from DevGAMM Conference

The art of small steps, or how to make sound for games in conditions of war /...
The art of small steps, or how to make sound for games in conditions of war /...The art of small steps, or how to make sound for games in conditions of war /...
The art of small steps, or how to make sound for games in conditions of war /...DevGAMM Conference
 
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...DevGAMM Conference
 
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...DevGAMM Conference
 
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...DevGAMM Conference
 
AI / ML for Indies / Tyler Coleman (Retora Games)
AI / ML for Indies / Tyler Coleman (Retora Games)AI / ML for Indies / Tyler Coleman (Retora Games)
AI / ML for Indies / Tyler Coleman (Retora Games)DevGAMM Conference
 
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...DevGAMM Conference
 
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...DevGAMM Conference
 
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...DevGAMM Conference
 
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...DevGAMM Conference
 
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)DevGAMM Conference
 
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)DevGAMM Conference
 
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...DevGAMM Conference
 
How to increase wishlists & game sales from China? Growth marketing tactics &...
How to increase wishlists & game sales from China? Growth marketing tactics &...How to increase wishlists & game sales from China? Growth marketing tactics &...
How to increase wishlists & game sales from China? Growth marketing tactics &...DevGAMM Conference
 
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)DevGAMM Conference
 
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...DevGAMM Conference
 
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...DevGAMM Conference
 
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...DevGAMM Conference
 
Branded Content: How to overcome players' immunity to advertising / Alex Brod...
Branded Content: How to overcome players' immunity to advertising / Alex Brod...Branded Content: How to overcome players' immunity to advertising / Alex Brod...
Branded Content: How to overcome players' immunity to advertising / Alex Brod...DevGAMM Conference
 
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...DevGAMM Conference
 
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...DevGAMM Conference
 

More from DevGAMM Conference (20)

The art of small steps, or how to make sound for games in conditions of war /...
The art of small steps, or how to make sound for games in conditions of war /...The art of small steps, or how to make sound for games in conditions of war /...
The art of small steps, or how to make sound for games in conditions of war /...
 
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
 
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
 
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
 
AI / ML for Indies / Tyler Coleman (Retora Games)
AI / ML for Indies / Tyler Coleman (Retora Games)AI / ML for Indies / Tyler Coleman (Retora Games)
AI / ML for Indies / Tyler Coleman (Retora Games)
 
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
 
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
 
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
 
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
 
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
 
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
 
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
 
How to increase wishlists & game sales from China? Growth marketing tactics &...
How to increase wishlists & game sales from China? Growth marketing tactics &...How to increase wishlists & game sales from China? Growth marketing tactics &...
How to increase wishlists & game sales from China? Growth marketing tactics &...
 
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
 
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
 
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
 
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
 
Branded Content: How to overcome players' immunity to advertising / Alex Brod...
Branded Content: How to overcome players' immunity to advertising / Alex Brod...Branded Content: How to overcome players' immunity to advertising / Alex Brod...
Branded Content: How to overcome players' immunity to advertising / Alex Brod...
 
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
 
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...
 

CI/CD в Playrix: Как собирать тысячи билдов в день для разных платформ / Юрий Труфанов (Playrix)

  • 1. CI/CD в Playrix: Как собирать тысячи билдов в день для разных платформ Юрий Труфанов Technical Director, IT Platform
  • 2. Поддержка серверной инфраструктуры наших игр, развитие CI/CD процессов IT Platform
  • 3. Что мы собираем? Выпускаем игры для IOS, Android, Mac, Windows(UWP); Над играми работают сотни разработчиков; Билды собираются по коммитам, по расписанию, по кнопке; Для сборки нужны MacOS, Windows, Linux; Серверный API и вспомогательные сервисы работают в Docker; ▪ ▪ ▪ ▪ ▪
  • 4. Нам необходимо стабильно и быстро собирать билды
  • 5. У НАС БЫЛА СЕРВЕРНАЯ В ОФИСЕ TeamCity, несколько Mac и целая пачка серверов разной степени свежести
  • 6. У НАС БЫЛА СЕРВЕРНАЯ В ОФИСЕ Office 1 TeamCity Server Server Linux Agents Windows Agents Mac Agents Office 2 Office 3 Office 4 Internet
  • 7. У НАС БЫЛА СЕРВЕРНАЯ В ОФИСЕ Office 1 TeamCity Server Server Linux Agents Windows Agents Mac Agents Office 2 Office 3 Office 4 Internet
  • 8. ▪ TeamCity сервер переживает выход из строя железа и инстансов EC2; ▪ Собранные билды хранятся в S3, а это сторейдж с резервированием; ▪ Если какой-то филиал выходит из строя — нагрузка распределяется по агентам других доступных филиалов. ДОБАВИМ НАДЕЖНОСТИ Office 4 Office 2 Office 1 Linux Agents Windows Agents Mac Agents Office 3 Linux Agents Windows Agents Mac Agents AWS Cloud TeamCity Server Auto Scaling Group Auto Scaling Group Builds portal Amazon Aurora MySQL S3 Artifact Storage Internet
  • 9. Настройка серверов руками — это долго и приводит к ошибкам.
  • 10. ПОЧЕМУ МЫ ВЫБРАЛИ ANSIBLE? Простой инструмент; Поддержка Linux, MacOS и Windows; Весь провижининг описан в YAML файлах и хранится в Git репозитории — понятно кто какие изменения делал и зачем; Можем применить одновременно изменения на десятках сборочных агентов и получить одинаковое окружение; Существенная экономия времени инженеров и сокращение человеческих ошибок; ▪ ▪ ▪ ▪ ▪
  • 11. Нам нужно больше сборочных агентов (а иногда меньше)
  • 12. ЧТО МЫ ИМЕЕМ Большое количество железных серверов, которые работают постоянно; Очередь ожидания сборки, которая постоянно растет; Днем нагрузка больше чем ночью; Сборка может сломать окружение на агенте - приводит к инцидентам. К ЧЕМУ МЫ СТРЕМИМСЯ Нулевая очередь ожидания сборки; Минимум инцидентов из-за поломанного окружения; Эффективно расходовать ресурсы; ▪ ▪ ▪ ▪ ▪ ▪ ▪
  • 13. КАКИЕ ПРОБЛЕМЫ НАМ НУЖНО РЕШИТЬ? Как сделать так, чтобы на запускаемых инстансах было настроено окружение для сборки? Как TeamCity работает с облачными сборочными агентами? Какой тип инстанса выбрать и в каком облаке для сборочных агентов Linux? А какой для Windows? У нас большие репозитории. Как уменьшить время checkout на запускаемых в облаке инстансах? Что делать с Mac-ами? ▪ ▪ ▪ ▪ ▪
  • 14. ПОЧЕМУ МЫ ВЫБРАЛИ PACKER (https://www.packer.io/)? Работает со множеством облачных провайдеров включая AWS и Azure; Поддерживает Linux и Windows; Конфигурация описывается в JSON, который хранится в репозитории (IaC); Мы можем использовать уже написанный Ansible провижининг и для сборки образов облачных сборочных агентов. ▪ ▪ ▪ ▪
  • 15. Инстансы для сборочных агентов Linux Цены OnDemand, взяты отсюда: https://aws.amazon.com/ru/ec2/pricing/on-demand/, https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/#pricing Облако AWS Azure Тип инстанса c4.4xlarge c5.4xlarge Standard_D16a_v4 CPU ядра 16 16 16 RAM 32G 32G 64G Цена за час $0.796 $0.68 $0.856
  • 16. Инстансы для сборочных агентов Windows Облако AWS Azure Тип инстанса c5.4xlarge c5.9xlarge Standard_D16a_v4 CPU ядра 16 36 16 RAM 32G 72G 64G Цена за час $1.512 $3.402 $1.592 Взято с: https://azure.microsoft.com/en-us/pricing/details/virtual-machines/windows/ и AWS Spot Instance pricing history. Цена может изменяться.
  • 17. ГДЕ ХРАНИТЬ ЗЕРКАЛА РЕПОЗИТОРИЕВ GIT? Amazon Elastic File System (EFS); GlusterFS, Ceph, NFS; Amazon FSx for Lustre; Amazon Elastic Block Store (EBS). ▪ ▪ ▪ ▪
  • 19. ЧТО ДЕЛАТЬ С MAC-АМИ?
  • 20. ЧТО ДЕЛАТЬ С MAC-АМИ?
  • 21. ЧТО ДЕЛАТЬ С MAC-АМИ? Поставить шкаф и набить его Mac Mini и MacPro; Арендовать Mac Mini или Mac Pro у хостинг провайдера или у облачного провайдера; Все, что можно не собирать на Mac — не собирать на Mac; Собирать на Linux; Xcode Сloud. ▪ ▪ ▪ ▪ ▪
  • 22.
  • 23. Spot инстансы Есть в AWS и Azure; Стоят до 90% дешевле; Могут быть в любой момент отозваны и выключены; ▪ ▪ ▪
  • 24. Spot инстансы Цены OnDemand, взяты отсюда: https://aws.amazon.com/ru/ec2/pricing/on-demand/, https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/#pricing Облако AWS Spot Azure Spot Azure Spot with Hybrid Benefit Тип инстанса c5.4xlarge Standard_D16a_v4 Standard_D16a_v4 CPU ядра 16 16 16 RAM 32G 64G 64G Цена за час $1.512 $0.2652 $1.592 $0.4494 $1.592 $0.1798
  • 25. НАША СБОРОЧНАЯ ФЕРМА СЕЙЧАС Office 3 Mac Agents Office 4 Office 2 Office 1 Mac Agents Linux Agents AWS Cloud Internet TeamCity Server Auto Scaling Group S3 Artifact Storage Auto Scaling Group Builds portal Amazon Aurora MySQL Windows Agents Azure
  • 26. НЕМНОГО ЦИФР 7000+ от 100 до 200 500+ сборок в день сборочных агентов активных пользователей в день