Keeping PTV's data moving, smoothly.
Public Transport Victoria (PTV) services the entire Victorian public transport network, providing timetables, journey planning, network updates and project information for all modes of transport.
The website delivers over 10 million page views per month, with terrabytes of data being served.
With customers moving to and from work, there are clear peaks and troughs in traffic - which also means that real-world events can have a marked impact on website traffic. To address these fluctuations the environment needs to be able to scale up to meet peak demands that could be 200% its normal peak.
With several software stacks for managing multiple channels of incoming and outgoing data, PTV has made a strategic move to "Infrastructure as Code" - where infrastructure assets are defined using configuration and scripts that are subsequently managed in repositories, just like other code.
With Amazon Web Services (AWS) being the primary technology stack for Symbiote's hosting services, it was a natural fit to explore the services available for managing PTV's website.
To meet availability demands the website makes use of multiple EC2 instances across availability zones, behind multiple load balancers. Static content assets are stored in S3, with RDS being used for database storage and ElastiCache (Redis) for caching of dynamic parts of the site. Under the covers, SQS is used to ensure that intensive computational tasks can be farmed off to systems that don't affect site end-users, and SES manages mail delivery. CloudFlare sits in front of the entire stack, providing content caching and request security.
Symbiote's experience with Packer and Terraform were a perfect fit for managing PTV's website infrastructure as code.
Symbiote's build environment
packages drop straight into AMIs built by Packer, which feed directly into
Terraform environment configuration. Having the infrastructure managed in this
manner means spinning up test and UAT environments that completely mirror
production is a trivial exercise, and can be performed in minutes instead of
hours or days.
The solution has delivered a 99.99% uptime over the twelve months in operation, while servicing a traffic increase of around 15% and an end user response time decrease of 15%. This has also seen a decrease in the volume of traffic that backend systems are needing to deliver, due to intelligent caching of data sets, and usage of S3 to serve generated static assets.