Как и почему рутинное обновление Руби гемов менее чем за 1 час создало 475 новых подписок на общую сумму $73.271 долларов.
MongoDB *
Документо-ориентированная система управления БД
Лучшие GUI для MongoDB в 2021 году
MongoDB — это NoSQL-база данных, которую в том или ином виде используют более четверти разработчиков. MongoDB и другие NoSQL-базы данных привлекают своей гибкостью: вместо жесткой схемы и вертикального масштабирования, у вас есть возможность развивать схему постепенно и масштабироваться горизонтально. Компания MongoDB вышла на биржу в 2017 году и сегодня стоит более 17 миллиардов долларов.
Документные базы данных используют вместо реляционных таблиц и столбцов вложенные пары ключ-значение. Одно из преимущество такого подхода в том, что вам не нужно преобразовать данные для взаимодействия с фронтендом — данные уже хранятся в необходимом виде (плюс-минус .map или .reduce).
Работа с MongoDB через командную строку не всегда удобна, и в этом посте мы рассмотрим доступные графические инструменты.
Начало работы с MongoDB и Redis на Rust
В этой статье будет показано как создать Rust бэкэнд, который использует MongoDB, документо-ориентированную БД, для хранения данных и Redis для кэширования, ограничения количества HTTP запросов и нотификаций пользователя. Для большей наглядности созданное приложение также будет предоставлять REST API. В итоге будет получена следующая архитектура:
MongoDB является хранилищем, в то время как Redis используется для следующего:
- кэш (включая изображения)
- ограничение количества HTTP запросов
- нотификации с использованием паттерна publish-subscribe
Ровняем шарды
"Размышления без практики приводят к заблуждению, практика без размышления приводит к затруднению."
Мы ведём войну с индивидуальностью у шардов в кластере MongoDB. Это продолжение статьи Шардинг от которого невозможно отказаться, а это значит, что наступила пора конкретики.
Как я и обещал, здесь мы рассмотрим подробнее:
- настройку процесса выравнивания размера шардов
- расчет поправок для коррекции границ
- мониторинг распределения данных в коллекциях
Истории
Шардинг, от которого невозможно отказаться
А не пора ли нам шардить коллекции?
Не-е-е:
- у нас нет времени, мы пилим фичи!
- CPU занят всего на 80% на 64 ядерной виртуалке!
- данных всего 2Tb!
- наш ежедневный бекап идет как раз 24 часа!
В принципе, для большинства проектов вcё оправдано. Это может быть еще прототип или круг пользователей ограничен… Да и не факт, что проект вообще выстрелит.
Откладывать можно сколько угодно, но если проект не просто жив, а еще и растет, то до шардинга он доберется. Одна беда, обычно, бизнес логика не готова к таким "внезапным" вызовам.
А вы закладывали возможность шардинга при проектировании коллекций?
Эта статья для продвинутых разработчиков.
Для тех, кто планирует шардинг своего кластера.
Для тех, кто уже шардировал кластер ранее, но админы все еще плачут.
Для тех, кто руками перемещал jumbo-чанки.
Сначала, мы будем учится жить со слонами.
Потом, мы их победим, но не сможем вернуться назад.
Эксплуатация MongoDB в Kubernetes: решения, их плюсы и минусы
MongoDB — одна из самых популярных NoSQL/документоориентированных баз данных в мире веб-разработки, поэтому многие наши клиенты используют её в своих продуктах, в том числе и в production. Значительная их часть функционирует в Kubernetes, так что хотелось бы поделиться накопленным опытом: какие варианты для запуска Mongo в K8s существуют? В чем их особенности? Как мы сами подошли к этому вопросу?
Ведь не секрет: несмотря на то, что Kubernetes предоставляет большое количество преимуществ в масштабировании и администрировании приложений, если делать это без должного планирования и внимательности, можно получить больше неприятностей, чем пользы. То же самое касается и MongoDB в Kubernetes.
Виды репликации в MongoDB
Привет, хабровчане! Расшифровали для вас часть урока по MongoDB от Евгения Аристова, разработчика с 20-летним стажем и автора онлайн-курса «Нереляционные базы данных». Материал, как и сам курс, будет полезен специалистам, сталкивающимся в работе с NoSQL, желающим научиться оптимизировать свои базы данных и работу с ними.
14 вещей, которые я хотел бы знать перед началом работы с MongoDB
Основные моменты:
- Крайне важно разработать схему несмотря на то, что в MongoDB она необязательна.
- Аналогично, индексы должны соответствовать вашей схеме и шаблонами доступа.
- Избегайте использования больших объектов и больших массивов.
- Будьте осторожны с настройками MongoDB, особенно если речь идет о безопасности и надежности.
- В MongoDB нет оптимизатора запросов, поэтому вы должны быть осторожны при выполнении операций запроса.
Я очень давно работаю с базами данных, но только недавно открыл для себя MongoDB. Есть несколько вещей, которые я хотел бы знать перед началом работы с ней. Когда у человека уже есть опыт в определенной сфере, у него существуют предвзятые представления о том, что такое базы данных и что они делают. В надежде облегчить задачу понимания другим людям, представляю список распространенных ошибок.
Как собрать гибридное облако с помощью Kubernetes, которое может заменить DBaaS
- как мы от open source-решений пришли к Database as a Service;
- какие существуют подходы к развертыванию баз данных в облаке;
- как Kubernetes может заменить DBaaS, устранив зависимость от вендора и сохранив простоту СУБД как сервиса.
Статья подготовлена на основе доклада на @Databases Meetup by Mail.ru Cloud Solutions & Tarantool. Если не хотите читать, можно посмотреть:
Чем для вас опасна MongoDB SSPL лицензия?
Однако спешу вас разочаровать: последствия непосредственно для вас станут гораздо серьезнее и хуже, чем вы могли бы подумать.
Node.js + MongoDB: перформанс транзакций
“Иногда мы платим больше всего за то, что получаем бесплатно.” — А.Эйнштейн
Не так давно в MongoDB версии 4+ появилась поддержка мульти-документных транзакций.
А поскольку наш проект как раз мигрировал на версию 4.2, закономерно возникли вопросы:
- Что будет с перформансом?
- На сколько операции замедлятся?
- Готовы ли мы пожертвовать скоростью ради (хоть какой-то) точности?
При изучении документации и интернетов вопросов только прибавилось:
- Все ли операции будут замедлены за счет транзакций?
- На сколько замедлятся комбинации операций?
Давайте попробуем узнать.
Для того, чтобы претендовать хотя бы на какую-то мизерную долю истины придется немного потрудиться.
Докеризация приложения, построенного на базе React, Express и MongoDB
Dockerfile
и использование технологии Docker Compose.HighLoad++, Михаил Тюленев (MongoDB): Causal consistency: от теории к практике
Подробности и билеты по ссылке. HighLoad++ Siberia 2019. Зал «Красноярск». 25 июня, 12:00. Тезисы и презентация.
Бывает, что практические требования конфликтуют с теорией, где не учтены важные для коммерческого продукта аспекты. В этом докладе представлен процесс выбора и комбинирования различных подходов к созданию компонентов Causal consistency на основе академических исследований исходя из требований коммерческого продукта. Слушатели узнают о существующих теоретических подходах к logical clocks, dependency tracking, system security, clock synchronization, и почему MongoDB остановились на тех или иных решениях.
Ближайшие события
DataGrip 2019.3: MongoDB, дебаггер, модный прогресс-бар, много новых инспекций
Как устроены сервисы управляемых баз данных в Яндекс.Облаке
Меня зовут Владимир Бородин, я руководитель платформы данных Яндекс.Облака. Сегодня я хочу рассказать вам, как всё устроено и работает внутри сервисов Yandex Managed Databases, почему всё сделано именно так и в чём преимущества – с точки зрения пользователей – тех или иных наших решений. И конечно, вы обязательно узнаете, что мы планируем доработать в ближайшее время, чтобы сервис стал лучше и удобнее для всех, кому он нужен.
Что ж, поехали!
Открытый вебинар «Основы MongoDB»
Вебинар провёл Иван Ремень, руководитель направления серверной разработки в «Ситимобил».
Лайфхак – пишем и бесплатно хостим в облаке вебсайт с гостевой книгой
В наше время развернуть в облаке свой вебсайт с доменным именем второго уровня можно бесплатно. Вам интересно как? Читайте дальше.
Предлагаю вам разобрать то, как можно создать гостевую книгу на ASP.NET Core (с reCAPTCHA) и захостить ее бесплатно на довольно известном облачном хостинге (да, с ограничениями, но для персонального вебсайта с не особо большим трафиком годится вполне)
Опыт персонализации интернет-магазина на примере динамической рекомендации
Поделюсь опытом о том, как собрали собственную систему персонализации на базе «знаний» о потенциальном покупателе.
Единственное чем отличалось наше решение от классических — это использование комбинированной связки ряда решений и удовлетворял списку требований:
- сервис должен был работать сразу на N сайтах
- динамическая сегментация аудитории
- Коллаборативная фильтрация для целей прогнозирования в разных состояниях сегментов аудитории
- предварительно сгенеренная статика в виде рекомендованного контента + динамический подмес товаров на основе анализа кликстрима
- изменение контента, практически в реал-тайме, из оперативной памяти, с учетом динамических коэффициентов
Об этом подробнее :) И о тех граблях, которые помогали нам меняться стек в лучшую сторону.
Беспростойная миграция MongoDB в Kubernetes
Эта статья продолжает наш недавний материал про миграцию RabbitMQ и посвящена MongoDB. Поскольку мы обслуживаем множество кластеров Kubernetes и MongoDB, пришли к естественной необходимости мигрировать данные из одной инсталляции в другую и делать это без простоя. Основные сценарии прежние: перенос MongoDB из виртуального/железного сервера в Kubernetes или же перенос MongoDB в рамках одного кластера Kubernetes (из одного пространства имён в другое).
Как я отказывался от db4o в промышленной системе
Мы — отдел большой компании, развивающий важную систему на Java SE / MS SQL / db4o. За несколько лет проект перешел от опытного образца к промышленной эксплуатации и db4o превратилась в тормоз расчета, захотелось перейти с db4o на современную noSQL-технологию. Пробы и ошибки завели далеко от первоначального замысла — от db4o отказаться удалось, но ценой компромисса. Под катом размышления и подробности реализации.