Recently, at skyscanner, we designed, built and deployed our own car hire product from scratch. In this series of blog posts, I am going to describe the architecture from initial prototype to final MVP (minimum viable product) and show how our plans and approach changed as development proceeded.
Our project design goals were:
1. Complete horizontal scaleability of all components
Technical Debt: a neologistic metaphor referring to the eventual consequences of poor or evolving software architecture and software development within a codebase. An example? (Actually I'm not sure if this qualifies or is more of a "misguided genius" thing): I need to make up two mutually exclusive lists for markets to support an existing provider and a new provider of the same Ancillary product.
Sadly installing postgresql and postgis is not as straighforward as it could be on centos 6.X as the latest stable verisons of postgresql and its various extensions are not in any of the default repositories.
For reference, I’m using an ESXI host and and a vanilla Centos6.4 64bit client. The client was installed from the minimal image (CentOS-6.4-x86_64-minimal.iso).