Raven DB, A Kick Starter using Tier 3 IaaS

I’m putting together a pretty sweet little application. It does some basic things that are slowly but surely expanding to cover some interesting distributed cloud computing business cases. But today I’m going to dive into my Raven DB experience. The idea is that Raven DB will act as the data repository for a set of API web services (that seems kind of obvious, I state the obvious sometimes).

The first thing we need is a server instance to get our initial node up and running. You can use whatever service, virtualization tools, or a physical server if you want. I’m going to use Tier 3’s Services in my example, so just extrapolate for your own situation.

First I’ve logged in to the Tier 3 Control Site and am going to create a server instance.

Building the Tier 3 Node for Raven DB

Creating the Server Instance (Click for full size image)
Creating the Server Instance (Click for full size image)

Next step is to assign resources. Since this is just a single Raven DB node, and I won’t have it under heavy load, I’ve minimized the resources. This is more of a developers install, but it could easily be a production deploy, just allocate more resources as needed. Also note, I’ve added 50 GB of storage to this particular instance.

Setting Resources (Click for full size image)
Setting Resources (Click for full size image)

Now that we’ve set these, click next and on the next screen click on server task. Here add the public IP option and select the following services to open their ports.

Setting up a Public IP and the respective ports/services (Click for full size image)
Setting up a Public IP and the respective ports/services (Click for full size image)

The task will display once added as an item on the create server view. Once that is done, click create server so the server build out will start.

Creating the Server (Click for full size image)
Creating the Server (Click for full size image)

Now log in with RDP to start setting up the server in preparation of loading Raven DB. The first thing you’ll want to do is go ahead and get Windows Update turned on. My preference is to just turn it on and get every update that is available. Once that is done, make sure to get the latest .NET 4 download from Windows Update too.

Getting Windows Update Turned On (Click for full size image)
Getting Windows Update Turned On (Click for full size image)

Once all of the updates are finished and .NET 4 is installed we’ll get down to the business of getting Raven DB Installed. In this specific example I’ll be installing the Raven DB as a windows service, it however can be installed under IIS so there are many other options depending on how you need it installed.

Installing Raven DB

To get the software to install, navigate over to the Raven DB site at http://ravendb.net/ from the new instance we’ve just spun up. Click on the Download button and you’ll find the latest build over on the right hand side. Click to download the latest software package to a preferred location on the system.

Raven DB - Open Source 2nd Generation Document DB (Click to navigate to the site)
Raven DB – Open Source 2nd Generation Document DB (Click to navigate to the site)

Once you’ve downloaded it (I’ve put my download in the root R:\ partition I created) unzip it into a directory (I’ve just unzipped it here into R:\ to make the paths easy to find, feel free to put it anywhere you would prefer. In our Tier 3 environment the R drive is on a higher speed, thus higher IOP drive system, thus the abilities exceed your standard EBS/AMI or S3 style storage mechanisms.).

Saving the Raven DB Download (Click for full size image)
Saving the Raven DB Download (Click for full size image)
Saving to R:/ (Click for full size image)
Saving to R:/ (Click for full size image)

At this point, open a command prompt to install Raven DB as a service. Navigate to the drive and folder location you’ve saved the file to. Below I displayed a list of the folder and files in the structure.

CLI actions (click for full size image)
CLI actions (click for full size image)

Once you’re in the path of the Raven.Server.exe file then run a slash install on it to get a Windows Service of the Raven DB running.

Raven DB Installation results (click for full size image)
Raven DB Installation results (click for full size image)

To verify that it is up and running (which if you’ve gotten these results, you can rest assured it is, but I always like to just see the services icon) check out the services MMC.

Launching services (Click for full size image)
Launching services (Click for full size image)

There it is running…

Now, you’re not complete yet. There are a few other things you may want to take note of to be sure you’re up and running in every way you need to be.

The management and http transport for Raven DB is done on port 8080. So you’ll have to open that port if you want to connect to the services of the database externally. On windows, open up the Windows Firewall. Right click on the Inbound Rules and click Add Rule.

Select Port (Click for full size image)
Select Port (Click for full size image)
Select the Raven.Server.exe (click to see full size)
Select the Raven.Server.exe (click to see full size)
Inbound Rule (Click for full size image)
Inbound Rule (Click for full size image)
Open up however needed. (Click for full size image)
Open up however needed. (Click for full size image)
Public Private etc. (Click for full size image)
Public Private etc. (Click for full size image)

