top of page

Hur du installerar RavenDB på en virtuell maskin i Azure (steg för steg - del 1)


Här är en guide för dig som vill arbeta med dokumentdatabaser. Jag beskriver hur jag fick RavenDB att fungera på en vanlig Windows Server 16 virtuell maskin som i sin tur körs i Azure molnet.


Det här en guide i tre delar för dig som, likt rubriken säger, vill installera RavenDB på en virtuell maskin i Azure. Låter det självklart? Låter det klurigt? Vi tar det från början.

Är du utvecklare? Då kan det till en början kännas märkligt att arbeta med dokumentdatabaser, i varje fall om du är van vid relationsdatabaser. Men ge det lite tid så kommer du uppskatta hur vackert det är och förstå dess möjligheter, men även begränsningar.


Med denna guide vill jag ge dig en inblick i RavenDB, en komplett NoSQL dokumentdatabassom fungerar på flera plattformar, inklusive Windows, Linux och Docker. RavenDB är dessutom open-source och källkoden går att finna på deras GitHub repo. RavenDB är skriven i C# och klient-bibliotek finns för bland annat .NET. Java, C++, Node.js, Python, Ruby, och Go.


Om konceptet med dokument-modellering är nytt för dig vill jag starkt rekommendera denna video Modeling in a Non Relational World, av författaren till RavenDB.


Installering av RavenDB är ganska enkel och det märks att det har lagts tid på att göra den så smidig som möjligt. Däremot kan du stöta på en del problem när det blir dags att få den att fungera säkert på en produktionsserver. I denna blogg kommer jag beskriva hur jag fick RavenDB att fungera på en vanlig Windows Server 16 virtuell maskin som i sin tur körs i Azure molnet.


Jag är säker på att det finns smartare sätt att nå samma resultat men så här gjorde jag, och guiden är baserad på RavenDB version 4.1.5 (April 2019). Jag välkomnar feedback och förslag!

Målet

Vårt mål är att installera en instans av RavenDB på en ren Windows Server 2016 virtuell maskin samt att på ett säkert sätt kunna autentisera och koppla upp mot den från en .NET Core console-applikation.


Den Virtuella maskinen

Jag ska inte gå in på hur man skapar en virtuell maskin (VM) och de flesta steg jag tar upp kommer vara samma oberoende av ifall du använder Amazon, Google eller någon annan leverantör. Jag antar dessutom att du är administratör och kan använda dig av remote-desktop för att komma åt maskinen.

I exemplet har jag skapat en fräsch Windows Server 2016 (Data Center edition) VM i Azure med en standardkonfiguration.

Jag rekommenderar att vi först installerar användbara verktyg likt Google Chrome, Fiddler eller FireFox och för det använder jag Chocolatey. Chocolatey är Windows pakethanterare som låter dig automatisera installationen av applikationer. För att göra saken ännu smidigare har jag skapat Install_Applications.bat i förväg som låter mig installera Chocolatey och alla mina önskade applikationer på en och samma gång:



@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
choco install notepadplusplus --x86 -y
choco install 7zip.install -y
choco install GoogleChrome -y
choco install firefox -y
choco install vcredist-all -y
choco install fiddler4 -y


(Första raden installerar Chocolatey som det är beskrivet i installations-intstruktionerna här)


Sen kör jag på enklaste sätt skriptet från en (administratör-) kommando-prompt:


Microsoft Visual C++ Redistributable Package blir installeras som en del av skriptet ovan eftersom RavenDB är beroenden av detta bibliotek.


Glöm inte att välja Chrome eller Firefox som din standardbrowser eftersom Internet Explorer 11 annars är standard i Windows Server 2016 och inte stöds av RavenDB.

Installera RavenDB

Först behöver vi ladda ner RavenDB för Windows härifrån. Därefter högerklicka på .ZIP-filen, kolla Properties-dialogen och välj Unblock, för att undvika problem längre fram:


Packa sedan upp filen och flytta innehållet till en ny mapp som vi döper c:\RavenDB.



Nätverk och brandväggar

I vår installation vill vi att klienter utanför Azure på det publika internet kan koppla upp sig mot vår databas. För att uppnå det väljer vi att använda följande portar:

  • Port 50000 för HTTPS trafik (standard ‘r 443)

  • Port 50001 för TCP/IP trafik (standard är 38888)

I Azure-portalen lägger vi först till en inbound security rule för att öppna port 50000 och 50001.


Därefter behöver vi lägga till en inbound rule i Windows firewall för att öppna port 50000och 50001 for TCP/IP trafik.


Detta gör vi från command line på följande sätt:


netsh advfirewall firewall add rule name="RavenDB" dir=in action=allow protocol=TCP localport=50000,50001

(Eller använd Windows Firewall applikation i Windows)

Konfigurera RavenDB

RavenDB kan köra som en vanlig exekverbar fil eller som en Windows service i bakgrunden. Vi väljer att köra den som en windows service, därför att vi vill att databasen alltid startar när Windows startar. Mer information om olika deployment options.

Starta upp ett nytt PowerShell-fönster, navigera sedan till c:\RavenDB och påbörja därefter installationen genom att köra .\setup-as-service.ps1.


Skriptet kommer automatiskt registrera RavenDB som en service för dig. När RavenDB startar upp kommer det starta RavenDB studio i din webbläsare (den du satt som standard). Läs igenom EULA:n och acceptera.


Av Tore Nestenius

0 kommentarer
bottom of page