Как российскому бизнесу хранить и обрабатывать большие объемы данных в 2024 году

Логотип компании
Как российскому бизнесу хранить и обрабатывать большие объемы данных в 2024 году

Изображение: shutterstockAI

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

Активная цифровизация всех сфер жизни в стране приводит к беспрецедентному росту объемов информации. В ситуации импортозамещения компаниям необходимы эффективные инструменты для работы с большим данными, доступные в России. Вячеслав Максимов, ведущий инженер по программному обеспечению Auto1 Group, имеет опыт разработки в таких проектах, как «Госуслуги», «Азбука вкуса», «М.Видео», а также руководства командой разработки подразделения «Цифровое образование» «Вконтакте», анализирует ситуацию на отечественном рынке в 2024 году и рассказывает, как обеспечить высокую производительность и масштабируемость ПО предприятий и организаций при работе с большими данными.

С какими вызовами сталкивается российский бизнес с точки зрения обработки данных

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

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

Помимо этого, отечественному рынку нужно адаптироваться к уходу части иностранных ИТ-поставщиков из России. Отзыв лицензий западными вендорами – Teradata, Oracle, SAP и другими – вынудил многие компании к экстренной замене их продуктов. Больше половины российских организаций лишились технической поддержки. Компании, работающие с открытым ПО или облачными решениями, пострадали меньше, так как смогли продолжить использовать свои стеки, в отличие организаций, которые вынуждены переходить на новые решения или решать проблемы с инфраструктурой.

Власти России начали процесс импортозамещения в ИТ-сфере еще в 2015-2016 годах. Эта длительная и многоступенчатая процедура изменений в законодательстве направлена на использование российского ПО и оборудования, особенно в государственном секторе. В марте 2022 года вышел указ президента о запрете использования иностранного ПО на объектах критической информационной инфраструктуры. Госкорпорации и компании с госучастием должны перейти на отечественный софт к 2025 году.

Как создать эффективную систему ПО для обработки больших данных

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

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

  1. Для соблюдения законодательства о защите данных рекомендуется использовать решения, которые позволяют хранить данные внутри страны. Или в соответствии с требованиями организаций, предоставляющих облачные услуги, строить собственные дата-центры на территории России.
  2. Важно иметь механизмы резервного копирования и восстановления данных на случай сбоев или атак. Дополнительно следует использовать технологии репликации информации.
  3. Архитектура ПО должна учитывать особенности бизнес-процессов и требования конкретной отрасли или рынка. Создание гибкой и модульной архитектуры, где всё разбито на независимые компоненты — модули, из которых, как из «кирпичиков», строится система. Такая архитектура позволяет оперативно внедрять изменения в бизнес-логику без значительного влияния на другие компоненты системы. 
  4. Важно предусмотреть возможность интеграции с государственными информационными системами и сервисами для соблюдения требований регулирования и отчетности.
  5.  Для непрерывной работы и продуктивной обработки больших объемов данных архитектура должна иметь возможность масштабироваться и обеспечивать высокую доступность сервисов. Повысить доступность и отказоустойчивость ПО поможет развертывание системы на распределенной инфраструктуре с использованием облачных сервисов. Такая инфраструктура – это цифровая информационная среда, функциональные объекты которой при взаимодействии с управляющими компьютерами разбиваются по согласованным каналам в соответствии с заложенным алгоритмом.
  6. При проектировании архитектуры нужно принимать во внимание доступность технологий в России, чтобы обеспечить оптимальную производительность и не столкнуться с ограничениями при дальнейшем внедрении и поддержке решения.

Какие технологии и инструменты подойдут для проектирования архитектуры больших данных

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

Рассмотрим варианты от некоторых зарубежных и российских компаний-разработчиков, доступные в России.

Распределенные вычислительные системы

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

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

Apache Spark предлагает более высокую производительность для задач, которые требуют быстрой обработки и анализа данных в режиме реального времени, включая обработку потоковых данных и машинное обучение. В этом фреймворке используются методика обработки в памяти, ленивые вычисления и RDD для повышения скорости и отказоустойчивости.

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

Системы хранения данных

Кроме известных Postgresql/Mysql и MongoDb, существуют и отечественные разработки, которые надлежит рассмотреть в зависимости от требований при построении системы.