Enter a name and description on the next wizard dialog screen and click on Finish.

Displayed active firewall rule (Click for full size image)
Displayed active firewall rule (Click for full size image)

Now if you navigate to the IP of the instance with port 8080 you’ll be able to load the management portal for Raven DB and verify it is running and you have remote access.

Raven DB Management Screen
Raven DB Management Screen (Click for full size image)

At this point, if you’d like more evidence of success, click on the “Create Sample Data” button and the management screen will generate some data.

Raven DB Management console with data (Click for full size image)
Raven DB Management console with data (Click for full size image)

At this point you have a live Raven DB instance up and running in Tier 3. Next step is to break out and add nodes for better data integrity, etc.

Summary

In this write up I’ve shown a short how-to on installing and getting Raven DB ready for use on Windows Server 2008 in Tier 3’s Enterprise Cloud environment. In the very near future I’ll broach the topics of big data with Raven DB, and other databases like Riak and their usage in a cloud environment like Tier 3. Thanks for reading, cheers!

PDX & SEA Code Camp, OS Bridge, OSCON, Iron Foundry, Robotech and Action! Stage II

I usually don’t post two blog entries in one day, but I had so much to rattle on about it seemed like a rule to break.

DeployCon, Cloud Expo and Cloud Bootcamp

I’ll be speaking at the Cloud Bootcamp at the Cloud Expo in New York City. So if you’re coming to the conference, swing by and let’s talk PaaS and the future of software development and cloud computing. I’m looking forward to the event, it’ll be a good time and has a lot of educational content.

Also during Cloud Expo, be sure to check out the DeployCon. The DeployCon Conference is a PaaS Conference put together by Rishidot Research. Check out more information here.

Iron Foundry

Over on the Iron Foundry Project we’re going to be putting together some new material on what’s next, where we are on the project and where we are headed. The effort will be pushing forward with some possible hackathons or installathons for those interested. So if anyone is keen on checking out the latest and greatest of .NET PaaS options available, send me an e-mail and we’ll start coordinating some efforts.

Robotech

Yeah? Do you know the designation of the fighter type?
Yeah? Do you know the designation of the fighter type?

So why am I bringing up animated Anime from the 80s? Well, I was a pretty huge fan of the series, played the RPG, and own a few of the toys. Which yes, puts me in the nerd realm all that much more.

Know what this is?
Know what this is?

For the next few months I’ve decided that we’re going with Robotech for code names of our projects. Who is “we”? I mean that in the sense that any and all projects I’m working on are going to be prototype names from Robotech. So if you notice a Robotech theme going on, that’s the reason.

Action Shots

As promised, action shots…

…the Destroids stand guard over Portland and the Zentraedi onslaught. Just my creative dorky side.

Destroids standing ready...
Destroids standing ready…
Tomahawk
Tomahawk

Cheers!

Wrapped Up @ The Fort of Awesome, on to the Iron Foundry, and new Tiers…

New update and bits coming up in the near term. I wrapped up my work with AppFog’s Fort of Awesome and am now putting together blog articles & technical material for New Relic these days. They’re an extremely great company with an absolutely stellar team. However you may be asking, “Adron, YOU WRITE CODE ALL THE FREAKING TIME, you’ve got to be doing more than blog entries!!” and you’d be right. These blog entries are more than just opinions and such, I’ll be putting together demoes and some hard core examples of distributed architectures, trending against big data, node.js hackery, and all sorts of other stuff. But there is also my next update below that’s a lot of fun code…

Tier 3, Federated Clouds, and Iron Foundry

I’ve stepped in to take the lead on the Iron Foundry Project (so go sign up and fork it!!) and to work on the stability, governance, and code around Cloud Foundry too! It’s going to be a blast! In addition to that I’m helping to build some cool things at Tier 3. In the near future I’ll have a lot more information regarding what these things are.

At Tier 3 we have a massive Enterprise Cloud Infrastructure offering. It’s a pretty impressive setup, so much so that I’m leading some of the efforts there, so I’m not just saying that! Keep an eye on us too, because we’ll have some very cool things coming up (did I say that already?)  🙂

Cloud Foundry Hackathon PDX, Cloud Foundry Open Tour, and Coder Society

Cloud Foundry Hackathon PDX

