We try to improve our infrastructure in Q1 of each year to make sure we do not build up technical debt and stay on top of the most current trends in technology. We have four goals when we look at this each year:
- Improve Availability – reduce the chance our systems will go down, and in the event of real issues that we recover in as automated and quick way as possible.
- Improve Speed – it is well know that a tenth of a second is meaningful on e-commerce sites. We want to make your race registration as fast as possible to give your participants a great experience and get them thru checkout as quickly as possible.
- Improve Security – make sure your data and participant data is secure.
- Improve Scalability – make sure if there is a crush of people signing up for races, that we handle the load without performance loss.
We have done a wide variety of changes the past 2 months we have been working on this. Probably the most visible and significant are the 0.5 Second page speed progress we have made:
January 11-17, 2016:
Remember, this is a blended rate across Desktop and Mobile (about 52% Mobile Phone access). While a Half Second difference does not seem like a lot, studies have show it can make a 7% difference in conversion. Reference 1, Reference 2. And perhaps more importantly, page speed can affect your Google Ranking – so RunSignUp speed is one of the reasons why race websites on RunSignUp rank so highly.
Here is a list of the significant improvements we have made:
- Aurora Database Upgrade – This is probably the most important upgrade we made since it improved speed, availability, and scalability. The chart on the right shows the decrease in time for some of the database calls that we make – dropping from an average of 40 milliseconds (0.040 seconds) to less than 10 milliseconds.
- Hardware Upgrades – we upgraded a number of our hardware components to faster, more modern equipment. This was largely responsible for the reduction in the web server response time shown on the right.
- Optimized Page Load Time – we made a number of changes, like optimizing jQuery library downloads, reduces CSS size, asynchronously load Facebook, removed
AddThis share and replaced with better share options, and more. This led to drops in page load, which is especially important for mobile users on slower connections.
- Optimized Database Backups – the move to Aurora gives us database backup on a per minute basis. In addition, we added the capability to store permanent snapshots of the database.
- Improved Availability for Batch Jobs – we created better mechanism for running our routine batch jobs in the event the main batch job server is down.
- Failover for Read Replica Database – Providing higher reliability in the event a read replica database becomes unavailable.
- Software Upgrades and Logging Improvements – we updated to current versions of our core software components and added better long term storage for logs.
- Upgraded Load Balancer Error Handling – we now detect issues in the load balancers better, and have a smoother failover capability to users should see no disruption in service if there are issues at this tier.
- Improved Participant Report Performance – we made changes to the database and queries to optimize one of the most commonly user reports – the Participant Report. On fast connections you can now see sub-second response on reports even when you have over 20,000 participants.
- Security Improvements – we will not talk publicly about these.
We see our investments in modern infrastructure to be a core value (along with processing money efficiently and providing features to improve your race) we can provide to races. Most of these improvements are beyond the capabilities of most races (and even most race registration companies), but they are critical for providing the best platform for you and your participants.
7 thoughts on “Infrastructure Improvement Summary”
Do you have your own servers or is the state of the art to rent space from a provider such as Amazon? I’m not familiar with how this is done and what is the most cost effective, efficient way to transact all the transaction. It would seem that renting server space would mean less overhead of having someone on-site to oversee servers. Just wondering. Thanks! Mark
Amazon AWS is the leading cloud provider (http://fortune.com/2015/05/19/amazon-tops-in-cloud/). In addition to having multiple redundant data centers they have an amazing set of services that make our jobs easier in providing the the best in availability, security, scalability and performance for our customers. No modern apps run on their own servers anymore…