TicketBox is an online ticketing platform that helps event organizers in Vietnam and South East Asia to sell tickets, with 3 branches in Vietnam, Thailand, & Singapore.
Since October 2013, Ticketbox has built partnerships with many leading Vietnamese organizers who have had great successes organizing music concerts, K-Pop music events, formal events, etc. In 2015, in collaboration with e-book company Ookbee and its 6 million users, Ticketbox Thailand was founded as a ticketing channel for fans in Thailand to enjoy with convenience and security, and to support organizers with their ticket traffic.
By 2016, TicketBox has helped South East Asia organizers sold over 500,000+ tickets.
1. The challenges
When we approached, TicketBox had a decentralized system. There are 3 system running business of Ticketbox – ticketbox.sg, ticketbox.vn and ticketbox.co.th. All hosted on Azure, each contained a single windows server for webserver & a single SQL server for database. Each system was hosted in a country independently.
Because Ticketbox was using a single webserver, issues are inevitable:
- Fragile system with only a single entry point, no load balancing mechanism applied.
- Storage problem when store static files, uploaded files to one place.
- Unable to scale up when systems must serve too much requests from end-users.
- Caching: no solutions for auto failover redis server yet.
2. Our solution
We persuaded TicketBox to move from Azure to AWS, designed centralized system architecture, performed migration & deployment, and setup autoscaling system.
The architecture we applied for Ticketbox includes:
- Virtual Private Cloud: to manage Private Network likes traditional VPN
- EC2: Elastic Compute Cloud + RDS multi AZ for SQL Server
- Security Group + Network ACL for Firewall
- Auto Scale: Elastic Load Balancer (ELB) work with AutoScaling Group (ASG), the system can auto scale up/down and all instances in ASG put them under ELB.
- Simple Storage Service (S3): allows storing unlimited files, very high availablity and durability
- Elasticache: multi AZ and cluster mode ON for Redis engine
3. The outcome
- Database: no worries failover problems by using RDS Multi-AZ and automatically backup snapshots daily
- AutoScale: 4-5 times/day, highly avalable with no record of system outage up till now.
- Servers: 2 instances running in normal traffic, scaled up to 4 or 5 instances when increases spikes
- Performance: acceptable to good performance
- Cost Optimization: reduce infrastructure cost by20%
- Storage: no file loss incident yet.