Yandex Database – распределенная, отказоустойчивая система управления базами данных от «Яндекса», поддерживающая реляционные и NoSQL-решения.

YandexDb – альтернатива существующим решениям, когда необходима поддержка ACID-транзакций между таблицами с неравномерной временной нагрузкой. Она используется для обработки и хранения больших объемов данных, а также для продуктов с ожидаемо высокой нагрузкой и требованием строгой консистентности уже на стадии дизайна. Система также подходит в качестве бэкенда для баз данных с непредсказуемой нагрузкой.

Tarantool – высокопроизводительная NoSql база данных, разработанная VK. Она способна обрабатывать до 1 млн запросов в секунду благодаря выполнению вычислений в оперативной памяти. Tarantool играет роль промежуточного слоя между ядром системы и пользовательскими сервисами, что повышает скорость и снижает общую нагрузку. Платформа подходит для высоконагруженных проектов, заменяя реляционные базы данных и улучшая производительность в сценариях OLTP. Также она предоставляет функции обработки потоков событий, быстрые брокеры очередей, отказоустойчивость, поддержку ACID-транзакций и шифрование данных.

ClickHouse – открытая колоночная высокопроизводительная система управления базами данных, оптимизированная для аналитических запросов на больших структурированных данных в реальном времени. Она предлагает широкий набор опций, включая массивы и вложенные структуры данных, агрегатные функции, приблизительные вычисления, работу с Apache Kafka и др. ClickHouse оптимизирована для хранения данных на жестких дисках и может быть развернута на кластере для обеспечения отказоустойчивости и масштабируемости. Для работы с ней доступны различные клиенты и драйверы.

Облачные платформы

Тут следует обратить внимание на «Яндекс.Облако» и VK Cloud Solutions.

«Яндекс.Облако» – это платформа, предлагающая доступ более чем к 50 облачным сервисам. Они помогают с различными аспектами, включая создание цифровых сервисов и автоматизацию бизнес-процессов. Привлекательность «Яндекс.Облака» для бизнеса заключается в возможности быстрой реализации идей, доступе к уникальным технологиям и минимизации затрат на ИТ-инфраструктуру.

VK Cloud Solutions предлагает инфраструктурные и платформенные сервисы и предоставляет услуги обработки данных. Это часть портфеля решений VK Tech. Одним из ключевых сервисов VK Cloud является Cloud Spark, созданный на технологиях Apache Spark и Kubernetes.

Cloud Spark обеспечивает обработку данных из разных источников, таких как S3, ClickHouse, Kafka и др., с автоматическим масштабированием Kubernetes в зависимости от нагрузки, что позволяет существенно сократить затраты на вычислительные ресурсы. Кроме того, сервис обеспечивает оперативный доступ к данным для аналитики и машинного обучения через SQL-запросы и встроенную библиотеку Mllib, а управление им можно осуществлять из различных окружений. Обеспечение работоспособности и администрирование Cloud Spark осуществляется платформой VK Cloud, что позволяет компаниям сосредоточиться на бизнес-задачах, минуя административную рутину.

Комплексные решения

«1С:Предприятие» – программа для автоматизации бизнес-процессов в корпоративной среде, в том числе сбора, обработки и аналитики больших объемов данных. Она включает в себя различные решения, такие как бухгалтерский и управленческий учет, управление персоналом и многое другое. У «1С» гибкие возможности для настройки и интеграции в различные бизнес-процессы. Программа также помогает ведению отчетности и регламентированного учета в соответствии с требованиями законодательства.

В «1С» существуют типовые и нетиповые конфигурации, предназначенные для решения различных задач. Типовые конфигурации, созданные самой компанией, предлагают универсальные решения, такие как «1С:Бухгалтерия». Нетиповые конфигурации, разработанные партнерами, имеют узкую специализацию, как, например, «1С:Молокозавод». Эти решения могут быть настроены под индивидуальные потребности компании. Единая платформа позволяет выбирать оптимальные варианты автоматизации, обеспечивая выгоду, быструю интеграцию, унифицированное обучение и упрощенное администрирование.

Системы для обработки и анализа информации

