Mail.ru Cloud Solutions
Назад к кейсам

«Кометрика»: как Kubernetes помог нам в 7 раз сократить время на разработку и сэкономить на инфраструктуре

Компания
«Кометрика»
Отрасль
Разработка
Команда
150 человек
Количество проектов
13 продуктов в работе
30 завершенных
Станислав Ярлушкин
«Кометрика», заместитель генерального директора

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

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

«Кометрика» — инновационные IT-продукты для госсектора и бизнеса

Мы создаём IT-решения для умного города и цифрового бизнеса. Для разработки своих продуктов используем в том числе инновационные технологии, такие как блокчейн и дополненная реальность. «Кометрика» входит в «ИКС Холдинг» — многопрофильную ИТ-группу, среди основных задач которой инвестиции, управление и консолидация на рынке телеком-медиа и технологий.

Среди наших проектов: площадка для бизнеса «Развивай.рф», маркетплейс образовательного контента и сопутствующих сервисов, система управления арендным жильем «Аренда.дом.рф» и другие. Из наиболее инновационных: проекты с дополненной реальностью, первая в России b2b-площадка на базе блокчейна «Факторинг», система по отслеживанию цепочек поставок на базе блокчейн, «Цифровая управляющая компания», где сейчас в разработке решение для автоматизации расчетов по коммунальным услугам: умные счетчики на базе технологии интернета вещей дистанционно передают данные, а вся информация хранится и обрабатывается на облачной платформе.

Над каждым проектом работает отдельная команда, свободная в выборе методологий и инструментов разработки.

Проектная разработка требует от инфраструктуры гибкости и управляемости

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

Создание решения включает разработку, создание инфраструктуры, внедрение, эксплуатацию, поддержку и обновление. На разных проектах разные требования к разработке, безопасности, инфраструктуре, и мы гибко подстраиваемся под потребности клиентов.

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

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

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

Такая специфика влияет на наш подход к построению инфраструктуры: нам нужно максимально гибкое и управляемое решение.

Наш выбор: не строить собственную инфраструктуру, а использовать облака

Из-за того, что есть проекты, где невозможно сразу понять объем ресурсов и потребностей в плане инфраструктуры, нам хорошо подходит облачная модель с оплатой за использованные ресурсы и быстрым масштабированием — получением нужных мощностей по запросу.

Кроме того, собственная инфраструктура — это большие накладные расходы на старте и затраты на поддержку в процессе, закупка мощностей под каждый новый проект мешала бы нам быстро тестировать новые решения. Облако позволяет сэкономить деньги и время на эксплуатацию, сфокусироваться на бизнесе.

Облачные версии сервисов удобны и тем, что провайдер обеспечивает нужный уровень доступности по договору SLA. Это снимает с нас заботу о даунтаймах: сбои предотвращают администраторы облака, а наши DevOps-инженеры занимаются своей работой.

Почему выбрали облако MCS

Мы использовали Amazon Web Services (AWS), пока в 2018 году он не попал под блокировки в России. Потом обдумывали вариант сотрудничества с облачной платформой Selectel. В итоге, после рассмотрения условий партнерства, решили перейти на Mail.ru Cloud Solutions, где нас устроил уровень сервиса и технической поддержки.

Для миграции виртуальных машин с AWS на MCS мы разворачивали инфраструктуру через Terraform, а мигрировали путем ре-деплоя через Ansible. Миграция прошла без проблем. Инфраструктура, которая не была изначально размещена на AWS, разворачивалась на MCS сразу.

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

Для тех проектов, где готовые решения уходят клиенту в on-premise, мы размещаем на платформе MCS часть разработки и тестовые среды. Другие проекты, где мы занимаемся и разработкой, и эксплуатацией — а таких большинство, около 70-80% — полностью размещаются в наших проектах в облаке MCS, включая продакшен. Это «Факторинг», проект с дополненной реальностью ARBook, «Развивай.рф» и другие.

Какие облачные сервисы мы используем

Мы используем несколько сервисов:

  1. Облачные серверы: 65-70% мощностей — это виртуальные машины для тестовых сред, а также для разработки. Если заказчик хочет, чтобы мы полностью сопровождали инфраструктуру, также размещаем ее на облачных серверах MCS.
  2. Kubernetes aaS: передаем приложения и обновления заказчикам, упакованными в контейнеры, даже если их инфраструктура находится в on-premise. Сам принцип работы Kubernetes позволяет клиентам проводить обновления с помощью поставленного контейнера в автоматизированном режиме и без даунтайма.
  3. S3-хранилище: хранение частичных бэкапов виртуальных машин и баз данных, statement’ов для Terraform. Также есть один проект, где мы используем объектное хранилище для хранения файлов под раздачу.

