Какие есть варианты обмена данными между заказчиком и внутренним контуром компании?
Что проверяют
Умеете ли вы спроектировать интеграцию через границу безопасности, а не просто назвать протоколы. Внутренний контур обычно закрыт и прямой доступ снаружи запрещён, поэтому ждут разговора про буферную зону, объёмы, частоту и контроль данных. Следом часто спрашивают, как гарантировать, что файл или сообщение не потерялось и не обработалось дважды.
Как отвечать
Сначала уточните объём, частоту (раз в сутки или поток), направление, наличие персональных данных и то, кто инициирует обмен. От этого зависит выбор:
- файлы через DMZ: заказчик кладёт данные на SFTP или в S3-совместимое хранилище в буферной зоне, внутренний процесс забирает их сам. Формат Parquet или CSV со строгой схемой, рядом манифест с числом строк и контрольной суммой;
- API: REST или gRPC через шлюз в DMZ с mTLS, лимитами и аудитом. Для небольших объёмов и запросов в реальном времени, например скоринга моделью;
- стриминг: Kafka с топиками в буферной зоне и репликацией внутрь, схема сообщений в Schema Registry (Avro или Protobuf);
- CDC: Debezium читает журнал изменений базы и публикует в Kafka, когда нужна почти онлайн-копия без нагрузки на источник;
- пакетная загрузка: Airflow по расписанию забирает данные, валидирует их (Great Expectations или свои проверки) и грузит в хранилище.
Отдельно проговорите безопасность: шифрование в канале и на диске, обезличивание персональных данных с учётом 152-ФЗ, журнал того, кто и что передал. И надёжность: идемпотентная загрузка по ключу, повторы, подтверждение приёма.
Где спотыкаются
Предлагают прямое подключение к внутренней базе извне. Политика безопасности почти везде это запрещает, и ответ на этом заканчивается.
Не обсуждают контракт данных. Без согласованной схемы и версии формата первый же новый столбец ломает загрузку.
Не думают о повторах. Файл, забранный дважды, без идемпотентности даёт дубли в витринах и искажает обучающую выборку.