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
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.
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.
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