Почему выбрали облачный Kubernetes

У нас сотни виртуальных машин, на которых по отдельности разворачиваются Docker-контейнеры, поэтому встал вопрос с оркестрацией такого количества контейнеров. Мы рассматривали разные оркестраторы, пробовали Docker Swarm, но он сильно проигрывает по сравнению с Kubernetes, который уже стал стандартом для разработки.

В итоге мы перешли на инсталляцию Kubernetes aaS (управляемый сервис) от Mail.ru Cloud Solutions, чтобы снять административную нагрузку со своих DevOps-специалистов. Если что-то не работает, проще обратиться в техподдержку и быстро решить вопрос, чем разбираться своими силами.

Также управляемое решение лучше интегрировано с OpenStack — в своей инсталляции эту интеграцию еще нужно обеспечить, чтобы подключать быстрые сетевые диски в качестве Persistent Volumes, использовать балансировщик нагрузки и так далее. У нас нет знаний и компетенций в настройке OpenStack, поэтому готовое решение по инсталляции использовать проще и безопаснее.

Мы уже год пользуемся Kubernetes как сервис от Mail.ru Cloud Solutions и не собираемся от него отказываться.

Какие преимущества мы получили от облачных сервисов MCS

Экономия на автомасштабировании.Kubernetes может автоматически разворачивать и сворачивать кластер в зависимости от нагрузки. То есть во время пиковой нагрузки в кластере может быть, например, 30 нод, а вечером в спокойное время — 10. У нас во время выпуска нового софта кластер Kubernetes автоматически расширялся во время релиза и схлопывался, когда всё стабилизировалось. Это позволяет значительно экономить на ресурсах и виртуальных машинах.

Упрощение процесса разработки, в частности DevOps-части.Раньше для развертывания на виртуальной машине мы писали Ansible разные роли, было множество файликов, отдельные настройки. Требовалось много работы DevOps-инженеров, разработчики в ней не участвовали. С Kubernetes есть понятные четкие YAML-манифесты, прозрачные шаблоны, инфраструктура как код, которая описывает, что, где и как будет запущено и с какими параметрами. Разработчики сами стали писать helm-чарты для развертывания в Kubernetes, настраивать CI/CD. Также мы перешли с TeamCity на GitLab CI, теперь разработчики контролируют весь процесс, DevOps остается только ревьюить их изменения.

Стандартизация процессов и ускорение разработки в 7 раз.Общие пайплайны доставки ПО на серверы для разных проектов, появившиеся с Kubernetes, ускорили выпуск релизов и сократили time-to-market. С Ansible пайплайны менялись от проекта к проекту, от DevOps-инженера к DevOps-инженеру. С приходом Kubernetes пайплайны стали переиспользоваться, появились общие шаблоны внутри группы разработки.

Мы стали в 7 раз меньше времени тратить на настройку пайплайнов по разворачиванию инфраструктуры. Теперь достаточно один раз создать пространство имен (namespace) и настроить RBAC, то есть дать доступ пользователю, который разворачивает софт с CI, — весь CI/CD настроен автоматически.

Для максимальной автоматизации мы используем Werf — он гарантирует надежный деплой в Kubernetes. А чтобы еще упростить развертывание инфраструктуры для разработчиков, пользуемся операторами Kubernetes — для тестовых стендов есть операторы баз данных, бэкапов и другие.

Планы на будущее

Сейчас мы плотно занимаемся автоматизацией и интеграцией, настраиваем системы аудита и мониторинга. Будем расширять сотрудничество с Mail.ru Cloud Solutions как по существующим, так и по новым проектам. Также с интересом смотрим на новые технологии. Например, у нас неожиданно появилось AR, в итоге выросло новое направление дополненной реальности.

Может быть, в будущем мы начнем использовать машинное обучение или другие технологии в облаке — покажет время.

Зарегистрируйтесь и попробуйте сервисы бесплатно

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

21 год
опыта поддержки высоконагруженных сервисов
100+ млн
пользователей по всему миру
7 лет
экспертизы развития облачной инфраструктуры