Где разместить мою базу данных - PullRequest
4 голосов
/ 18 января 2010

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

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

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

Заранее спасибо, Jethro

Ответы [ 4 ]

1 голос
/ 19 января 2010

Это хороший вопрос.

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

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

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

0 голосов
/ 18 января 2010

Для стабильности и производительности вы должны развернуть базу данных, ближайшую к производственной системе, которая в данном случае является вашим веб-сайтом. Бэкэнд-программное обеспечение должно быть в состоянии поразить размещенный сервер через TCP, при условии, что у вас есть приличная безопасность и пропускная способность между ними. Это означает, что предпочтительно иметь то, что называется двухточечным соединением. Альтернативой является настройка vpn через Интернет, что может быть медленным и ненадежным.

Редактировать : Под «производством» я подразумеваю ориентированность на клиента и критичность, что может быть неверно для вашего случая. Кто аудитория двух систем? Какой из них важнее быть стабильным?

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

0 голосов
/ 18 января 2010

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

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

Это позволит вашему веб-сайту быстрее получать доступ к данным и, следовательно, повысит стабильность вашей системы (меньше вероятность тайм-аутов)

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

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

И последнее - что касается удаленного доступа к базе данных - вы, конечно, можете рассмотреть возможность простого подключения к базе данных «нормально», но я бы, возможно, подумал бы об обертывании ее в веб-службу, что позволило бы вам

  1. Для большей гибкости с расположением и реализацией базы данных
  2. Используя широко распространенные протоколы, такие как WS- *, вы можете достичь более высокой безопасности без необходимости инфраструктуры, такой как VPN

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

0 голосов
/ 18 января 2010

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

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

...