Как установить базу данных RavenDB NoSQL в Ubuntu 20.04

Как установить базу данных RavenDB NoSQL в Ubuntu 20.04

 

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

База данных документов мирового класса RavenDB — это одна из этих баз данных, которая ищет лучшие способы обработки информации для создания надежного приложения 21-го века. Прежде чем приступить к установке RavenDB, давайте вкратце рассмотрим его возможности:

  • Общекластерные транзакции ACID
  • Pull Replication: Pull Replication позволяет легко обновлять даже самые отдаленные периферийные устройства.
  • API Graph: смотри в будущее и прогнозируй свои данные.
  • Распределенные счетчики: распределенные счетчики RavenDB позволяют нескольким серверам обрабатывать совокупную нагрузку.
  • Вернуть ревизии — машина времени базы данных: легко исправить ошибку в области базы данных.
  • Мультимодельная архитектура
  • Мультиплатформная
  • Высокая доступность
  • Усовершенствованный механизм запросов
  • Студия управления базами данных
  • Интегрирован с RDBMS
  • Простота использования

Системные Требования

RavenDB написан на .NET Core, поэтому требует того же набора предварительных условий, что и .NET Core.
Обновленный сервер

Настало время начать установку RavenDB.

Шаг 1. Обновите сервер и установите .NET Core Runtime

Мы начнем установку RavenDB, соблюдая все требования. Поскольку для этого требуется .NET Core, давайте продолжим и установим его на нашу Ubuntu 20.04 очень быстро.

Добавьте ключ подписи пакета Microsoft в список доверенных ключей и добавьте репозиторий пакетов. Откройте терминал и выполните следующие команды:

sudo apt update && sudo apt upgrade
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb

Установите время выполнения

.NET Ядро выполнение позволяет запускать приложения , которые были сделаны с .NET Ядром и не включают в себя среду выполнения. Приведенные ниже команды устанавливают ASP.NET Core Runtime.

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-3.1

Шаг 2: Загрузите и установите RavenDB в Ubuntu 20.04

Загрузите последнюю стабильную версию RavenDB с помощью wget или перейдите на страницу загрузки RavenDB и возьмите версию Linux из списка платформ. Мы будем использовать wget в этом руководстве, как показано ниже

cd ~
wget -O ravendb.tar.bz2 https://hibernatingrhinos.com/downloads/RavenDB%20for%20Linux%20x64/latest

Извлечь архив

Запустите команду tar ниже, чтобы извлечь сжатый файл

tar xvjf ravendb.tar.bz2

При извлечении файла выше создается папка (RavenDB), которая содержит установочные файлы. На этом этапе вы можете запустить мастер установки, запустив скрипт run.ps1 (или run.sh)

$ cd ~/RavenDB
$ ./run.sh

Use Ctrl + c to Exit it

Шаг 3: Настройте RavenDB в Ubuntu 20.04

Давайте отредактируем файл settings.json, чтобы мы могли выполнить настройку удаленно с помощью браузера. Обратите внимание, что при первом запуске сервера settings.json создается из settings.default.json. Поэтому, если файл settings.json не существует, отредактируйте файл settings.default.json.
Установите ServerUrl, включая порт, из которого вы будете слушать RavenDB, а также Security.UnsecuredAccessAllowed в PrivateNetwork, PublicNetwork или LocalNetwork, чтобы разрешить незащищенный доступ без SSL.

sudo vim ~/RavenDB/Server/settings.json

{
    "ServerUrl": "http://172.21.83.113:8080",
    "Setup.Mode": "Initial",
    "DataDir": "RavenData",
    "Security.UnsecuredAccessAllowed": "PrivateNetwork"
}

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

{
    "ServerUrl": "http://172.21.83.113:443",
    "Setup.Mode": "Initial",
    "DataDir": "RavenData",
    "PublicServerUrl": "<Enter  Public DNS URL for your cloud>",
    "Security.UnsecuredAccessAllowed": "PrivateNetwork"
}

