X

Блог Oracle в России и СНГ

От ориентации на программный код к ориентации на данные

Автор: Луиджи Скаппин

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

Некоторые определения

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

В архитектуре, ориентированной на код, семантика данных встроена и находится в коде приложений, тогда как в архитектуре, ориентированной на данные, семантика данных управляется как основной актив вместе с данными, независимо от кода приложений.

Историческая перспектива

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

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

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

Озеро данных еще не означает использование подхода с ориентацией на данные

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

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

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

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

Как создать платформу данных для компании, ориентированной на данные?

Чтобы стать ориентированной на данные компанией, нужно создать платформу данных, содержащую все данные и семантику, не только для «понимания» данных, но и для «работы» с ними.

В целом, это означает, что платформа данных должна:

1. Иметь возможность обрабатывать данные и семантику любого типа.

2. Не только запрашивать, но и обновлять данные в реальном времени.

3. Быть отделена от приложений через логический интерфейс.

4. Быть высоконадежной, доступной и масштабированной и обеспечивать согласованность.

Иметь возможность обрабатывать данные и семантику любого типа означает как минимум способность управлять всеми типами и моделями данных, включая реляционные, JSON, XML, графические, пространственные, OLAP и т. д., обеспечивая корреляцию данных с разными моделями данных, чтобы отвечать на такие запросы как, например, «найти всех заказчиков, живущих в радиусе не более Х миль от моих магазинов, с оборотом выше Y $ и атрибутом Z», где X — пространственные данные, Y — реляционные и Z — JSON.

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

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

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

Быть отделенной от приложений через логический интерфейс означает, что приложения могут получить доступ к платформе данных только через четко определенный логический интерфейс, поддерживающий различные способы доступа, такие как REST API, SQL, потоковая передача событий и т. д. Целью предоставления логического интерфейса для всех приложений также является отделение приложений от данных, сохранение логики в коде отдельно от логики данных, что позволяет независимо развиваться как приложениям, так и платформе данных.

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

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

Как стать компанией, ориентированной на данные?

Это нельзя сделать за один раз. Это долгий и постоянный процесс.

Крупные компании не смогут перестроить все с нуля, как это могут сделать стартапы. Большая часть компаний работает с уже имеющимися важными для бизнеса системами — иногда их также называют «унаследованными». В то время как новые современные цифровые приложения разрабатываются как более «гибкие» и «инновационные», с использованием технологий SaaS и Cloud Native.

Я обычно называю это «двойной проблемой» корпораций. С одной стороны, компании должны повышать эффективность и непрерывность бизнеса, снижая при этом затраты и риски. С другой — должны внедрять инновации, разрабатывая новые приложения, чтобы «применять ценность», которая была «извлечена из данных», часто из озера данных, которое обычно и являлось первой попыткой инновации.

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

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

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

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

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

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

Подведем итог

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

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.