SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
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+
сборок
в день
сборочных
агентов
активных пользователей
в день
Вопросы?
Спасибо за внимание!

Weitere ähnliche Inhalte

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

Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013
Serguei 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
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
it-people
 
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Ontico
 
Миграции информационной инфраструктуры бизнес-приложений в облако
Миграции информационной инфраструктуры бизнес-приложений в облакоМиграции информационной инфраструктуры бизнес-приложений в облако
Миграции информационной инфраструктуры бизнес-приложений в облако
Natalia Efimtseva
 
CodeFest 2014. Сибирев А. — Управление инфраструктурой под Cocaine
CodeFest 2014. Сибирев А. — Управление инфраструктурой под CocaineCodeFest 2014. Сибирев А. — Управление инфраструктурой под Cocaine
CodeFest 2014. Сибирев А. — Управление инфраструктурой под Cocaine
CodeFest
 
евгений потапов Root Conf потапов
евгений потапов Root Conf   потаповевгений потапов Root Conf   потапов
евгений потапов Root Conf потапов
rit2010
 

Ähnlich wie 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 и прочие...
 
евгений потапов Root Conf потапов
евгений потапов Root Conf   потаповевгений потапов Root Conf   потапов
евгений потапов Root Conf потапов
 

Mehr von DevGAMM Conference

Mehr von 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...
 

Kürzlich hochgeladen

ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 

Kürzlich hochgeladen (9)

MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 

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+ сборок в день сборочных агентов активных пользователей в день