Вы знаете, о том, что MongoDB является «веб-масштабируемой», о потере данных, о том, что она непротиворечива только в конечном итоге и так далее.
Другие заявления в значительной степени были неверными с того дня, как они были написаны. Например, MongoDB всегда была строго согласованной. Утверждения, которые имели некоторое подобие правды, устаревают с каждым выпуском MongoDB.
Как отмечает старший защитник разработчиков Марк Смит, «все, что вы знаете о MongoDB, неверно».
Тем не менее, стоит проверить наши предположения. Например, в течение многих лет нам говорили, что предприятия не могут заменить Oracle Database или SQL Server на PostgreSQL. Для многих рабочих нагрузок это просто неверно сегодня и почти наверняка не было так «верно» раньше, как некоторые хотели бы заставить нас думать.
Хотя у PostgreSQL всегда было большое сообщество, у него также был хор критиков. Между тем, у каждого крупного поставщика облачных услуг есть служба базы данных PostgreSQL. Идя дальше, в 2021 году AWS запустила Babelfish, проект с открытым исходным кодом, который упрощает добавление PostgreSQL в приложения, написанные для SQL Server.
Точно так же есть причина, по которой каждый крупный облачный провайдер предлагает MongoDB в той или иной форме, и что база данных была загружена больше раз за последние 12 месяцев, чем за предыдущие 12 лет вместе взятых (всего 265 миллионов загрузок на сегодняшний день).
И PostgreSQL, и MongoDB добились значительного роста популярности по сравнению с Oracle и SQL Server. MongoDB теперь лидирует в отрасли в области безопасности, учитывая выпуск Queryable Encryption.
Компания всегда была любимицей разработчиков из-за ее удобства, но примерно в это же время MongoDB объявила о приобретении WiredTiger, что проложило путь к управлению параллелизмом и сжатию на уровне документов, начиная с MongoDB 3.0 (WiredTiger в качестве опции) и развиваясь с помощью MongoDB 3.2 (WiredTiger по умолчанию).
Большая часть работы по глубокой интеграции WiredTiger в MongoDB была выполнена в 2015 году, что обеспечило стабильный барабанный бой улучшений базы данных на следующие несколько лет, а один из моих абсолютных фаворитов — многодокументные ACID-транзакции — появился в MongoDB 4.0.
Как соучредитель MongoDB Элиот Горовиц иронично написал в 2018 году, «MongoDB отказывается от ACID», и после этого мир MongoDB уже никогда не был прежним. В MongoDB 5.0 компания представила версионный API, который позволил разработчикам обновлять базу данных без необходимости менять свое приложение, функциональные возможности временных рядов, новое бессерверное предложение, динамическое разделение и многое другое.
Совсем недавно на MongoDB World компания объявила о ряде вещей, облегчающих жизнь разработчикам: Atlas Data API, бессерверные экземпляры, Atlas CLI и многое другое. Для меня два самых интересных тематических анонса были в сферах аналитики и безопасности. О, и с открытым исходным кодом.
Аналитика в мире MongoDB позволяет разработчикам создавать более качественные приложения, а не аналитикам данных, выполняющим анализ в автономном режиме. В современном мире потребность в представлении о бизнесе в режиме реального времени подталкивает анализ данных и потребности в отчетности ближе к приложениям, которые генерируют данные.
MongoDB четко осознала эту растущую потребность и объявила о нескольких новых способах упростить выполнение аналитики операционных данных, включая новый интерфейс SQL, уровни узлов Atlas Analytics, федерацию данных Atlas и озеро данных Atlas.
Тем не менее, меня поражает, что ключевым объявлением компании в области применения аналитики к данным в реальном времени было индексирование Columnstore. Поскольку столбцовые форматы идеально подходят для выполнения аналитических рабочих нагрузок, этот вариант индексирования позволяет разработчикам легко хранить документы в правильной модели для своих приложений, не перемещая данные, и выполнять эффективные аналитические запросы к этим данным в реальном времени для своих приложений.
Если все это стало неожиданностью для тех, кто придерживается мнения, что MongoDB — это веб-масштаб, то Queryable Encryption — еще больший шок.
Ничто из того, что выпускает MongoDB (или любая другая компания, занимающаяся базами данных), не было бы очень полезным, если бы оно не могло сопоставить функции и функциональность с безопасностью. MongoDB уже давно предлагает превосходную безопасность, но введение структурированного шифрования для шифрования на уровне полей выводит ситуацию на новый уровень. Большинство баз данных выяснили, как защитить данные в состоянии покоя или в движении, но не могут защитить данные во время использования, когда они уязвимы для внутреннего доступа и активных нарушений базы данных. Введите шифрование на уровне поля.
Шифрование на уровне полей защищает данные в памяти и на диске сервера. Это самый высокий уровень защиты от взломов, но у него есть и обратная сторона: он не позволяет выполнять богатые, выразительные запросы к зашифрованным данным. Да, вы можете найти точное равенство, но вы должны использовать детерминированное шифрование.
Исследователи работают над этой проблемой с 2001 года, но на этой неделе MongoDB анонсировала первую в истории коммерчески доступную структурированную модель шифрования под названием Queryable Encryption. Благодаря такому структурированному шифрованию MongoDB может преобразовать зашифрованное поле криптографически безопасным способом, чтобы он мог хранить анонимные метаданные, позволяющие выполнять выразительные и эффективные запросы. Например, структурированное шифрование позволяет разработчику создать банковское приложение, которое может находить транзакции, используя диапазон дат или суммы в долларах, для расследования мошенничества.
Это лучший в отрасли материал, который не оставляет позади сообщество разработчиков MongoDB. Короче говоря, использование Queryable Encryption в MongoDB помогает разработчикам сосредоточиться на создании привлекательных приложений, управляемых данными, при этом решая самые сложные проблемы конфиденциальности данных в отрасли. Не требуется докторская степень в области криптографии.
Это было бы интересно само по себе, но MongoDB заняла особенно примечательную позицию с Queryable Encryption: она будет открыта на 100%. Как заявил Портер в своем выступлении: «Мы будем публиковать код, алгоритмы и математику, лежащие в их основе, потому что мы верим в безопасность белого ящика, а не в безопасность черного ящика».
Это может стать сюрпризом для тех, кто до сих пор придирается к изменению лицензии MongoDB в 2019 году. (Разработчики, похоже, не возражают, учитывая более высокие приоритеты.) Но это не должно быть. MongoDB является участником Apache Lucene, выпускает WiredTiger под лицензией с открытым исходным кодом, а также предлагает свое мобильное хранилище данных Realm с открытым исходным кодом.
Расписывать компании в бинарном виде легко, но обычно это неправильно, как в данном случае.
Все это — длинный способ сказать, что, возможно, пришло время нажать «обновить» ваши взгляды на MongoDB. Нет, это не будет подходящей платформой данных для всех ваших рабочих нагрузок. Ничего. Но лучше принимать это решение, основываясь на текущей реальности, а не на устаревших мифах.
MongoDB, разработка, базы данных