Реальная стоимость «бесплатного» обнаружения персональных данных
«Это бесплатно» — не анализ затрат. Это цена лицензии — один из многих факторов.
Microsoft Presidio стоит €0 при загрузке. Программное обеспечение с открытым исходным кодом. Но его эксплуатация в страховой компании обходится более чем в €13 000 в первый год. Этот разрыв — стоимость инженерного времени.
Что нужно для производственного развёртывания
Подготовка инструмента к работе в продакшне занимает 40–80 часов. Вот куда уходит это время.
Настройка Docker: 4–8 часов. Инструмент использует несколько контейнеров: сервис анализа, сервис анонимизации и опциональный редактор изображений. Наладить их взаимодействие непросто. Issues на GitHub свидетельствуют, что это частая точка отказа.
Настройка Python: 2–4 часа. У библиотек строгие требования к версиям. Конфликты часты — особенно между версиями моделей spaCy и Python 3.8/3.9/3.10. На GitHub сотни открытых issues по этой теме.
Загрузка языковых моделей: 2–4 часа. Модели spaCy весят от 300 МБ до 1,4 ГБ каждая. Для пяти языков требуется 1,5–7 ГБ хранилища. Ошибки загрузки моделей — среди наиболее частых проблем поддержки.
Пользовательские распознаватели: 8–16 часов. Стандартный набор покрывает около 40 типов сущностей, преимущественно американских идентификаторов. Европейским командам нужны национальные идентификаторы стран ЕС. Медицинским командам — форматы медицинских карт. Каждый тип требует кода на Python, настройки YAML и тестирования.
Настройка API: 4–8 часов. Производственная конфигурация включает тайм-ауты, авторизацию, ограничение запросов и логирование. Официальная документация скудна. Большинство команд находит ответы в issue-тредах GitHub.
Журнал аудита: 4–8 часов. GDPR требует ведения записей об обработке данных. В инструменте нет журнала аудита по умолчанию. Командам приходится писать его как пользовательский код.
Документация для команды: 4–8 часов.
Итого первоначальная настройка: 28–52 часа по €100/час = €2 800–5 200.
Ежегодные расходы на обслуживание
Инструмент обновляется 2–4 раза в год. Крупные релизы ломали API. Поспевать за обновлениями означает отслеживать изменения, тестировать в staging-среде и выкатывать в продакшн.
Обновления моделей spaCy тоже добавляют работы. Новые версии моделей нужно заново загружать и проверять точность перед запуском в работу.
Конфликты зависимостей Python не прекращаются. Чистая установка сегодня может сломаться, когда в следующем месяце выйдет патч безопасности.
Мониторинг — постоянная задача. Состояние контейнеров, утечки памяти и процедуры перезапуска требуют регулярного внимания. Модели spaCy требовательны к памяти.
Итого ежегодное обслуживание: 60–120 часов по €100/час = €6 000–12 000.
Реальный кейс
Команда комплаенс страховой компании решила обрабатывать документы по страховым случаям. В её составе — два младших инженера по данным без поддержки DevOps.
Неделя 1. Два основных контейнера не взаимодействовали. Три дня на исправление при помощи GitHub.
Неделя 2. Модели не загружались в продакшне. Конфигурация памяти отличалась от dev-среды. Два дня на диагностику, ещё один — на исправление.
Неделя 3. Правило для британского National Insurance Number работало в тестах, но давало ложные срабатывания на реальных документах. Ещё два дня настройки.
Неделя 4. Проект эскалировали. Потрачено три инженерных недели. В продакшн так и не запущено.
Затем команда попробовала anonym.legal. Первый документ обработан через 12 минут после регистрации. Обнаружение британского National Insurance Number было уже встроено. Никакой настройки не потребовалось.
Команда перешла на тарифный план anonym.legal Professional за €180 в год.
Совокупная стоимость владения за первый год:
- Самостоятельный путь — ещё 40–80 часов для завершения, затем €6 000–12 000 в год на обслуживание. Итого: €10 000–20 000.
- anonym.legal Professional — €180 в год. Время развёртывания: ~12 минут.
- Сэкономленные инженерные часы: ~132 в год по €100/час = €13 200.
Разница в затратах за первый год — 70-кратная.
Для команд, также сталкивающихся с проблемами ложных срабатываний, — см. нашу статью о проблеме точности Presidio.
Когда самостоятельное развёртывание оправдано
Для большинства команд управляемый SaaS выгоднее. Но самостоятельное развёртывание подходит в ряде случаев.
Суверенитет данных. Некоторые правила или договоры запрещают передачу данных за пределы определённой территории. Наше настольное приложение (anonym.plus) работает полностью в офлайн-режиме. Данные не покидают устройство. Та же точность, никакого сервера.
Очень высокие объёмы. Миллионы API-вызовов в день могут сделать пообращенческое ценообразование дороже серверных затрат. При таком масштабе владение стеком имеет смысл.
Интеграция в продукт. Если вы встраиваете обнаружение персональных данных в собственный продукт и вам нужен полный контроль — пользовательская работа с открытым исходным кодом обоснована.
Существующий DevOps. Команды с выделенной платформенной командой, уже обслуживающей множество сервисов, несут меньшие дополнительные расходы. Инфраструктура для них — неизменные издержки.
Для всех остальных — команд комплаенс, стартапов, команд без DevOps — управляемый SaaS очевидно предпочтительнее. О том, как облачная обработка отвечает корпоративным требованиям, — в нашем обзоре безопасности и соответствия.
Заключение
Инструменты с открытым исходным кодом несут расходы, не отражённые в лицензии. Для этого типа инструментов основные расходы — инженерное время. Настройка: 40–80 часов. Ежегодное обслуживание: 60–120 часов. По стандартным ставкам самостоятельный путь обходится в 20–75 раз дороже управляемого сервиса.
Правильный вопрос звучит не так: «Сколько стоит программное обеспечение?» Правильный вопрос: «Сколько стоит его эксплуатация?» Для большинства команд ответ указывает на управляемый SaaS.
Источники
Microsoft Presidio GitHub: Issues и документация по установке. VERIFIED-EXTERNAL.
Ploomber: Руководство по развёртыванию Presidio в продакшне. VERIFIED-EXTERNAL.
GDPR, статья 32: Технические меры обеспечения надлежащей безопасности. VERIFIED-EXTERNAL.