Microsoft ведет хитроумную деятельность в мире данных. С одной стороны, у нее имеется 25-летнее наследие бизнеса локально устанавливаемой реляционной СУБД, каковой является SQL Server, и компании надо поддерживать этот прибыльный бизнес в востребованном и стабильном состоянии. С другой стороны, поскольку компания разворачивается к облаку, ей надо иметь предложения по линии технологий реляционной OLTP (онлайновой обработки транзакций), хранилищ данных, NoSQL, больших данных и машинного обучения. И ей также необходимо, чтобы все это было убедительным и могло конкурировать с предложениями многочисленных стартапов в мире данных и аналитики.

И тогда пришла Strata...

Microsoft также требуется делать всю эту технологию доступной для разработчиков, включая не только свою базовую аудиторию .NET-разработчиков, но и тех, кто работает с Java, Node/JavaScript, Python и множеством других платформ программирования. Это отнюдь не простое дело, которое требует умения балансировать и искусной стратегии. И то, и другое было продемонстрировано на состоявшейся в марте конференции Strata + Hadoop World в Сан-Хосе (шт. Калифорния), где Microsoft сделала ряд объявлений, связанных с миром данных.

Находятся ли вещи, представленные Microsoft на Strata, на уровне стоящих перед компанией трудных вызовов? Давайте их рассмотрим и попытаемся над этим поразмыслить.

Обновления Hortonworks будут дебютировать в облаке через HDInsight

Для начала взглянем на HDInsight, базовое облачное Hadoop/Spark-предложение компании для работы с большими данными. Во-первых, Microsoft объявила, что новые релизы Hadoop-дистрибутива Hortonworks Data Platform (HDP), на котором базируется HDInsight, теперь станут включаться в HDInsight до того, как Hortonworks будет их выпускать на рынок локальных инсталляций Hadoop. Этот процесс уже запущен включением HDP 2.6 в HDInsight, и это кардинальная перемена по сравнению с временами, когда HDInsight использовал HDP в прошлой или позапрошлой версии.

Вместе с HDP 2.6 в HDInsight теперь войдет и Spark 2.1. И поскольку SLA-соглашения для HDInsight обещают 99.9% времени безотказной работы, Microsoft говорит, что ее предложение является единственным сервисом Spark 2.1 со столь высокими гарантиями безотказности. Добавим, что этот релиз HDInsight также включает Apache Kafka, а еще и интеграцию с Spark Structured Streaming/Kafka. Наряду с этим Microsoft предоставляет интеграцию между Spark и своей собственной стриминговой платформой Azure Event Hubs.

Безопасность и веб-ноутбуки

Построение HDInsight на базе HDP 2.6 означает, что функционал ролевого контроля доступа Apache Ranger теперь распространяется как на Hive LLAP («Live Long and Process»), так и на Spark. Это же относится и к веб-ноутбукам Apache Zeppelin, которые популярны среди специалистов по изучению данных. LLAP — иногда именуемый Microsoft как «интерактивный Hive» — конкурирует в терминах производительности со Spark SQL, и Microsoft внесла в это свой вклад. Так что неудивительно, что компания заинтересована, чтобы пользователи Zeppelin имели доступ к обеим платформам SQL на Hadoop.

Microsoft, со времени своей покупки компании Revolution Analytics, является также поборником языка R. И для полноты надо добавить, что Jupyter, другая крупная платформа веб-ноутбука для изучения данных, теперь имеет доступ к версиям R Server для HDInsight на кластерах, которые под это сконфигурированы.

Внешняя интеграция

Однако имеется масса разработчиков помимо мира веб-ноутбуков Zeppelin/Jupyter, и Microsoft тоже надо быть с ними в контакте. Компания и тут не дает поводов для разочарования, так как теперь предлагает инструментарий HDInsight для собственной IDE (интегрированной среды разработки) Visual Studio, как и для IDE с открытым исходным кодом Eclipse и IntelliJ.

А как насчет продуктов, созданных на стороне? Все в порядке, и продукты Dataiku и H20.ai теперь могут предоставляться в тандеме при выделении кластеров HDInsight, пополняя Cask, StreamSets и Datameer в клубе вендоров, поддерживающих такую интеграцию с HDInsight. Кроме этого, Microsoft Power BI, а также его конкуренты Tableau, Qlik и SAP Lumira теперь являются поддерживаемыми клиентами для запросов к Spark на HDInsight.

Промежуточные выводы

Хотя мы обсудили еще не все объявления компании, давайте пока подведем итоги по совокупности той новой информации Microsoft, о которой мы уже рассказали. Компания продолжает модернизировать свою платформу Hadoop, продвигаясь за рамки того, что имеется в ее локальном варианте. Сюда входят и SLA корпоративного уровня, и поддержка веб-ноутбуков для изучения данных со Spark, Hive LLAP и R, и тесная интеграция инструментов для разработчиков, и интеграция со сторонними продуктами для изучения данных и BI.

Это вмещает в себя интересы потребителей разного профиля: экспертов по большим данным, специалистов по изучению данных, корпоративных ИТ-организаций и корпоративных разработчиков. Компания вовлекает в свою орбиту много технологических «субкультур», стремясь ими управлять и, в каком-то смысле, их объединять. И это в точности то, что требуется Microsoft для прогресса по всем фронтам.

На службе SQL...

А что можно сказать про мир баз данных, и NoSQL, и реляционных? Это тоже значится в графиках работы. Во-первых, Microsoft выпустила предварительный вариант Community Technology Preview (CTP) 1.4 будущей версии SQL Server (пока известной лишь брендом «vNext»). Это версия, которой предстоит работать под Linux, как и под Windows, и CTP имеется для обеих платформ. И не стоит забывать, что SQL Server включает технологии типа PolyBase и R Server, которые связывают эту СУБД с миром обработки больших данных и изучения данных.

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

...и NoSQL

В этом духе Microsoft разработала нативную интеграцию между Spark (в HDInsight, как и в других дистрибутивах) и собственной NoSQL-СУБД, называющейся DocumentDB. Ее обеспечивает Spark Connector for DocumentDB, работая нетривиальным образом: коннектор поддерживает метод «predicate push-down», означающий, что когда Spark делает запрос к DocumentDB, он также делегирует самой DocDB как можно больше работы по исполнению этого запроса. Это максимизирует эффективность и минимизирует перемещение данных. Я знаком со сравнением запросов от Spark к DocDB, исполняемых с predicate pushdown и без этого, и, поверьте мне, это также способствует производительности.

Хотя DocumentDB и является собственной NoSQL-СУБД Microsoft, возможности подключения к Spark открывают ее во внешний мир. То же самое делает и ее совместимость с MongoDB API, позволяющая ей функционировать как замещение MongoDB, совместимое с написанными для последней приложениями. Учитывая популярность Mongo у разработчиков, это можно рассматривать как еще одну инициативу по охвату разработчиков и еще один пример стремления Microsoft обслуживать как можно больше экосистем данных и аналитики.

Ничто хорошее не бывает безнаказанным?

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

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

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