HighLoad++ 2017. Архитектуры/масштабируемость, бекенд, enterprise-системы

ВІДЕОУРОК № 7. Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не разориться

Наш проект – это облачный CI-сервис, на котором пользователи запускают тесты разрабатываемых проектов. В этом году система автозакупки нашего проекта приобрела 37218 машин (Amazon Instances). Это позволило обработать 189488 "задач" (прогонов тестов) наших клиентов. Тесты – это всегда ресурсоемкие задачи с максимальным потреблением процессорных мощностей и памяти. Мы не можем прогнозировать, сколько параллельных вычислений и в какой момент времени будет. Перед нами стояла задача построения архитектуры системы, которая умеет очень быстро увеличивать, а также быстро уменьшать мощности кластера Все это осложнялось тем, что ресурсоемкость вычислений не позволяла нам использовать классические инструменты AWS или GoogleComputeEngine. Мы приняли решение написать собственную систему автоматического масштабирования, учитывая требования нашей предметной области. В докладе я расскажу о том, как мы спроектировали и построили архитектуру нашего сервиса, что из себя представляет система автоматической закупки машин, а также расскажу подробнее об основных архитектурных блоках проектов, решающих подобные задачи.