Те, кто автоматизируют стройку

ПИК — крупнейший в России застройщик. Здесь накапливается и анализируется столько данных о стройке, сколько нет ни у кого. Справляться с этим позволяют системы и сервисы, разработанные компанией ПИК Digital.

ИТ-компания ПИК Digital занимается разработкой и внедрением программного обеспечения для Группы компаний ПИК. Системы ПИК Digital охватывают все этапы деятельности ПИК, включая производство, проектирование, строительство, девелопмент, автоматизацию финансов и экономики, закупок и продаж. ПИК Digital разрабатывает информационные системы, мобильные приложения, боты и хранилища данных, специфичные для компаний-застройщиков.

Инфраструктура под новый продукт

С 1 июля 2019 года вступил в силу закон, по которому застройщикам пришлось перейти от долевого строительства к проектному финансированию с использованием счётов эскроу. Это означает, что застройщик может строить либо за свои собственные средства, либо за кредитные. Потребовалась система, которая позволяла бы банкам получать от застройщика отчётность о ходе строительства. Готового решения на рынке не нашлось, и ПИК Digital разработал свою систему «Банковский портал». Внутри ПИК «Банковский портал» интегрирован с другими системами и наполняется данными из них. Эта связка систем хорошо показала себя на практике, что подтолкнуло ПИК Digital к выпуску на рынок SaaS-решения, предоставляющего «Банковский портал» как сервис для банков и ряд других систем как сервис для застройщиков.

Подготовка этого решения включала в себя адаптацию внутренних систем для использования внешними заказчиками, а также их развертывание и администрирование. Так как ПИК Digital специализируется на разработке ПО, а не на администрировании, для технической реализации развёртывания была приглашена компания — партнёр Яндекс.Облака — Express 42, которая занимается внедрением и обучением инженерным практикам производства программных продуктов.

Требования к системе сформулировали так:

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

Для обеспечения работоспособности сервисов требуется целый ряд инфраструктурных компонентов, таких как сети, балансировщики нагрузки, объектные хранилища и управляемые сервисы: PostgreSQL, Kubernetes. Инфраструктура более или менее шаблонная, но в наборе компонентов могут быть отличия в зависимости от задачи клиентов компании ПИК Digital. Например, при строительстве коттеджей свои особенности, при возведении многоквартирных домов — свои.

Расчётная нагрузка подразумевала десятки окружений. При таком объёме работ ручное управление непродуктивно, и сразу встал вопрос об автоматизации, использовании управляемых сервисов БД, объектного хранилища, оркестратора Kubernetes (каждый сервис запускается в docker-контейнере).

При выборе облачного провайдера ПИК Digital и Express 42 сформулировали пять требований:

  • Функциональность.
  • Автоматизированное управление.
  • Поддержка Kubernetes.
  • Отказоустойчивость.
  • Расположение ЦОД на территории РФ.

Инфраструктура как культурный код

Яндекс.Облака в качестве провайдера лучше всего соответстовал гланой идее, которую предложила компания Express 42 заказчику. Она состоит в том, чтобы для управления множеством окружений обратиться к двум хорошо известным практикам:

  • Инфраструктура как код для создания новых окружений: конфигурация описывается как код в Terraform и кладется в репозиторий. Развёртывание всех окружений одной кодовой базой позволяет минимизировать риски несоответствия результатов в тестовом окружении тому, что будет в production.
  • Непрерывная поставка для управления распространением обновлений: позволяет описать процесс изменений от среды к среде с определённым контролем качества. Применительно к инфраструктурному коду даёт автоматизированный процесс и возможность для каждого внести изменения в инфраструктуру.

Применение этих двух практик требовало наличия у провайдера развитой экосистемы взаимосвязанных сервисов, без которой невозможно было бы добиться настоящей автоматизации и гибкости для различных наборов компонентов. Платформа Яндекс.Облако предложила множество готовых утилит, необходимых для развёртывания, в том числе созданных сообществом.

