Философия стабильности: как работает DevOps в мультипродуктовой компании

Сравни — финансовый маркетплейс с крупной IT-командой, которая за последнюю пару лет выросла в три раза. Для слаженной работы технических специалистов нам важно унифицировать процессы их взаимодействия, обеспечивать стабильное окружение для решения задач. В этом нам помогают DevOps-эксперты. Об их работе мы подробно поговорили в Sravni Podcast, а ниже по мотивам подкаста коротко расскажем, кто это такие и какую роль играют в мультипродуктовой компании.

Владислав Машталер, лидер второй линии техподдержки, ведущий Sravni Podcast и Кирилл Карелин, лидер DevOps-команды Сравни
Владислав Машталер, лидер второй линии техподдержки, ведущий Sravni Podcast и Кирилл Карелин, лидер DevOps-команды Сравни

DevOps как осознанная необходимость

За 15 лет из небольшого стартапа Сравни превратился в крупную технологическую компанию. Сегодня половина нашего штата, порядка 300 человек, — это IT-специалисты. В режиме 24/7 они поддерживают онлайн-сервисы, которые позволяют пользователям ресурса экономить при выборе страховых, банковских услуг и программ обучения. Наш маркетплейс поддерживает более 300 интеграций с самыми разными службами, организациями и корпорациями; аудитория сайта — миллионы пользователей. Инженеры обеспечивают бесперебойную работу в условиях многозадачности: от разработки и внедрения продуктов до обслуживания и поддержки.

DevOps-подход позволяет сформировать стабильную среду для разработки, тестирования, интеграции инженерных инструментов. И тем самым — обеспечить непрерывную работу технических направлений, предоставляя универсальность подходов. Мы — мультипродуктовая компания, и сервисы у нас написаны на разных языках программирования, имеют разные требования к инсталляции. Системы состоят из множества микросервисов, поэтому специалистам требуется некая точка входа: именно её предоставляют наши девопсы.

Их главная задача: чтобы человек мог прийти в компанию, почитать инструкции, послушать коллег о механике процессов — и дальше совершенно спокойно пользовался инструментами, которые есть в Сравни, не заботясь о принципах их устройства.

Переезд в облака

С развитием облачных технологий у IT-специалистов отпала необходимость думать о «железе» — инфраструктура теперь, как правило, размещается на мощностях вендоров. И девопсы обслуживают именно «инфраструктуру на стороне». В Сравни команда так и называется — Cloud Infrastructure Team.

В работе с облаками есть свои нюансы. Изменение ландшафта провайдеров после ухода из России иностранных поставщиков поставило перед нами новые вопросы. В определенный момент от грамотной и слаженной работы Cloud Infrastructure Team в Сравни зависело, насколько комфортно компания сможет перенести свои данные на отечественную платформу. Возникла необходимость пересмотра IT-решений: в пользу ускоренной миграции пришлось отказаться от других технических планов.

К счастью, при переезде ничего не «упало», так как все ошибки предварительно отловили. Когда миграция была закончена, уже появилась некая точка, от которой можно отталкиваться. Зная нагрузки, количество сервисов, прогнозы на появление новых, можно было планировать дальнейшую работу.

Подстраховаться от форс-мажоров

Из соображений отказоустойчивости ресурсы на стороне вендора должны быть распределены географически. Чтобы при аварии в одной точке, нагрузку можно было бы оперативно перенести в другое место. Но поскольку вендоры ограничены в количестве собственных дата-центров, девопсы Сравни применяют резервирование в отдельном от облака ключе. Такой подход предполагает наличие базовых «бэкапов», которые формируются в облаке автоматически, при этом вся инфраструктура расселена.

Ресурсы в каждой из зон должны быть с запасом. Мы придерживаемся мнения, что запас должен составлять 20−25% относительно нормального потребления. На основе данных мониторинга описывается пиковая нагрузка, и нужно быть уверенным, что сервис выдерживает прайм-тайм. Если вдруг прилетит внезапный DOS или случится что-то ещё, запас как раз пригодится.

Не стоит думать, что с развитием облаков потребность компаний в железных серверах исчезла полностью: критически важные данные дублируются именно тут. Даже при наличии регулярных клауд-бэкапов и, например, резервирования в S3, хорошо иметь бэкапы, грубо говоря, как на флешке: на всякий случай.

Карьера в DevOps

Специалист DevOps — это прежде всего инженер, а DevOps — методология, по которой он работает. У девопсов в Сравни нет четкого разделения по конкретным задачам: мы стараемся чередовать их между сотрудниками, чтобы максимально расширить круг компетенций каждого и снизить bus-фактор. Даже лидер команды в отрыве от основных задач, связанных с архитектурными DevOps-решениями, занимается тем же, чем и остальная команда: в рамках дежурств, оперативного устранения поломок и так далее.

Принимая решения о мотивировании специалистов, опираемся на достижение или недостижение ими ряда показателей. Один из таких важных моментов — упреждение даунтайма: мы должны всеми силами избегать простоев. Используем time-to-market, метрику упреждения неработоспособности сервисов — когда обновляем наши инструменты или привносим что-то новое. Это командная история: действия DevOps направлены на то, чтобы все работало стабильно, отказоустойчиво.

Но сотрудники всегда знают, что если они будут активно вкладываться, улучшать time-to-market и упразднять crash-down-time, то получат премию, которая будет зависеть от их личного вклада в общую работу.

У наших девопсов всегда есть возможности для роста. И не только в рамках этой специальности. Если есть желание, можно пойти дальше в SRE и стать ультра-хардкорным инженером в узкоспециализированных технологиях — например, заниматься донастройкой инструментов и ресурсов, которыми пользуется компания. Можно пойти в архитектуру, заняться построением масштабных отказоустойчивых систем. В теории DevOps может пойти и в CTO, но придётся плотно погрузиться в цикл разработки, понять его потребности. К слову, как разработчик может перейти в DevOps, так и наоборот: технически эти позиции довольно близки.

***

Детальнее узнать о том, кто такие DevOps-инженеры, какие они решают задачи и какие используют инструменты, вы можете из нашего подкаста — смотрите его на YouTube, RUTUBE или слушайте на Яндекс Музыке. А чтобы не пропустить наши новые материалы, подписывайтесь на ТГ-канал технической команды Сравни!

1111
Начать дискуссию