Learn how dockerised infrastructure in the Cloud allowed an online ticket-selling platform to meet the demands of music fans.
Analysis and challenge
GoOut - a ticket selling internet platform from central Europe had a problem with outages. Their application was a built as classic monolith hosted by a local IaaS provider. It struggled to keep up with GoOut's success and couldn’t handle the increasing amount of traffic properly. Outages happened frequently during peak times, resulting in lost business opportunities.
Hand in hand came technical debt in the architecture - deployments of new versions and sharing new features were not fully automated and were done once every couple of days which significantly slowed the development down. Development, staging, QA and production environments were all different, which caused issues with integration.
“Any sort of outage became absolutely unacceptable for ticket-selling offices using our product, as it immediately created cues of angry customers. With the previous solution there was a big risk of this kind of situations happening very often”
Vojtěch Knyttl - CTO, GoOut
With the upcoming concerts of several international superstars at the biggest national stadium the situation needed to be resolved quickly. The company knew their infrastructure cannot handle expected high traffic.
“We were looking for innovative technology that would help us solve the problem and Revolgy was a very helpful partner in the entire process of implementation”
Vojtěch Otevřel - CEO, GoOut
The entire system was carefully analysed and the decision was made to dockerise the workloads and use Google Kubernetes Engine. Most components of the infrastructure were replaced by services provided by Google Cloud Platform which allowed for better scalability. We also built a new delivery pipeline together, including feature staging branches (gitlab review stages).
“Together, we used Google Cloud services, to create a well-performing, scalable and safe infrastructure platform that helps them deliver the best possible experience to their customers at all times”
Marek Bartik - Cloud Architect, Revolgy
Ready for future challenges
Unplanned outages have been reduced almost completely. All operations have been optimised and simple tasks have been automated which allows GoOut's software engineers to focus on the development rather than maintenance. They can now deploy multiple new versions a day without the slightest outage even at peak hours.
GoOut's new Kubernetes-based architecture is ready to grow hand in hand with their business
“We saw the benefits of the newly implemented solution very clearly for the first time, when the tickets for Ed Sheeran's concerts went on sale. All other ticketing services in the Czech Republic had major outages and were unavailable for hours. GoOut was the only one that withstood the high traffic and kept on selling the tickets.”
Vojtěch Otevřel - CEO, GoOut
Instead of storing unstructured data on persistent disks or local file systems, GoOut leveraged the Google Cloud Storage buckets for storing objects such as uploaded profile photos which are now served fast and cheap from the bucket directly and the microservices in front of them are now stateless and can be easily scaled.
We replaced the single, self-managed reverse proxy for http(s) with one global Google HTTPs LoadBalancer in front of the Google Kubernetes Engine cluster and Backend Buckets. All is fronted with one single anycast IP address, highly available, a scalable and configurable reverse proxy which allows for TLS termination and is highly observable. Thanks to Google HTTPs LoadBalancer, GoOut can easily monitor all incoming http traffic, debug and alert when needed.
BigQuery is used for two use cases. First one is for analytics of the http traffic on Google HTTPs LoadBalancer for SLIs and SLOs. The second one is for serverless analytics of their collected data by GoOut data scientists to understand their customers and market. The data is stored in their main SQL datastore, thanks to BigQuery, they can easily export the schema and data and run very fast ad-hoc queries on the dataset without impacting application’s main datastore’s performance.
Stackdriver helped with setting up and monitoring all SLIs and SLOs, alerting, aggregated logging and tracing without the need of building such a complex system by themselves.