The Cloud Foundry Hackathon is on April 14th at Puppet Labs. Check out the Lanyrd Site and Calagator for calendar and RSVP. This is going to be an awesome event which will also be in partnership and extension of some of the work we’ll start at Coder Society on April 7th. So if you’re into hacking on the Cloud Foundry core bits or if you’re interested in hacking on apps deployed to Cloud Foundry come and hack with us. In addition I’ll be putting on two workshops:

  • On Premise, Off Premise Cloud Foundry => We’ll dive into, and get hands on, with identifying and connecting Cloud Foundry Environments regardless of their premise. Removing boundaries, that’s what this is about.
  • Cloud Foundry + Iron Foundry and Bridging the Gaps => Now we’re talking FULL stack across every major stack. Iron Foundry, the missing linq in Cloud Foundry. Adding .NET & having it play nicely with Node.js, Ruby on Rails, and more. We’ll also dive into SQL Server, Mongo, and how to make the best use of RDBMS + NoSQL bits. Making the most of the abilities with PaaS.

Cloud Foundry Open Tour, The PDX Stop

The VMware sponsored Cloud Foundry Open Tour has a stop lined up epic Portlandia! There will be a pretty bad ass crew there of people you’ll want to meet and talk to about Cloud Foundry’s direction, design, enterprise cloud offerings such as Stackato, Tier 3, and others. On twitter, if you don’t follow these people and you’re stepping into the future with PaaS, you should follow them (click their names for their respective twitter account):

…and others, come attend and you’ll get to meet them all. I’ll also be there and you can follow me on twitter too if you want (@adron).  😉

Our good friends from ActiveState will also be there, bringing their awesome Stackato Cloud Foundry based offering! The Iron Foundry Project also just released full support for the Stackato based Micro Cloud Foundry VM with new Micro Iron Foundry bits too.

Coder Society…

Oh yeah, the Coder Society, I’ve got the info on the Coder Society Inaugural meet up announcement coming tomorrow first thing in the morning at 5am. If you haven’t checked out Coder Society yet, hit the site and join the list. No, don’t get up that early, I’m just guessing that’s when I’ll be done with it and click on the publish button!  😉

Going Hard Core: Vmware’s Cloud Foundry Forks Uhuru & Iron Foundry Review

Back in December Uhuru Software and Tier 3 released two different forks of Cloud Foundry that enabled .NET Support. I wasn’t sure which I wanted to use, since I had some serious Cloud Foundry work I was about to dive into, so I’ve picked them apart to determine how each works. This is what I’ve found so far.

Uhuru

Iron Foundry

That covers the basic links to the downloads, community, and other points of presence, now it is time to dig into some of the differences I’ve found. First though, I got a good environment setup to test each of the forks, from within the same Cloud Foundry Environment! So this is how I’ve set this up… Setting up the Virtual Machines w/ VMware Fusion I suspect, you could tangibly do this with some other virtualization software, but VMware is probably the easiest to use and setup on OS-X & Windows. I haven’t tried this on Linux so there’s another space I’d have to give it a go. Using ESX I also suspect this would also be extremely easy to setup. It’s up to you, but I’m doing all of this with VMware Fusion. The environment I’m using for this comparison consists of the following virtual images:

Micro Cloud Foundry Instances

These instances were easy, I just downloaded them from the Cloud Foundry Site on the Micro Cloud Foundry Download Page. The simple configuration is outlined in “Micro Cloud Foundry Installation & Setup“.

Iron Foundry Instances

For this, I downloaded the available VM on the Iron Foundry Site here.

Uhuru Instances

I setup the Uhuru Instances using the instructions available from Uhuru Software here.

Setting up Some Controllers

So the first thing I did was dive into setting up a controller, or actually two, because I wanted to have an Iron Foundry Environment and a Uhuru Software Environment. After that I’d then try to mix and match them and figure out differences or conflicts. The instructions listed under the “Uhuru Instances” has information regarding setup of a controller for the Uhuru Software Environment, which is what I followed. It is also a good idea to get setup with Putty or ready with SSH for usage of Cloud Foundry, Uhuru Software, and Iron Foundry.

Windows Server 2008 Core, A Quick Run Down

I needed a Windows Server installation with low overhead, clean installation, that providing hosting and other features. I decided I would check out the Windows Server 2008 Core R2 installation and see how it stacked up. This is a quick run down of what is available on Technet and what I used to setup the server core for usage.

