Зачем Яндекс Go создал отдельный язык для расчёта стоимости поездок

Зачем Яндекс Go создал отдельный язык для расчёта стоимости поездок

Зачем Яндекс Go создал отдельный язык для расчёта стоимости поездок

Цена поездки в Яндекс Go — это не расстояние, умноженное на минуты и километры. В расчёт вмешиваются геозоны, спрос, скидки, платные дороги, дополнительные остановки и требования вроде перевозки кота, велосипеда или лыж. Чтобы управлять этим хозяйством без бесконечных деплоев, разработчики вынесли алгоритм ценообразования из кода сервиса в собственный язык.

Как объяснили разработчики в статье на Хабре, прайсинг работает не только при заказе машины.

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

 

Сначала сервисы параллельно собирают параметры поездки: тарифную категорию, геозоны, скидки, повышенный спрос и дополнительные услуги. Зависимости между источниками выстраиваются в граф, а запросы выполняются асинхронно на базе userver. Если некритичный источник не ответил, весь расчёт не падает.

 

Сам алгоритм раньше можно было бы держать в C++, но он меняется в среднем дважды в неделю. Выкатка сервиса на 50 подов занимает около 40 минут, а лес динамических конфигов быстро превратил бы код в музей условных операторов.

Поэтому Яндекс разработал собственный DSL. В нём есть условия, функции, неизменяемые значения и fold вместо циклов. Правила собираются в последовательную цепочку: каждое преобразование получает текущую цену и параметры, а возвращает новый результат с метаданными. Грамматику описали через ANTLR 4, а верификатор Z3 проверяет, что программа не выдаст некорректную цену.

 

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

 

В итоге прайсинг превратился в отдельную платформу, которой уже пользуются Такси, Доставка и сервис зарядки электромобилей.

Всё под контролем: PT X получил единую консоль киберзащиты

В PT X появилась единая консоль для управления инцидентами и активами. Теперь клиентам не придётся бегать между разными окнами, отчётами и списками хостов: следить за атаками, контролировать реагирование и оценивать защищённость инфраструктуры можно в одном личном кабинете.

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

Клиент заранее определяет, на каких активах Positive Technologies разрешено проводить реагирование. Для каждого узла можно назначить ответственного и выбрать сценарий: действия злоумышленника блокирует команда заказчика, PT X действует автоматически либо запрашивает согласование. После завершения работ система формирует отчёт — кто, что и когда сделал.

Отдельный дашборд показывает полноту мониторинга. Защищённые с помощью MaxPatrol EDR хосты отмечаются в интерфейсе, а «белые пятна» подсвечиваются. Логика простая: если актив существует, но агент на нём не установлен, то для атакующего это может оказаться весьма гостеприимным местом.

 

Через личный кабинет также можно скачать дистрибутивы и инструкции для установки PT X.

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

Ещё одна новая возможность — анализ защищённости внешнего периметра. PT X показывает доступные из интернета ресурсы глазами потенциального злоумышленника и помогает найти слабые места до того, как это сделают незваные гости.

По оценке Positive Technologies, в каждой второй подключённой компании PT X уже обнаружил и помог остановить серьёзные атаки. Финальная проверка — кибериспытания: исследователи пытаются реализовать недопустимое событие, а если им это удаётся, получают вознаграждение. Бизнес — рекомендации по усилению защиты и довольно убедительный повод ими воспользоваться.

RSS: Новости на портале Anti-Malware.ru