Something that our airport clients London Luton Airport and Birmingham Airport have in common is that they often get spikes in traffic. This can be both legitimate (e.g. in response to adverse weather conditions) and illicit (e.g. DDoS attacks). It is not uncommon to see an uplift of over 1000%+ in a short period of time.
It is critical for airports that their websites remain up and stable. They not only provide important information for travelers but are also revenue drivers for the airport itself. They often have mandated compliance protocols that must also be adhered to.
There are various techniques that should be employed to provide resilient services, including:
Utilize a CDN
In a simple setup a user requests a website which is then routed to the hosting infrastructure to return data. The data that is returned server side could be from a database, a SaaS platform or some other source.
As traffic levels increase this becomes inefficient. Every user has their own data connection and is creating load on the server. A better way is to decentralize the data.
A CDN (content delivery network) stores a cached version of the data in nodes within its global network. This reduces the number of requests to the origin server as users are served content from the nodes instead.
The caveat to this is that these cached pages are effectively static pages – they have no interaction with any business logic. To get around this, rules can be used to only cache a subset of pages. In the case of airports, it is important that dynamic data, such as flight times, is accurate, so these are excluded from the cache.
There are various options for CDNs, but we use Cloudflare, a leader in the industry. We aim for a ratio of 80% traffic served by Cloudflare and 20% served by the origin server.
An added benefit of Cloudflare is its DDoS protection and mitigation – it uses AI to proactively track traffic trends and dynamically blocks bad actors.
Load balancing
Having only one server creates a single point of failure (not only for traffic spikes, but for other factors such as hardware failure).
The solution to this is to have multiple servers and to use a load balancer, such as Azure Frontdoor, in front of them. The load balancer sends traffic to the servers based on a specific rule (e.g. fixed percentage, geographic location etc.
Scalable infrastructure
Flexibility of resource is key, and allowing resources to scale effectively is important when dealing with spikes. There are two main methods of scaling:
- Vertical scaling: Increasing the resources (CPU, RAM) of a single server.
- Horizontal scaling: Adding more servers to distribute the load more effectively.
They are both useful, and it often comes down to the underlying architecture as to which is best suited. It is also easy for costs to spiral using this approach, so creating an upper limit is imperative.
Caching strategies
Caching (persisting data) significantly reduces the load on backend systems by serving frequently requested content from a temporary storage.
It is important to have a multi-level caching strategy that includes some or all the following:
- Output caching – for example, .NET Core provides output caching that allows the storing and delivery of the output of its controllers and views.
- CDN: as mentioned previously.
- Browser caching: storing static assets locally, decreasing the number of requests sent to the server.
- Redis cache - allows output cache to remain consistent across multiple web servers.
- API – many 3rd parties automatically cache the data they return.
Conclusion
Handling traffic spikes on airport websites requires a multi-faceted approach to be successful – it is not enough to implement one strategy and ignore the rest.
If you are suffering periods of downtime or poor performance get in touch for a chat.
Get more of this by subscribing to our regular newsletter