После инвестиций в размере 263 млн долл. первый стартап в сфере облачного хранения данных превратился в настоящего монстра. Snowflake продолжает расширять сферу своей деятельности и предлагает функции межрегионального совместного использования данных, обеспечивая интероперабельность с растущим набором инструментальных средств.
В новом раунде финансирования на развитие проекта Snowflake будет выделено в общей сложности 473 млн долл. при его оценке в 1,5 млрд долл. Компания, основанная в 2012 году, быстро привлекла к себе внимание после того, как занялась разработкой с нуля системы хранения данных для облака. Хранилища такого рода призваны снять ограничения с объема обрабатываемых данных и количества одновременно выполняемых запросов.
Что такое Snowflake?
По сути, продукт Snowflake представляет собой аналитическую реляционную СУБД с массово-параллельной обработкой (massively parallel processing, MPP), которая отвечает требованиям неразрывности, непротиворечивости, изолированности и устойчивости (Atomicity, Consistency, Isolation, Durability, ACID), которые присущи не только базам данных SQL, но и полуструктурированным данным, представленным, например, в формате JSON, где используется произвольный тип данных VARIANT. Объединению SQL с полуструктурированными данными сегодня отводится ключевая роль, поскольку современным предприятиям постоянно приходится сталкиваться с полуструктурированными данными, которые генерируются машинами.
Snowflake позволяет хранить данные самых разных типов
Обладая оригинальной трехуровневой архитектурой, Snowflake может обрабатывать сотни одновременных запросов к петабайтам данных, а пользователи получают присущую облаку стоимостную эффективность и эластичность, позволяющую создавать новые виртуальные хранилища по мере возникновения такой необходимости. Для получения дополнительных ресурсов на условиях самообслуживания достаточно наличия у пользователя кредитной карты, а сама процедура оказывается не сложнее запуска экземпляра AWS EC2.
«Предложение самообслуживания Snowflake on Demand очень заманчиво выглядит для малого и среднего бизнеса, однако Snowflake хорошо позиционирует себя и для крупных оршанизаций, в том числе для банков, переезжающих в облако, – отметил генеральный директор компании Боб Маглиа, ветеран технологической отрасли, который прежде, чем присоединиться в 2014 году к Snowflake, более 20 лет проработал в Microsoft, а затем еще два года в Juniper Networks. – Хранилище данных превращается в одну из главных опорных точек, фундамент, который клиенты также вынуждены переносить в облако. Ведь если хранилище остается на их территории, все прочие многочисленные системы, выстраиваемые вокруг него, будут по-прежнему находиться там же. Стоимостная эффективность облака притягивает даже не испытывающие недостатка в финансовых средствах крупные предприятия и банки. И если у вас есть предприимчивые натуры, которым для реализации их очередной инициативы внезапно понадобится на пару часов тысяча сетевых узлов, они легко смогут их получить и быстро освободить, не платя впоследствии за эти ресурсы на протяжении всех 365 дней в году».
Архитектура Snowflake
Глобальная экспансия Snowflake
В настоящий момент Snowflake работает на платформе Amazon в четырех регионах: на западе США, на востоке США, во Франкфурте (Германия) и в Сиднее (Австралия). Через несколько недель планируется открытие филиала еще в одном европейском регионе. Новые капиталовложения помогут компании в течение ближайшего года закрепиться в Азии и Южной Америке. Примерно в эти же сроки в Snowflake намерены решить еще несколько задач.
- Предложить межрегиональную репликацию данных. В настоящее время хранилище Snowflake Data Sharehouse позволяет клиентам в реальном времени совместно использовать его ресурсы лишь там, где присутствует Amazon. Возможность репликации между континентами откроет двери для прихода глобальных корпораций.
- Охватить еще одного провайдера облачных сервисов. Конкретных компаний Маглиа пока не называет, но речь скорее всего идет о Microsoft Azure. Должна поддерживаться и репликация данных между различными провайдерами.
- Продолжить работу над обеспечением интероперабельности с различными инструментами, используемыми клиентами. Довольно часто клиенты применяют определенные инструменты и надстройки на протяжении многих лет, даже если вендор прекращает их обновлять. Такие компании хотят, чтобы новые системы также работали с уже имеющимися у них средствами.
Усиление конкуренции на рынке облачных хранилищ
В мире есть целый ряд игроков, предлагающих корпоративным заказчиками облачные хранилища. Snowflake приходится конкурировать, в частности, с Microsoft Azure SQL Data Warehouse, Google BigQuery и Cloud SQL – где пользователи могут запускать СУБД Oracle MySQL – а также с собственным хранилищем Amazon RedShift.
Но, по мнению Маглиа, оригинальная архитектура Snowflake обеспечивает этому решению преимущества перед традиционными SQL-базами данных в части масштабируемости даже при работе в облаке. Кроме того, в отличие от альтернативных вариантов noSQL (например, от Hadoop) это хранилище не требует каких-то специальных знаний и переподготовки персонала.
Большинство традиционных СУБД, а также RedShift и многие системы noSQL используют неразделяемую архитектуру, в которой подмножества данных распределяются между всеми вычислительными узлами системы, что исключает появление при организации связи узких мест, присущих системам с разделяемыми дисками. Но проблема заключается в том, что вычислительные ресурсы нельзя масштабировать отдельно от ресурсов хранения, и мощности многих систем становятся избыточными. Кроме того, независимо от числа добавленных процессоров, количество одновременно обрабатываемых запросов все равно ограничено объемом имеющейся оперативной памяти.
«Клиенты сталкиваются сегодня с тем, что мощностей развернутой на их собственной ИТ-инфраструктуре системы оказывается недостаточно, она перегружена, – пояснил Маглиа. – При этом у них есть возможность перехода в облако, и они намерены использовать ее, чтобы освободиться от текущих ограничений».
Архитектура Snowflake физически разделяет и логически интегрирует вычисления, хранение и сервисы
Хранилище Snowflake проектировалось в расчете на решение этой задачи в опоре на трехуровневую архитектуру:
- уровень хранения данных использует мощности Amazon S3 для размещения данных таблиц и результатов выполнения запросов;
- уровень виртуального хранилища управляет выполнением запросов в эластичных кластерах виртуальных машин, которые в Snowflake называются виртуальными хранилищами;
- уровень облачных сервисов осуществляет управление транзакциями, запросами, виртуальными хранилищами, метаданными, в том числе схемами баз данных, и доступом.
Архитектура позволяет множеству виртуальных хранилищ одновременно обрабатывать одни и те же данные, благодаря чему по масштабируемости параллелизма Snowflake значительно опережает своих конкурентов, не использующих разделяемые ресурсы.
Одна из потенциальных проблем связана с тем, что использование трехуровневой архитектуры может приводить к задержкам, но производительность, по словам Маглиа, можно поддерживать с помощью компилятора запросов, который функционирует на уровне сервисов и анализирует предикаты SQL-запроса вместе с метаданными, определяя таким образом данные для сканирования. «Цель заключается в том, чтобы сканировать как можно меньше данных», – пояснил он.
При этом следует помнить, что Snowflake не относится к категории продуктов, ориентированных на оперативную обработку транзакций (OLTP), и соперничать с Oracle и Microsoft SQL Server может только при решении аналитических по своей природе задач.
Между тем, разработчики уже видят перед собой новые горизонты. «Глобальным компаниям очень выгодно иметь глобальные базы данных, и именно в этом направлении мы намерены развиваться», – указал Маглиа.
Последнюю порцию инвестиций компания Snowflake получила от фондов ICONIQ Capital, Altimeter Capital и впервые вошедшего в ее капитал фонда Sequoia Capital.