5 способов разместить базы данных MySQL

  • 13 апреля, 11:30
  • 6358
  • 0

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

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

Самоуправляемый MySQL

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

Самостоятельный хостинг дает вам большой выбор в отношении того, где вы будете устанавливать и запускать свои базы данных. 

Установка MySQL на локальный компьютер 

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

Вариант хостингаМашина локальной разработки
Стадия проектаРазработка
РасходыБез дополнительных затрат
ПредставлениеНизкий
МасштабируемостьНет
Сложность управленияНизкая
Дополнительные замечанияНе требует настройки сети. Подходит
для местного развития.

Расходы

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

Представление

Установка MySQL на вашу машину - вариант с низкой производительностью.

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

Масштабируемость

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

Сложность управления

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

Хотя локальная настройка MySQL несложна, вам все равно придется управлять своей базой данных и выполнять любые обновления по мере необходимости. Иногда они могут потребоваться для установки исправлений безопасности, и вы будете обязаны отслеживать эти экземпляры, если вас беспокоят ваши данные.

Дополнительные замечания

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

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

Установка MySQL на отдельный сервер

Другой вариант самостоятельного хостинга - установка MySQL и управление им на отдельном компьютере. Некоторые распространенные реализации включают в себя:

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

Установка MySQL на отдельный сервер сильно отличается от установки на машине разработки:

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

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

Расходы

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

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

Представление

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

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

Масштабируемость

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

Сложность управления

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

Дополнительные замечания

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

MySQL с Docker

Другой вариант самостоятельного хостинга - использовать Docker для запуска MySQL в качестве контейнера. Docker позволяет запускать MySQL в изолированной среде на локальном или удаленном компьютере.

Вариант хостингаКонтейнеры Docker
Стадия проектаРазработка, постановка, производство
РасходыПеременные. Покупка или аренда дополнительного
сервера плюс дополнительные расходы на управление.
ПредставлениеСреднее
МасштабируемостьВысокая
Сложность управленияСредняя
Дополнительные замечанияКонтейнерная инфраструктура может существенно различаться
по сложности. Хотя контейнеры
упрощают многие вещи, особенно во время разработки
и промежуточного этапа, они требуют опыта для хорошей работы в производственной среде.
Для производственных рабочих нагрузок контейнеры, вероятно, будут
хорошим выбором только в том случае, если вы уже вложили средства в
оркестровку контейнеров, такую как Kubernetes.

Некоторые из преимуществ использования Docker по сравнению с традиционной локальной установкой:

  1. Запуск MySQL с официальным образом MySQL Docker требует меньше усилий по сравнению с установкой MySQL.
  2. Docker позволяет воспроизводить одну и ту же конфигурацию базы данных в нескольких средах, что полезно для команд, работающих над проектом, требующим одинаковой конфигурации MySQL.
  3. Вы можете использовать Docker для управления ресурсами ЦП, памяти и хранилища, выделенными MySQL.
  4. Docker снижает вероятность несовместимости MySQL и другого программного обеспечения, работающего на вашем компьютере.

Установка MySQL с Docker локально или на удаленном компьютере аналогична, хотя есть некоторые дополнительные соображения в зависимости от того, используете ли вы MySQL для производственных рабочих нагрузок.

Хотя Docker упрощает некоторые аспекты работы MySQL, есть несколько компромиссов, о которых следует помнить:

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

Контейнеры и регуляторы

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

Управляемые службы

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

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

Базы данных, управляемые облачными провайдерами

Возможно, наиболее знакомый тип управляемого хостинга MySQL - это тот, который предлагают облачные или хостинговые провайдеры. Некоторые из них включают RDS (служба реляционной базы данных) Amazon Web Service, Cloud SQL от Google Cloud Platform и База данных Azure.

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

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

Облачные провайдеры

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

  1. Amazon AWS
  2. Google Cloud
  3. Microsoft Azure
  4. Oracle
  5. DigitalOcean
  6. Heroku

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

Расходы

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

Масштабируемость

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

Представление

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

Сложность управления

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

Дополнительные замечания

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

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

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

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

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

Сторонние предложения

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

Расходы

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

Представление

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

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

Масштабируемость

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

Сложность управления

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

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

Дополнительные замечания

Отделение управления базой данных от базового поставщика ресурсов имеет как преимущества, так и недостатки.

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

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

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

Итог

Вот обзор того, как различные обсуждаемые здесь варианты сравниваются друг с другом:

Вариант хостингаМашина локальной разработкиОтдельный серверОблачный провайдер под управлениемУправляется третьей сторонойУправление платформой приложений
Стадия проектаРазработкаРазработка, постановка, производствоРазработка, постановка, производствоРазработка, постановка, производствоРазработка, постановка, производство
РасходыБез дополнительных затратПеременные. Покупка или аренда дополнительного
сервера плюс дополнительные расходы на управление.
Сильно изменчивые, в зависимости от вашего выбора
и использования.
Очень разнообразны, в зависимости от вашего выбора
и использования.
Сильно изменчивые
ПредставлениеНизкоеВысокий потенциалСильно изменчивоеСильно изменчивоеСильно изменчивое
МасштабируемостьНетВысокий потенциалВысокаяВысокаяВысокая
Сложность управленияНизкаяВысокаяНизкаяНизкаяНизкая
Дополнительные замечанияНе требует настройки сети. Подходит
для местного развития.
Самый гибкий вариант. Также требует наибольшего
количества практического управления. Хороший выбор, если у
вас есть собственный опыт работы с оборудованием или базами данных,
который вы можете посвятить управлению.
Решение с высокой степенью масштабируемости, часто предлагаемое тем
же поставщиком облачных услуг, который может запускать ваши
приложения. Это позволяет получить дополнительный контроль
над сетью и производительностью без
тяжелой работы с вашими собственными серверами.
Сторонние управляемые базы данных имеют многие из
тех же преимуществ, что и облачные базы данных.
Однако, управляя своими базами данных через
третью сторону, вы можете отделить управление базой данных
от основного поставщика облачных услуг.
Это может упростить миграцию на другой
хост в будущем и иногда может позволить использовать
более мощные возможности управления.
Услуги баз данных, предлагаемые
платформами приложений , часто ориентированы на простое
управление и доступ, а не на большинство других
факторов. Стоимость может сильно различаться в
зависимости от вашего использования, поэтому важно
следить за тем, как масштабирование и использование
влияют на ваши платежи.




0 комментариев
Сортировка:
Добавить комментарий

IT Новости

Смотреть все