Мы установили в поле Security.UnsecuredAccessAllowed значение PublicNetwork, которое позволит вам подключаться удаленно. Чтобы использовать RavenDB на порту 443, выполните команду ниже, чтобы позволить RavenDB использовать порт 443 (процесс без полномочий root):

sudo setcap CAP_NET_BIND_SERVICE=+eip ./RavenDB/Server/Raven.Server

Установить права доступа к каталогу

RavenDB требует разрешения на запись в следующие места:

  • Папка, в которой работает сервер RavenDB
  • Папка данных
  • Папка журналов

Измените брандмауэр, чтобы разрешить новый порт RavenDB

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

sudo ufw allow 8080

Шаг 4: Настройте RavenDB как сервис в Ubuntu 20.04

Теперь мы настроим и запустим сервис RavenDB.

Откройте терминал и создайте файл /etc/systemd/system/ravendb.service, используя разрешения суперпользователя с содержимым ниже:

sudo vim /etc/systemd/system/ravendb.service

[Unit]
Description=RavenDB v4.0
After=network.target

[Service]
LimitCORE=infinity
LimitNOFILE=65536
LimitRSS=infinity
LimitAS=infinity
User=root                          ##<==Add the user you would wish to run the service
Restart=on-failure
Type=simple
ExecStart=/path/to/RavenDB/run.sh  ##<==Enter the path where your run.sh is found here

[Install]
WantedBy=multi-user.target

После добавления нового файла перезагрузите демон, запустите и включите службу ravendb следующим образом:

sudo systemctl daemon-reload
sudo systemctl enable ravendb.service
sudo systemctl start ravendb.service

Проверьте его статус:

$ systemctl status ravendb.service
● ravendb.service - RavenDB v4.0
     Loaded: loaded (/etc/systemd/system/ravendb.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-07-19 20:31:36 EAT; 5min ago
   Main PID: 43408 (run.sh)
      Tasks: 23 (limit: 1035)
     Memory: 39.7M
     CGroup: /system.slice/ravendb.service
             ├─43408 /bin/bash /home/tech/RavenDB/run.sh
             └─43435 ./Raven.Server --browser

Запустите мастер установки RavenDB

К настоящему времени все должно работать нормально, и мы готовы запустить мастер установки RavenDB. Укажите в браузере URL-адрес, настроенный на шаге 3. В этом руководстве мы будем использовать http://172.21.83.113:8080.. Следуйте скриншотам, чтобы получить RavenDB

Лицензионное соглашение с конечным пользователем RavenDB

Пролистайте лицензионное соглашение до конца и нажмите « Принять ».

Мастер настройки RavenDB

Здесь у нас есть 3 варианта в зависимости от желаемого уровня безопасности. Первый — это настройка с использованием сертификата LetsEncrypt, второй — предоставление собственного сертификата, а третий — без какого-либо сертификата. Поскольку на данный момент у меня нет сертификатов, мы перейдем к варианту Необеспеченный. Обратите внимание, что в случае, если вы хотите добавить новый узел для создания кластера, также существует опция « Настройка кластера ». Выберите опцию безопасности, которая наилучшим образом соответствует вашим потребностям.

Настройка незащищенного режима

Введите порты, с которых вы хотите получить доступ к Studio, а также IP-адрес. Примите риск и нажмите « Далее »

Перезагрузите сервер

Конфигурация должна быть завершена к настоящему времени. Нажмите « Перезагрузить сервер »

Доступ к студии

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

Шаг 5: Создать базу данных

Как только мы окажемся внутри RavsnDB, мы можем легко создать образец базы данных. Нажмите на «Базы данных »

 

 

 

 

 

Затем « Новая база данных »

 

Вывод

В RavenDB вы можете сделать гораздо больше. Поговорим о создании документов, добавлении данных, шифровании, создании кластера и подключении его к своим API. Документация RavenDBs — прекрасное место для получения всех деталей. Они даже предоставляют образцы данных, которые вы можете использовать для тестирования своих приложений. Это довольно круто, и интерфейс также удивителен. Пища для размышлений:

«Вчера прошло. Завтра еще не наступило. У нас только сегодня. Начнем.»
— Мать Тереза