Is Brightbox Cloud good enough for my Grails apps?

One of the eternal questions in Grails developer’s minds is ‘where do I deploy my toy projects?’. Until VMWare gets their act together, we will all be looking for the next Grails version of Heroku.

Recently, I came across the beta program for the Brightbox Cloud and thought it would make an excellent environment for a Grails playground. The Brightbox cloud promises to be the UK’s first IaaS (Infrastructure as a Service) provider. This post will summarize my experience trying to get a Grails instance up and running on Brightbox Cloud.

Applying for a Beta Account

I applied for a beta account on Nov. 9 and received an account on Nov. 18. The process was pretty pain free, enter your email address in a box and get free servers, yay!

What is in the box?

Initial allocations are amazingly beefy. With the free cloud account, you get an automatic allocation of 2048MB of RAM and 3 cloud IPs. Definitively enough to run more than a few instances of Tomcats, Grails and your favorite SQL / NoSQL boxen.

Getting set up

Creating your disk images and associating them with an IP is covered in depth in these pages.

Their tools were definitively geared more towards Linux / Mac junkies than Windows users. Their CLI tool installation page seem to suggest: “mac users: do this, linux users: do that, windows users: die”.

The command line tools seemed a little less refined than the Amazon web console but definitively provide more choice than other cloud providers like Stax.net, Mor.ph or Joyent.

However, it was very easy to create and destroy new server images, which was cool.

blah:.ssh tomaslin$ brightbox-servers create -n "grails" img-hm6oj
Creating a nano (typ-4nssg) server with image Ubuntu Lucid 10.04 server (img-hm6oj)

 id         status    type  zone   created_on  image_id   cloud_ips  name  
----------------------------------------------------------------------------
 srv-qjt81  creating  nano  gb1-a  2010-11-24  img-hm6oj             grails
----------------------------------------------------------------------------

It took about 30 seconds for the server to be created and be ready to use:

blah:.ssh tomaslin$ brightbox-servers show srv-qjt81
id: srv-qjt81
status: active
name: grails
description:
created_at: 2010-11-24T02:00
deleted_at:
zone: gb1-a
type: typ-4nssg
type_name: Brightbox Nano Instance
type_handle: nano
ram: 512
cores: 2
disk: 20480
image: img-hm6oj
image_name:
private_ips: 10.197.98.114
cloud_ips:
cloud_ip_ids:
hostname: srv-qjt81.gb1.brightbox.com
public_hostname:
snapshots:

From there, it was just another typical Ubuntu box that I could add Apache, Hudson, Redis, Tomcat and Grails to. The list of servers were very up to date, and you had yoru choice of Linux flavours and architectures, which was really nice.

Essentially, the Brightbox Cloud beta provides you with three servers with 512 megs of Ram and 1.3 gig of disk space. This should be enough for a budding developer looking to deploy small grails toy projects and experiments.

Future Cost

Currently, the cloud beta is free for developers. But the offering provided is comparable with their Nano instance, which runs for about £40 a month. Basically, you’re getting £120 worth of server, which is pretty nice. Their environment is easy enough to work with that I would definitively give them a thumbs up for hosting future Grails applications.

Summary

Price: Free ( for now )
Servers: 3 – but as many images as you want.
Memory: 512 Megs

I think this would be sufficient for running hudson instances or small web applications. It won’t handle the load of a high traffic website with billions of domain objects, but it seems good enough for my grails experiments. I particularly like the fact that it is just another vanilla Ubuntu instance. So if you are looking for a free temporary hosting solution for your Grails / Rails / whatever apps, the Brightbox cloud is definitively worth a look.

System Info
Here is some sysinfo porn of the default ubuntu instance on 10.10, for your viewing pleasure:

ubuntu@srv-qm1wx:~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/vda1             1.3G  530M  725M  43% /
none                  246M  144K  246M   1% /dev
none                  248M     0  248M   0% /dev/shm
none                  248M   52K  248M   1% /var/run
none                  248M     0  248M   0% /var/lock

