After running for six years on a "black box" legacy system, ACT and South Eastern NSW real estate portal allhomes.com.au has migrated its technology stack to open source Linux and Java technologies.
With about 360 screens of the full application, Agile also used the Apache Velocity template engine for more rapid page development.
The application itself was built in Java from scratch and it's not so much a content management system as a data management system with “what the general public view being the tip of the iceberg".
"Allhomes is a data mine and can be used to view listings, historic data, property photos and rental histories, as some examples," Elliot said.
"Open source provides a clear direction and you get results quickly. The developers who come from an open source background do tend to have a more natural ability for working with software. We don't do a lot of eulogizing about it and the All Homes business itself remains focused on the positive outcomes rather than the technology flavour."
The application is hosted across two data centres in Sydney and Canberra where Red Hat Enterprise Linux 5 is used in Sydney and SUSE Linux Enterprise Server 10 is used in Canberra.
During the build phase, MySQL was used as the database, but when the Hibernate enterprise Java persistence layer was used Agile concluded it didn't have the breadth of functionality of PostgreSQL for servicing very high loads.
"PostgreSQL is quite similar to Oracle," Elliot said. "We started with MySQL but swapped it out for PostgreSQL about three-quarters the way through the project."
The allhomes.com.au portal does about 1.5 million page views per day and the only problems Agile encountered were with the newly developed application software.
"We have had memory leak problems with our application software," Elliot said. "However Linux and PostgreSQL have always been chugging away. One issue with PostgreSQL is the master that replicates to slaves with Slony. Slony database replication runs okay, but once you change something you need to be very particular with your manual configurations down stream. And finding out why a replication has stopped can involve some forensics."
To ease replication problems, Agile is looking at a new tool for database cluster management called "HiAv Solution for Postgres" developed in Australia by Fujitsu.
"HiAv basically creates a failover layer for your PostgreSQL instances and manages Slony replication flows from a 'birds eye' view which is handy. It eases the hassle of command line syncing."
The allhomes.com.au portal is running on a cluster of dual-processor, dual-core IBM xSeries machines with 8GB of RAM.
The 2RU rack mounted Hitachi SMS RAID array is used for "a really quick NAS", which Elliot said is very reliable and includes same-day drive replacement.
Elliot believes that where modern organizations want a competitive advantage they would do well to consider implementing bespoke software that leverages commodity "infrastructure" software running on open source.
"Any software will cost you to maintain, but if changes cost more than they should it becomes a big deal – that's why we get a bit nervous with open source tools that don't have active communities," he said. "The allhomes stack is standards based. We stick to a few mainstream technologies because if you end up with a spaghetti system you will pay for it in the long term."
Agile does not yet check in code to open source projects it relies on, but Elliot said that is something the company needs to work on.
"As we grow, the company will be putting code back," he said.
"Allhomes has a lot of data flows and that requires enterprise messaging, which is one example where you need to have broader functionality in your application framework. You get a lot of power and flexibility with an enterprise Java stack that you don't necessarily get with an out-of-the-box Web application framework."