As a Developer Advocate @ Akamai Technologies, I have the rare opportunity to consult and collaborate with companies and their developers worldwide to help improve their tech stack by making their web applications and API faster and more secure.
In the ten years that I have been working at Akamai, it has been a fantastic journey to see so many developers utilize the Akamai solutions to help power and protect their users online.
Moving forward, I’ll be showcasing a select number of developer use cases that I am collaborating on.
Today, I will be highlighting Ludum Dare, an online game jam competition, that I have had the pleasure to work with over the last 6 months to help improve their web application and API microservices by adding content delivery and caching solutions, improving the overall availability and security by adding the industry-leading Web Application and API Security solutions and finally, bring brand-new functionality to the website that allows users to submit their developed games directly into the Ludum Dare community.
Ludum Dare is operated by Mike Kasprzak, who has been involved with Ludum Dare since the very beginning, starting in 2002. The game jams run 2 to 3 times a year and attract over 5,000 game developers per event. Participants challenge themselves to make a brand-new game over the course of a weekend based on a theme that gets selected by the community.
As an avid gamer myself, it is inspiring to see such a huge crowd come together and collaborate on these mini-projects.
With the event growing in popularity, it is critical that Mike Kasprzak can run the website and API without too much manual interventions during the event. The need for a highly available website that can withstand both flash crowds and potential cybersecurity attacks is very important, especially during the 2 weeks surrounding the game jam when traffic surges.
Ludum Dare has been running on the Linode platform for 7 years. Operating a small stack of Linux and PHP servers, Linode was the perfect choice from a self-service and cost-effective standpoint. While we were working on a migration plan to add Akamai's content delivery and application security solutions to Ludum Dare, Akamai also acquired Linode, to add cloud computing solutions to the portfolio.
The most important goal of this migration was to ensure high availability during the event and add the ability to upload game submissions and play games directly on the Ludum Dare site. Previously, developers used other third-party hosts and were only able to add a URL to their game file, sending participants to a wide range of other host sites.
During my initial conversations with Mike Kasprzak, we decided to simplify and streamline theprocessing and computing functions on the Linode servers. API requests such as logins and game submissions still use the Linode servers to communicate with databases.
The EdgeServers contain both the CDN configuration as well as the Application Security configuration. With a rich set of web application and API security rules, Akamai inspects requests coming to the website and ensures that they are legitimate and harmless requests.
Potential security threats such as injection attacks can be mitigated and make sure they don’t end up on the Linode server. Only legitimate requests and requests that aren't cached are be forwarded securely to the Linode server.
With this setup, the amount of requests to the Linode server decrease drastically. Throughout the 51st Ludum Dare event, we saw an average of 83% offload on the volume of requests. All the large files and web assets were cached by Akamai and the Linode servers focused fully on handling API requests. This design ensured that the event went very smoothly without any noticeable service disruptions and allowed the community to focus on creating their games, interactn with the each other, and easilysubmit their game builds.
During the event, we saw over 2400 submissions come in and 35% of these used the brand-new game upload process that was available. Having the ability to upload game builds directly on Ludum Dare created more interactivity in the community. Instead of downloading a game file to run on your computer, the games can now run directly within the browser. HTML5 games, games developed in Unity or Godot are all playable directly within Chrome, Firefox, and Safari browsers. The community was thrilled with the new capabilities, and now even more eager for future improvements and additions.
One of the joys of working at Akamai is creating that spark with developers and opening their eyes to the possibilities of Akamai. By optimizing the infrastructure and freeing it up for new functionality, it can help developers maximize the potential of their platform and in terms grow their user base and community.
It really has been a joy to work with Mike Kasprzak and Ludum Dare these last 6 months and we have more plans to add more functionality for the upcoming Ludum Dare events in 2023!
If you are interested in learning more about this developer use case, consider watching the video series I have created. You can find on the Akamai Developer YouTube.
In two weeks, I will dive deeper into this use case by breaking down the entire infrastructure with a helpful reference architecture we have created as well as Terraform code examples that you can use to quickly set up an Akamai and Linode infrastructure.
If you are interested in joining a game jam yourself or see what the developers came up with, check out Ludum Dare. The next event will start in January 2023.
For more information on Akamai's solutions, please visit: Akamai TechDocs
You can find the full reference architecture for this developer use-case here on Akamai.com