ubuntu@srv-qm1wx:~$ free
 total       used       free     shared    buffers     cached
Mem:        507664      72848     434816          0       7024      40860
-/+ buffers/cache:      24964     482700
Swap:            0          0          0

ubuntu@srv-qm1wx:~$ cat /proc/cpuinfo
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 6
model name    : QEMU Virtual CPU version 0.9.1
stepping    : 3
cpu MHz        : 2266.800
cache size    : 32 KB
fdiv_bug    : no
hlt_bug        : no
f00f_bug    : no
coma_bug    : no
fpu        : yes
fpu_exception    : yes
cpuid level    : 4
wp        : yes
flags        : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx lm pni hypervisor
bogomips    : 4533.60
clflush size    : 64
cache_alignment    : 64
address sizes    : 40 bits physical, 48 bits virtual
power management:

processor    : 1
vendor_id    : GenuineIntel
cpu family    : 6
model        : 6
model name    : QEMU Virtual CPU version 0.9.1
stepping    : 3
cpu MHz        : 2266.800
cache size    : 32 KB
fdiv_bug    : no
hlt_bug        : no
f00f_bug    : no
coma_bug    : no
fpu        : yes
fpu_exception    : yes
cpuid level    : 4
wp        : yes
flags        : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx lm pni hypervisor
bogomips    : 4533.60
clflush size    : 64
cache_alignment    : 64
address sizes    : 40 bits physical, 48 bits virtual
power management:

ubuntu@srv-qm1wx:~$ cat /proc/meminfo
MemTotal:         507664 kB
MemFree:          434824 kB
Buffers:            7032 kB
Cached:            40872 kB
SwapCached:            0 kB
Active:            28100 kB
Inactive:          29116 kB
Active(anon):       9432 kB
Inactive(anon):       76 kB
Active(file):      18668 kB
Inactive(file):    29040 kB
Unevictable:           0 kB
Mlocked:               0 kB
HighTotal:             0 kB
HighFree:              0 kB
LowTotal:         507664 kB
LowFree:          434824 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:          9384 kB
Mapped:             5968 kB
Shmem:               200 kB
Slab:              10820 kB
SReclaimable:       6360 kB
SUnreclaim:         4460 kB
KernelStack:        1144 kB
PageTables:          484 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      253832 kB
Committed_AS:      63772 kB
VmallocTotal:     512056 kB
VmallocUsed:        2252 kB
VmallocChunk:     507380 kB
HardwareCorrupted:     0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        8128 kB
DirectMap2M:      516096 kB

3 thoughts on “Is Brightbox Cloud good enough for my Grails apps?

  1. Twice

    Thank for the writeup Tomas. I’ll give Brightbox a look. I have actually put doing grails on hold and learning RoR just because of Heroku. Funny enough my grails experience made RoR palatable this time because I tried learning rails a few years but the ruby syntax always chased me away. Now I am more empowered as I have more tools in my toolbox. Were it not for the lack of options, i would not have learned rails.

    Reply
  2. Ian Moss

    Cheers for the writeup.
    Might look into this for staging servers.
    Just moving into Grails after sometime using RoR.
    In my previous role we used Brightbox a lot for RoR hosting and they were excellant professional hosts, as well as friendly peeps.

    You can’t beat Heroku for speed of starting a quick mockup / prototypey app and getting it hosted literally in minutes. But imagine it could work out pretty expensive for a commercial app. Great for developing and hosting for the first phase/few months of a sites life though.

    Reply
  3. Bala Thiruppanambakkam

    Hi Tomas,

    Thanks for your nice writeup on brightbox.
    I set up brightcloud server with grails and tomcat. I also have mapped cloud ip as described. WHen I ssh in, tomcat servers pages successfully. However when I try to hit tomcat from a brower like http://cloudip:port I am not able to.
    Did you get this configured. Can you please add that to your post or email me

    Thanks
    Bala Thiruppanambakkam

    Reply

Leave a comment