Nimbits Server, a data historian, is built from the ground up to be scalable. This means its processes can be split among any number of computers. It makes the setup / installation more complex which is why companies like Amazon and Google offer to provide this kind of scalability out of the box. Indeed, you can download and install a Nimbits Server very quickly onto Google's infrastructure and tie it into your domain so the fact that the servers aren't physically on your network is relatively transparent.
There are reasons to build your own internally. You may have a slow internet connection, or very high data demands. You can also use an internal Nimbits Server to compress and summarise averages of your high volume data, and then relay summary values to your App Engine instance.
Building a nimbits server involves setting up a virtual machine environment. This means you can continue to add more virtual machines running across several physical computers as your demand grows. Data and load is seamlessly balanced amongst the instances.
Nimbits leverages an open source technology called AppScale to run Nimbits Server locally across any number of virtualized Ubuntu Linux Servers
Setup can be complicated. Please consider contacting us for a quote on setting this environment up for you.
I have a pretty powerful server next to me for this, but any PC with virtualization capabilities will do. You can determine if your hardware will work using the KVM install process. I installed the Ubuntu Server Operating System and also added a second, very fast and massive hard drive for keeping my Virtual Machine Images in. I also configure KVM with a network bridge. This makes each virtual machine able to obtain an IP address on my network.
wget http://appscale.cs.ucsb.edu/appscale_files/appscale-1.6.4-kvm.tar.gz //Unzip the Archive: tar -zxvf appscale-1.6.4-kvm.tar.gz //transfer root.img to my server and into my home dir on the server scp root.img benjamin@virt-host:~
The Appscale docs include a very clever way to set the root password on these images by mounting and editing the image. I prefer to skip this step and set the root password after I login as "appscale" the first time.
Next, I want to put 4 copies of this img in the directory where I keep my disk images. I actually have a second, very fast hard disk in the server specifically for my virtual drives. I have it mounted under /mnt/img - so i'm copying root.img into it 4 times, each with a name: nimbits-controller.img nimbits-node1.img nimbits-node2.img and so on. Appscale will balance load and recources between these vm machines.
We're going to use one of the virtual machines as a controller. Each machine will need to be spun up and have an IP Address assigned to it.
On my workstation, I installed virt-manager with is a ui to create and control virtual machines. I can now connect to my server and create a virtual machine using the first disk image nimbits-controller.img. Be sure to connect to the server you copied your images to and that the server has been configured to use the location of the images as one of it's KVM repositories.
Create the controller and the nodes, and with each one login as user "appscale" password "appscale:
Follow the process in the appscale KVM Deployment document to setup your controller and connect it to any of the server nodes you created.
On the controller, edit /etc/apt/sources.list to add the Nimbits repository to the bottom:
deb http://deb.nimbits.net/packages/ ./
at a terminal, run the following commands:
sudo apt-get update
sudo apt-get install nimbits
You now have the latest version of Nimbits Server and the SDK in your /opt/nimbits directory. Using the same process you followed to deploy the sample AppScale app.
Edit the file /opt/nimbits/server/war/WEB-INF/appengine-web.xml and change the app id to your Nimbits Instance.appscale-run-instances --ips ips.yaml --file /opt/nimbits/server
Follow the process to setup an admin email and password, which Nimbits will use for your account.
You can now navigate to your appscale server using the controller's IP address i.e http://192.168.1.40. Login to appscale and use the link for Nimbits to run your app.
Before running nimbits for the first time, you must manually run a system maintenance service. Just browse to, for example. http://192.168.1.40/cron/systemCron
If we release a new version of Nimbits Server, you can upgrade your environment by running on the controller:
sudo apt-get update sudo apt-get upgrade appscale-remove-app --appname nimbits #the app name is whatever you have in your /opt/nimbits/appscale/war/WEB-INF/appengine-web.xml file appscale-upload-app /opt/nimbits/appscale
Please note that Appscale may change the port of the url your app uses when upgrading. Browse to your controller's IP to login to AppScale, there you can monitor and control your Nimbits Instance.