Apache Kafka – платформа для построения реальных потоковых данных с быстрой передачей информации между системами. Известна своей пропускной способностью, масштабируемостью и надежностью, что делает ее эффективным инструментом в различных областях ИТ-индустрии. Широко применяется в компаниях, работающих с большими объёмами данных, используется для связи микросервисов и ведения журнала событий. Открытый исходный код платформы имеет ряд преимуществ благодаря свободной лицензии, включая доступ к обширной документации и поддержке от сообщества разработчиков. Apache Kafka обеспечивает безопасность данных, долговечность хранения и хорошую интегрируемость с другими протоколами передачи информации.

Elasticsearch – одна из самых популярных поисковых систем на основе сводной библиотеки Lucene, предлагающая быстрый поиск, агрегацию и анализ текстовых данных в реальном времени. Это открытая система, основанная на Apache Lucene. Основные направления применения включают поиск, в том числе интеллектуальный, индексацию, лог-анализ, мониторинг и метрики, рекомендательные системы. Elasticsearch используется крупными интернет-порталами, в электронной коммерции, медицинских организациях, системах мониторинга и логирования, в финансовых учреждениях, стриминговых сервисах и многих других проектах. Система обладает высокой производительностью, масштабируемостью и отказоустойчивостью, а также предоставляет гибкий язык запросов и полнотекстовый поиск.

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

Визуализация данных

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

Apache Superset – это мощный инструмент для визуализации данных и бизнес-аналитики, обеспечивающий широкие возможности по созданию динамических и интерактивных дашбордов, а также поддерживающий различные источники данных, включая базы данных, хранилища данных и API. Применение SQL Templating с помощью Jinja и Python обеспечивает возможность конструирования запросов любой степени сложности при помощи макросов.

Metabase – это простой в использовании инструмент для анализа данных и создания отчетов, предоставляющий пользователю возможность легко подключаться к различным источникам данных, строить визуализации без глубоких знаний SQL и делиться результатами с коллегами. Существует генерация автоматизированных отчетов.

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

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

Библиотеки для задач по машинному обучению

TensorFlow – библиотека, созданная для языка программирования Python. Используется для обучения ИИ, а также в таких задачах, как распознавание естественного языка и изображений, классификация и кластеризация данных. Основное применение TensorFlow – работа с нейросетями, включая обычные и глубокие, такие как рекуррентные и сверточные. Основные преимущества библиотеки – высокий уровень абстракции, интерактивная разработка, гибкость, кроссплатформенность и большое сообщество пользователей. Недостатки – высокое потребление памяти и сложность в изучении.

PyTorch – библиотека машинного обучения, а также для языка Python, разработанная Facebook's AI Research lab (FAIR). Предоставляет гибкие инструменты для создания и обучения глубоких нейронных сетей. PyTorch стала популярным выбором среди исследователей и разработчиков благодаря простоте использования, динамическому вычислению графа, а также хорошей поддержке GPU. Важными особенностями PyTorch являются модульность, поддержка динамических графов, автоматическое дифференцирование (Autograd), а также широкий выбор предварительно обученных моделей и инструментов для разработки и экспериментирования с нейронными сетями.

Графические процессоры для параллельной обработки данных, несомненно, позволяют ускорить выполнение вычислений в различных областях, включая машинное обучение и анализ больших данных.

Как адаптировать ПО к высокой производительности и масштабируемости. Пошаговый план

  1. Сначала нужно понять текущие и будущие потребности системы. Начните с глубокого анализа требований. Это поможет увидеть, какие объемы данных вас ожидают и какие операции будут наиболее критичны.
  2. Следующим шагом станет выбор подходящей архитектуры, где микросервисы часто становятся подходящим решением за счет их гибкости и возможности независимого масштабирования. Ключевое внимание уделяется также выбору баз данных — реляционных или NoSQL, в зависимости от специфики задач и типов обрабатываемых данных. Проводите постепенное внедрение новой архитектуры.
  3. На этом этапе важно реализовать эффективные механизмы кэширования и асинхронной обработки данных, чтобы максимально сократить задержки и ускорить обработку запросов. И, конечно, нельзя обойти стороной автоматическое масштабирование, которое позволяет системе гибко реагировать на изменения нагрузки, а также постоянный мониторинг и профилирование для улучшения производительности.

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

В заключение

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

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

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

Выбор конкретных технологий и инструментов зависит от специфических потребностей и целей бизнеса, а также от объемов и типов обрабатываемой информации. Важно также учитывать интеграцию новых инструментов с уже существующими инфраструктурой и системами.

Опубликовано 22.05.2024

Похожие статьи