Прошло почти десять лет с тех пор, как Марк Андриссен заявил, что «программное обеспечение пожирает мир». Мы говорили об этом много лет, но недавно увидели это своими глазами.

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

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

Новая революция данных

Революция DevOps расширила возможности разработчиков и вызвала «сдвиг влево», который сосредоточился на предотвращении проблем, а также породил новое поколение инструментов, таких как GitHub, Jenkins, CircleCI, Gerrit и Gradle, которые позволили конечным пользователям поставлять программное обеспечение. Какие сравнительные инструменты у нас есть для данных? Какие усовершенствованные процессы у нас есть?

Добро пожаловать в эру данных как кода (DaC).

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

Он основан на многих тех же возможностях, на которые опираются гибкие методологии разработки программного обеспечения, в том числе:

  • Программное управление
  • Непрерывная интеграция
  • Непрерывное развертывание
  • Управление версиями
  • Упаковка
  • Клонирование и ветвление
  • Сравнение и слияние
  • Прослеживаемость и родословная
  • Мобильность и доступ в любом месте
  • Управляется конечным пользователем
  • Распределенное сотрудничество

Сегодня данные по-прежнему в основном хранятся в разрозненных хранилищах. Некоторые из этих хранилищ являются монолитными, а некоторые — распределенными, но они все равно остаются хранилищами. Пока мы совершенствуемся в подключении систем через API, мы добавили целые команды DataOps, чья работа заключается в управлении конвейером данных вместе с пользователем данных. Как бы мы ни старались «оживить это», мы все еще делаем ETL (извлечение, преобразование и загрузка). Даже с новой эрой, распределенными озерами данных в облаке, это все еще очень похоже на старый высокопроизводительный массив, собирающий пыль в центре обработки данных: вы просто не можете удалить данные из него.

Внедрение DevOps в данные

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

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

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

Но что происходит, когда разработчику или владельцу приложения нужны данные? Они запрашивают данные у группы DataOps или у владельца хостингового приложения. Что происходит, когда им нужно поделиться этими данными с коллегами или перенести их между облаками? Они ждут, когда им помогут инженеры DevOps. Что происходит, когда они хотят синхронизировать свои наборы данных на протяжении жизненного цикла? Они ждут, когда им помогут инженеры DevOps.

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

Здесь мы видим, что, хотя программное обеспечение действительно пожирает мир, данные — это супер-еда, и никто не поливал огород.

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

Arrikto позволяет использовать данные как код

Arrikto делает с данными то же, что DevOps сделал с разработкой программного обеспечения. Помните тот список основных возможностей DevOps, который мы описали выше? Мы делаем это возможным для данных уже сегодня.

Программное управление

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

Непрерывная интеграция и непрерывное развертывание

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

Управление версиями

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

Упаковка

Данные не просто живут в одном месте сами по себе. Ему нужна мобильность и переносимость между системами. Подобно тому, как контейнеры Docker предоставляют простой стандартизированный формат для упаковки программного кода и библиотек, данные нуждаются в аналогичном формате упаковки.

Клонирование и ветвление

Мы знакомы с концепцией множественных копий и ветвей кода программного обеспечения и используем ее в целях совместной работы, инноваций и изменений. К данным предъявляются аналогичные требования, поскольку мы масштабируем сотрудничество между одноранговыми узлами и приложениями. Это особенно необходимо, поскольку мы внедряем процесс CI/CD для повышения качества данных.

Сравнение и слияние

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

Прослеживаемость и родословная

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

Мобильность и доступ в любом месте

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

Управляется конечным пользователем

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

Распределенное сотрудничество

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

Демократизация данных

Мы еще больше демократизируем управление данными в стеке приложений с помощью платформы управления данными Rok. Замечательно, что инженеры DevOps и инженеры по надежности сайтов (SRE) больше не должны полагаться на рабочие процессы на основе ITIL в стиле запрос-ожидание для администраторов инфраструктуры, но что было бы еще лучше, так это то, что фактический пользователь данных берет на себя управление.

В мире науки о данных это именно то, что мы делаем. Мы начали с Kubeflow в Kubernetes в качестве платформы для обработки данных и конвейеров машинного обучения, и мы расширяем ее на всю экосистему данных Kubernetes.

Почему Кубернетес? Потому что это будущее плоскости управления приложениями.

Почему Аррикто? Потому что мы — будущее плоскости управления данными.

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

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

Эти принципы в равной степени применимы ко всем приложениям с большим объемом данных, и Arrikto работает над тем, чтобы воплотить их в жизнь.

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

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

Первоначально опубликовано на https://www.arrikto.com 12 ноября 2020 г.