Achieving High Performance with an All‑in‑One Content Caching and Load Balancing Solution
Sqor Sports was founded with a vision of offering direct communication between athletes and fans. The company offers a sports‑centric social media platform, making it easy for athletes to post updates, videos, and images; and for fans to have more information, more conversation, and more personal interaction with their favorite athletes. Sqor Sports’ application is available on Android, iPhone, mobile web, and desktop browsers.
Sqor Sports is growing rapidly. Increased adoption and growing popularity means Sqor Sports is succeeding, but as the user base is approaching one million, the application and underlying architecture have started to experience pressure from the increased traffic. Performance issues started to occur weekly. For example, viral posts and sudden spikes of users accessing an important sports update resulted in huge delays – often 30 seconds and sometimes even 90 seconds – for users downloading pages.
The server‑side development team at Sqor Sports actively monitors the health of the application and can see response times slowing down significantly as traffic increases. Their investigation into the performance issues revealed that every time a page is requested, a server built it from scratch, even if it didn’t include dynamic or customized content. Servers were so overloaded with the redundant work that overall performance suffered. It was time to introduce a caching layer into the application architecture to address the issue.
Although Sqor Sports briefly considered other solutions, including the open source NGINX software as a content cache, they decided to use NGINX Plus because of its additional features, ease of implementation, and responsive support team.
“We started looking into open source NGINX, but there were several advanced features we liked in NGINX Plus, like support for cache purging. The other aspect is that NGINX Plus comes with support and is nicely packaged together, so we don’t have to spend our time and resources rolling our own solution, testing it, and making sure all the bug fixes are in place,” says Michael Vierling, Software Architect at Sqor Sports. “It was an easy decision to use NGINX Plus.”
NGINX Plus is a complete application delivery platform that combines content caching, load balancing, web serving, security controls, and monitoring in one easy to use software package.
“NGINX Plus provides a really nice content caching solution that allows requests to get returned almost instantly to the client. We found that shortly after deploying NGINX Plus, the weekly outages we were having just disappeared,” says Vierling.
After quickly and successfully implementing NGINX Plus for content caching, Sqor Sports also replaced its former software‑based load balancers with NGINX Plus.
Sqor Sports deploys four instances of NGINX Plus in each of its four AWS regions. All traffic comes directly to Sqor Sports’ data centers in AWS, where it’s first managed by NGINX Plus. NGINX Plus directs traffic to the backend application, which is written in a combination of C# and Erlang, although the company is moving towards a full Erlang solution.
“Sqor Sports has been built from day one with the goal in mind to build a global technology platform that reaches every user on earth. The largest, most prestigious sports teams on earth are counting on this, and we are glad NGINX Plus is part of the solution,” says Noah Gift, CTO at Sqor Sports.
“We’re growing pretty quickly, and NGINX Plus was critical to our success,” says Vierling. “Without NGINX Plus, things would have been dire. The original solution we had was just not scaling. So NGINX Plus pretty much saved the day. We put NGINX Plus in, and all of a sudden our system scaled.”
> Acceleration Through Content Caching
Sqor Sports introduced NGINX Plus as a caching tier in its application architecture in order to scale to over 100 million users easily and responsively. Now, when users hit the site, NGINX Plus serves content from cache whenever possible. The backend application servers aren’t burdened, which eliminates slowdowns, and users are able to experience almost instant responses to their requests when NGINX Plus serves the content from its cache.
Using NGINX Plus’s cache purging feature, Sqor Sports can configure the cache to immediately remove certain types of entries. This allows their developers to make changes while ensuring that the most recent content is served to clients.
> Powerful Load Balancing with Ease
After implementing NGINX Plus for content caching, Sqor Sports also implemented NGINX Plus for load balancing, which simplifies operations. “Once we made the decision to cache content with NGINX Plus, it made more sense to use all the features of NGINX Plus rather than dividing features up across other tools. It’s easier for our operations team to have one solution,” explains Vierling. “Also, NGINX Plus is a lot more configurable than our old load balancing solution, so we have a lot of choices and knobs we can tune that we didn’t have before.”
> Health Checks Provide Reliability
Sqor Sports uses NGINX Plus’ application health checks to ensure that its users don’t see error pages when servers fail or are taken down for maintenance.
“With our load balancer, we want to know that our servers are healthy. If they are not, we don’t want traffic to get sent to them. With health checks in NGINX Plus, we can verify that a server is healthy, and if it’s not for some reason – like if a machine has hardware problems or is just overloaded – we can easily stop routing traffic to it,” says Vierling.
> Flexibility for an Evolving Architecture
Sqor Sports’ architecture is evolving to handle the company’s rapid growth, and the flexibility of NGINX Plus is enabling the evolution. For example, to simplify operations the company is transitioning the backend from C# to 100% Erlang. The development team for web and mobile is transitioning to AngularJS because it generates HTML client‑side as opposed to server‑side, making the architecture more similar to the one already used by the Android and iPhone teams.
Their server‑side team will be rearchitecting even more components of their application and will need to seamlessly switch users over to the new systems as they come online. Sqor Sports will be using NGINX Plus to enable the switchover, without disrupting the user experience. Just by changing a few routing rules in the NGINX Plus config, Sqor Sports can quickly and easily reroute API calls to a different server.
“I’m an architect and engineer, so I spend most of my day designing or writing code and I don’t really get that involved in the details of some of the infrastructure things,” says Vierling. “But NGINX Plus is a technology that when you dive in, you see that there’s a lot of functionality here that you didn’t know about. If more people took the time to look at NGINX Plus in depth, they’d realize that this is a really incredible technology that can do things they weren’t even aware of. That was the case with us. NGINX Plus is a top‑notch, quality solution that solves problems really, really well.”
About Sqor Sports
Sqor Sports is a social media platform that provides engaging moments around sports for fans. The company focuses on real‑time access to people, content, and emotions and gives fans the freedom to talk sports.
Sqor Sports allows athletes to post videos and photos, chat, keep up‑to‑date on scores, news and other sporting activities.
Based in San Francisco and founded in 2013, Sqor Sports is a fast‑growing start‑up with over 2,000+ athletes on its platform and 650,000+ active users monthly. NFL Hall of Famer Brett Favre is a member of the Sqor Sports Board of Directors.