Понимание управляемых баз данных

Вступление

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

Распространение услуг облачных вычислений снизило барьеры для входа, связанные с предоставлением базы данных, но многим разработчикам все еще не хватает времени или опыта, необходимых для управления и настройки базы данных в соответствии с их потребностями. По этой причине многие компании обращаются кmanaged database services, чтобы помочь им создавать и масштабировать свои базы данных в соответствии с их ростом.

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

Управляемые базы данных в двух словах

Управляемая база данных - это служба облачных вычислений, в которой конечный пользователь платит поставщику облачных услуг за доступ к базе данных. В отличие от типовой базы данных, пользователям не нужно настраивать или поддерживать управляемую базу данных самостоятельно; Скорее, поставщик обязан контролировать инфраструктуру базы данных. Это позволяет пользователю сосредоточиться на создании своего приложения, а не тратить время на настройку своей базы данных и ее обновление.

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

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

Болевые точки локальных и управляемых баз данных

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

По мере того как в 2000-х годах услуги облачных вычислений становились все более популярными, они становились все проще и доступнее для предоставления серверной инфраструктуры, поскольку оборудование и пространство, необходимые для этого, больше не должны были принадлежать или управляться теми, кто их использует. Аналогичным образом, создание базы данных полностью в облаке стало гораздо менее сложным; бизнес или разработчик должны будут просто запросить сервер, установить и настроить выбранную ими систему управления базами данных и начать хранение данных.

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

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

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

Преимущества управляемых баз данных

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

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

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

Управляемые решения, как правило, имеют встроенную высокую доступность. В контексте облачных вычислений служба называетсяhighly available, если она стабильна и, вероятно, будет работать без сбоев в течение длительных периодов времени. Продукты большинства уважаемых поставщиков облачных услуг поставляются сservice level agreement (SLA) - обязательством между поставщиком и его клиентами, которое гарантирует доступность и надежность их услуг. Типичный SLA будет указывать, сколько времени простоя должен ожидать клиент, и многие также определяют компенсацию для клиентов, если эти уровни обслуживания не выполняются. Это дает клиенту уверенность в том, что его база данных не выйдет из строя, и, если это произойдет, он может, по крайней мере, ожидать какого-либо возмещения от поставщика.

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

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

Практические соображения

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

Управляемая база данных почти всегда дороже, чем самоуправляемая. Это имеет смысл, поскольку вы платите облачному провайдеру за поддержку в управлении базой данных, но это может стать причиной беспокойства для команд с ограниченными ресурсами. Более того, цены на управляемые базы данных обычно основаны на том, сколько памяти и ОЗУ использует база данных, сколько операций чтения она обрабатывает и сколько резервных копий базы данных создает пользователь. Аналогично, любое приложение, использующее службу управляемой базы данных, которая обрабатывает большие объемы данных или трафика, будет более дорогим, чем если бы оно использовало облачную базу данных с самостоятельным управлением.

Следует также подумать о том, как переключение на управляемую базу данных повлияет на их внутренние рабочие процессы, и смогут ли они адаптироваться к этим изменениям. Каждый провайдер отличается, и в зависимости от своего SLA он может взять на себя ответственность только за некоторые задачи администрирования, что будет проблематично для разработчиков, ищущих решение с полным набором услуг. С другой стороны, некоторые поставщики могут иметь запретительно ограничивающее соглашение об уровне обслуживания или сделать клиента полностью зависимым от рассматриваемого поставщика - ситуация, известная какvendor lock-in.

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

Чтобы проиллюстрировать это, представьте, что вас нанял банк для создания приложения, в котором его клиенты могут получать доступ к финансовым записям и осуществлять платежи. Банк может оговорить, что приложение должно иметьdata at rest encryption и соответствующие разрешения пользователей, а также что оно должно соответствовать определенным нормативным стандартам, таким какPCI DSS. Не все поставщики управляемых баз данных придерживаются одних и тех же нормативных стандартов или придерживаются одинаковых методов обеспечения безопасности, и вряд ли они примут новые стандарты или методы только для одного из своих клиентов. По этой причине очень важно, чтобы вы гарантировали, что любой поставщик управляемых баз данных, на которого вы полагаетесь для такого приложения, способен удовлетворить ваши потребности в области безопасности, а также потребности ваших клиентов.

Заключение

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

Если вы хотите узнать больше об управляемых базах данных DigitalOcean, мы рекомендуем вам ознакомиться с нашими управляемыми базами данныхproduct documentation.

Related