Thursday, November 15, 2012

Running RavenDB on Windows Azure using a Virtual Machine

We have seen how to run RavenDB on Windows Azure using a Worker Role, today I decided to try to setup RavenDB using a Virtual Machine, a Windows Server 2012 Medium Seized VM.

The first step is obviously to create the VM, once connected to Azure management portal I started the VM creation wizard:

image

Choosing to create a VM selected from the built-in image gallery, and choosing as the guest OS Windows Server 2012.

image

The next step is to define some information about the VM such as the name, the administrator’s credentials and the size of the VM

image

Currently the size of the VM is important other then for performance reasons for the number of hard disks you can attach to the VM, the big is the VM the highest is the number of the HDs you can attach.

imageimage

I finally configure the VM as a standalone VM since currently is alone and created a new availability set, that basically is a sort of logical grouping of resources.

After that the VM creation process has finished the VM provisioning, it took something like 10 minutes, I created 2 Virtual Hard Drives and attached them to the VM.

image

From now on the process is exactly the same you can do on a stand alone server:

  • I RDP into the server;
  • Installed IIS;
  • Since it is a Windows Server 2012 I configured the 2 VHDs as a storage pool in striping mode;
  • Downloaded and installed RavenDB as a web application;
  • Configured Windows Authentication;
  • Configured RavenDB to put the “data” directory onto the storage pool;

easy peasy :-)

One last important thing, if you want to access the RavenDB site from outside of the Azure datacenter you need to configure an endpoint for the protocol and port:

image

By default there is only the RDP stuff. The interesting thing is that you are basically configuring the port forwarding on the Azure software load balancer…so you can use that feature to easily switch environments on a single VM…interesting.

.m

2 comments:

  1. Can you mix platform as a service web.roles with this type of infrastructure as a service virtual machines?

    I like being able to easily scale out my web.roles and also the faster stripped hard drives of a VM

    ReplyDelete
    Replies
    1. Andrew, sorry for the really late reply.
      Yes, I do not see any problem in mixing both, in they end in Azure everything is a VM.

      .m

      Delete