Friday 6 November 2009

TrialTracker deployment on the Cloud

By Highton Gordon -Development Director

TrialTracker IXICO’s image management tool is trying to be a chameleon. Changing colour to suit it's environment and blending seamlessly in. Not the Jungles of Africa or Madagascar but the IT jungles of server rooms and data centers or preferred suppliers and ingrained relationships. Management of IT systems is a jungle, a growing cost for most companies and an administrative nightmare. As TrialTracker moves into this domain we want it to fit in seamlessly with whatever infrastructure and expertise the partner company already has. Administration of TrialTracker should not be a barrier to adoption.


With this goal in mind the architecture has been kept as technology neutral as possible. The servers should run on any flavor of Linux (or Unix) and have been tested on Ubuntu. The development language is Java. The database is any SQL92 compatible RDBMS - tested on PostgreSQL. Any servlet 2.5 container will work - tested with Apache Tomcat.


So for academic groups they can use TrialTracker on OpenSource infrastructure. For commercial use it can be validated on an infrastructure that matches the current company standards. For example if the company is an 'IBM' house then they could use AIX O/S, a WebSphere Servlet Container and the DB2 database. Obviously this type of deployment requires a validation step before it can be used - but there should be no code changes needed.


Why the cloud?

Well, the industry is heading that way. It builds on the flexibility that virtualization starts. The concepts have inherent value on their own. The concept can be applied on both internally or external hosted sites giving users even more conttrol. Organizations like Amazon are making the Cloud a product offering in it's own right. A very flexible and affordable product offering that piggybacks on the huge infrastructure investment they have made to support their core business. They do good web!


The cloud allows you the flexibility to grow and shrink your IT infrastructure as business needs, without:

- long lead times
- contractual agreements
- large capital investment

The cloud allows us to test on different operating systems and switch between them quickly without having to double up our test hardware.

Finally - it provides (almost) universal access across the globe. We did recently encounter a problem trying to access the Amazon Cloud from within the great firewall of China :-(


Administering systems on the cloud
(AKA driving from the back seat - 4000 miles away)

We have tried the On-Demand and the Dedicated hosts. Both are relatively simple to administer. A virtualized host image (AMI or Amazon Machine Image in the Amazon experience) is first created with the preferred operating system, support systems and the application (TrialTracker in our case). Once this image is created and named it can be started and stopped as needed. Multiple instances of this image can be started in parallel. Access to hosts on the Amazon cloud is through SSH (with a gpg key for security). Administration of the AMI can be done through Amazon Console or through a Firefox plug-in (ElastiFox)


Some gotcha's with the on-demand service

- Every time you start an on-demand instance - it is given a new IP address.
- When you shutdown an on-demand instance any volatile data is lost. It will restart in exactly the same state each time.

If you run an On-demand host, your application will need to be 'Cloud aware' and not sensitive to these limitations.
If you go for a dedicated hosts then no such problems occur.


We have deployed on Amazons US data centre - this allows us to test performance across the pond, plus it's good to spend US$....everyone wins!