Получи случайную криптовалюту за регистрацию!

Привет! Продолжаем рубрику «‎СТО на каникулах»‎. Сегодня я, А | Тимлид Леонид

Привет!

Продолжаем рубрику «‎СТО на каникулах»‎. Сегодня я, Артем Науменко (Head of Infra), расскажу, как мы рассчитываем затраты на инфраструктуру.

Каждый руководитель инфры или СТО сталкивается с планированием бюджета: сколько серверов докупить, чтобы покрыть потребность бизнеса? Или сколько денег мы потратим на облако в следующем году?

Подобную задачу я решал уже не раз, поэтому поделюсь инсайтами

Входные данные

1. План компании по количеству уроков на каждый месяц + прогноз по количеству разработчиков за тот же период.

2. Исторические данные по проведенным урокам + затраты на инфру за прошлые периоды.

Модель для прогноза

Существуют 3 типа расходов. Каждый коррелирует с планами компании:

1. Stateless сервера (k8s/load balancer, ELK) – количество серверов, пропорциональное количеству планируемых уроков. Я отнес ELK в эту категорию, потому что количество хранимых логов пропорционально количеству уроков при неизменном периоде хранения.

2. Statefull сервера (БД, S3) – количество серверов, пропорциональное суммарному накопленному числу уроков за всю историю компании.

3. Средства разработки – окружения разработки, лицензии на IDE и так далее, пропорциональные количеству разработчиков в компании.

Если есть другие значимые статьи расходов, то стоит подумать, с какими расходами они коррелируют.

Что дальше

Сопоставляем факт по расходам по каждой из категорий серверов / сервисов и факт по метрике компании. Если есть явная линейная зависимость, то все отлично — можно прогнозировать.

Если зависимость нелинейная, то из соответствующей категории серверов вычитаем какую-то часть, которая вероятно коррелирует с чем-то другим. Например, изначально я заложил расходы на хранение видеозаписей уроков пропорционально общему количеству уроков, проведенных в школе. Но, увидев что корреляция не сходится, вспомнил, что мы изменили политику на хранение данных только за последние полгода, после чего все сошлось.

Считаем

Как только у вас появляется корреляция, можно мыслить в терминах:

на каждые 100 уроков в день нам нужно +ХХХ CPU и +УУУ RAM (+3000р. в день на инфру).
на каждого нового разработчика или QA нужно +5000р. в месяц на инфру.
каждый проведенный урок создает расход на хранение информации о нем в будущем на 1 руб./месяц.

Очевидные проекты экономии в будущем – это очистка старых данных.

После построения модели на нее можно наложить доп. расходы или проекты экономии. Например, наша модель не учитывает новые направления, в которых нет уроков с преподавателем (университет допобразования для взрослых Skypro). Такие расходы можно посчитать отдельно или заложить примерно, если расход незначительный по сравнению с остальными затратами.

P.S. Делитесь в комментах своими подходами. В следующий раз расскажу, как мы автоматизировали работу с инфраструктурой)