First there is the getting started guide. This write up provides a basic description of what the Windows Server 2008 Core R2 is, laying out the services and other characteristics of the installation. Specifically for the R2 version of the core installation these services are available:

  • Active Directory Certificate Services
  • Active Directory Domain Services
  • Active Directory Lightweight Directory Services (AD LDS)
  • DHCP Server
  • DNS Server
  • File Services (including File Server Resource Manager)
  • Hyper-V
  • Print and Document Services
  • Streaming Media Services
  • Web Server (including a subset of ASP.NET)

One of the first things you’ll need to do is administer the server core installation. This document details the ways a server core instance can be administered such as:

  • Locally and remotely using a command prompt.
  • Remotely using Terminal Server.
  • Remotely using Windows Remote Shell.
  • Locally or remotely using Windows PowerShell.
  • Remotely using an MMC snap-in.
  • Remotely using Server Manager.

Known Issue: There is also an issue with core installations that is brought up. Not all management tasks can be performed by the MMC snap-in. An included script can be used to configure the things unavailable via MMC. The script is in \Windows\System32 folder. The following command provides configuration options for the unavailable MMC features:

[sourcecode language=”bash”]cscript scregedit.wsf /?[/sourcecode]

Three more cool things before moving on:

  1. Cheat Sheets or as they’re labeled “Job Aids for Server Core Installations of Windows Server 2008 and Windows Server 2008 R2“.
  2. Additional References for Installing a number of features including; Backup, Bitlocker, File Server, and a host of other features.
  3. Installing Server Roles onto the server core. This section provides step by step instructions to get various roles setup on the server including file sharing, etc.

Now that I’ve covered the standard things the server does and can do when configured, there are a number of things that need installed to really make the server useful. At least, for what I need it for. The first thing I need is to get .NET 4.0 running on the server. Onwards!

.NET 4.0 Standalone Installation for Server Core

I’ll admit right up front installing this shows a gross neglect that Windows 2008 Server Core has. First navigate, on a completely different machine, and download the .NET Standalone Installation for Server Core. Now, this is one of those situations where it appears Microsoft just completely misses how the Internet might work or should work. Why is .NET 4.0 not provided via FTP or some way that I could actually download it from the actual server that needs it? No idea, but you can’t. Once you do have it downloaded on a completely different machine (in my case, I used trusty OS-X) you can then find a way to get it onto the machine. I used a FAT formatted (yeah, in this situation I’ve had to return back a couple decades to FAT technology to get a 2011 piece of technology to work) USB Stick. Once I got the installation file on the USB Stick I just mounted that up and copied the file over the machine and installed it.

Instructions per the Download Page

    1. Important: Make sure that your computer has the latest Windows service pack and critical updates. To find security updates, visit Windows Update.  Including the following requirements (The image (Fig 1) shows what items I included – the extra items I included are unrelated to this blog entry):
      1. Turn on WoW64:[sourcecode language=”bash”]Start /w ocsetup ServerCore-WOW64[/sourcecode]
      2. Turn on .NET 2.0 layer:[sourcecode language=”bash”]Start /w ocsetup NetFx2-ServerCore[/sourcecode]
      3. Turn on .NET 2.0 layer for WoW64:[sourcecode language=”bash”]Start /w ocsetup NetFx2-ServerCore-WOW64[/sourcecode]

        Installing Multiple Services/Roles for the Server Core
        Installing Multiple Services/Roles for the Server Core
    2. On this page, locate the Download button and then click it to start the download.
    3. To save the download to your computer so that you can install it later, click Save.
    4. To cancel the download, click Cancel.
    5. After installing .NET Framework 4 on Windows 2008 R2 SP1 Server Core, it is highly recommended you install critical .NET Framework 4 updates available on Windows Update.
Installing .NET 4.0 for Server Core
Installing .NET 4.0 for Server Core

PowerShell, Now We’re Getting Somewhere!

Alright, the server is starting to be useful now. We have various services and prospectively other networking capabilities, all depending on what we would have wanted to install during the first section  of material. We also have .NET 4.0, so we can run some honest to goodness useful .NET Applications, such as web apps, and more.

Now that we’re all wrapped up, it is always a good idea to give a Windows Server one more firm kick before we put it into production. To shutdown, restart or otherwise give the server that kick, just type shutdown and you’ll find all the switches available. The most common one I use is to just shutdown right away (relatively, it still takes its time shutting down).

[sourcecode language=”bash”]shutdown -s[/sourcecode]