Решающее значение сыграло то, что Terraform уже поддерживает все необходимые сервисы. Специалистам Express 42 не хватало модуля Terraform для Managed Service for PostgreSQL, они обратили на это внимание техподдержки Яндекс.Облака, и задача была взята в работу. Также в процессе реализации столкнулись с ошибкой в работе сервиса Load Balancer, которая была оперативно исправлена техподдержкой.

Помимо балансировщика компания Express 42 использует Managed Service for PostgreSQL, Compute Cloud, развернула кластер Managed Service for Kubernetes. Новые инсталляции параметризировали с помощью Terraform. Также интегрировали управление конфигурацией с CI системой GitLab, откуда каждый разработчик может получить окружение, идентичное тому или иному клиенту, независимо от размеров инсталляции (от одной ВМ до большой среды для нагрузочного тестирования).

Команда Express 42 приступила к разработке автоматизации развёртывания систем ПИК Digital с применением инженерных практик (Инфраструктура как код и Непрерывная поставка) и использовала для этого Yandex Managed service for Kubernetes. Тогда он еще был в статусе Preview, но это позволило нам начать быстро и быстрее получить результаты, приносящие пользу. После чего мы подготовили автоматизацию по развертыванию self-hosted Kubernetes кластера на вычислительных и сетевых мощностях Яндекс.Облака.

Получив инфраструктуру, которая соответствовала требованиям компании ПИК Digital (системы работают аналогично той инфраструктуре, что была ранее, но инфраструктура за счёт автоматизации и инженерных практик стала стабильнее, лучше управляемой и тиражируемой), приступили к обучению сотрудников ПИК Digital разработанному решению и тем самым — инженерным практикам. После чего сотрудники ПИК Digital уже сами смогли развёртывать себе среды и разработки, и тестирования, подготовить новое боевое окружение и с помощью инженеров Express 42 переехать на него.

Проект занял три месяца, в реализации участвовали четыре инженера, в том числе один ведущий инженер.

Автоматизация развёртывания сред

ПИК Digital и Express 42 добились подлинной возможности разворачивать новые окружения «по кнопке», стоит только указать несколько параметров, таких как размер и название кластера, при этом решение может тиражироваться для команд, которые не входили в пилотный проект. Итоги проекта выглядят следующим образом:

  • Готовая инсталляция развёртывается за 90 минут (для сравнения: ручная настройка, включая мониторинги, логирование, алерты, плюс деплой приложений, занимает от двух дней).
  • Появилась возможность развёртывания любого количества окружений.
  • Полная автоматизация средствами CI/CD дает надёжную страховку от ошибок персонала (человеческого фактора).
  • Управление инфраструктурой через изменение в коде повысило надёжность процесса, повысило прозрачность изменений и синхронизацию конфигурации окружений.
  • Прозрачная стоимость владения инфраструктурой и контроль над всеми расходами.
Главным итогом проекта стал быстрый вывод на рынок продукта компании ПИК Digital.

Уникальная особенность реализации в том, что это первое известное нам промышленное использование Terraform и подхода Инфраструктура как код в Яндекс.Облаке в таком масштабе.

Мнение

Юрий Игнатов,
ведущий инженер Express 42
Юрий Игнатов,
ведущий инженер Express 42

Использование облачных решений компании Яндекс в совокупности с применением современных инженерных практик помогло нам дать возможность каждому разработчику без труда получить свое изолированное окружение на мощностях Облака и так же просто его выключить, когда оно больше не требуется. С такой же лёгкостью мы можем тиражировать production-окружения, развернутые в Облаке под нужды бизнеса. Внедрение облачных решений вместе с использованием современных процессов разработки и подходов к управлению инфраструктурой помогают командам разработки сконцентрироваться на продукте и успевать за растущим бизнесом, быстрее доставлять ценность своим пользователям.

Остались вопросы?

Напишите нам

И мы оперативно расскажем о возможностях Яндекс.Облака для вашего бизнеса или подберём партнёра, который полностью реализует ваш ИТ-проект.

Имя
Фамилия
Email
Телефон
Компания
Сайт
Город и страна
Индустрия
Не выбрана
Комментарии