Case Study

With 37 GB daily traffic, 700 KB full metadata web-font hosting and surging popularity, Brick depends on Linode's bandwidth, processing power and reliability

Brick is an open-source web-font service that emphasizes rendering quality fonts and font features over that of compressed-for-fast-downloads web-fonts whose rendering quality and typographical details were – at best – deemed unimportant.

Alfred Xing started developing Brick in late 2013, when he became dissatisfied with the imprecise rendering of web-fonts peddled by Google Fonts (the rendering was especially bad on Windows). The symbols looked jagged, had many artifacts, and did not maintain typographic features extant in the original, uncompressed fonts, including kerning and ligatures.

This deficiency prompted Xing to begin hosting the full-feature fonts he used on his sites. Soon, he recognized that developing a high-end web-font service would solve the issue in a more efficient manner not just for his purposes, but for others who were also looking for a similar solution.

Xing launched Brick in March of 2014 with a post on Hacker News (https://news.ycombinator.im/item?id=7406287).

Challenge

To expedite downloads of large web-font files, to process CSS @font-face rule generation instantly, and to ensure peace of mind that Brick was readily and constantly available.

Solution

Enlist Linode's SSD servers with Intel E5 processors, 40 Gbps redundant network and 99.99 percent uptime.

Results

Latency reduced more than 40 percent. Bandwidth has enabled 133-percent increase in daily requests. Network easily handles 37 GB daily traffic. Customized stylesheets quickly generated.

"Being hosted on Linode also means Brick's users know they can rely on the service to be up," founder Alfred Xing.

Situation:

The immediate popularity of Brick forced Xing to plan a migration from the shared-hosting on which Brick originated to virtual private servers.

Today, Brick handles more than 700,000 requests each day (~ 37GB of traffic). In its first year, Brick has served more than 200 million requests (almost 10TB) for its exacting, WOFF-compressed copies of the original webfonts, converted without modification to various formats for a better typographical experience. Demand continues to grow.

Challenge:

Brick serves webfonts with full metadata and without subsetting. Consequently, most files are large (ranging from 20KB to 700KB, with the majority on the high end). As a result, Xing sought a cloud host that could satisfy three primary infrastructure criteria. First, the infrastructure had to accommodate high throughput. Second, to quickly generate CSS @font-face rules on-the-fly, sufficient CPU power was a must. Third and most importantly, Brick needed a host with a reliable network. "We needed the peace of mind that our service would be running smoothly all the time, with minimal disruptions," said Xing.

Besides the necessary infrastructure, Brick preferred a cloud service provider that was "reputable and well-known” for its responsive customer support and affordability (this last being of signal importance to a revenue-free, open-source application developer).

"I knew that Brick needed to run on a host and network. This would provide the speed and reliability we were looking for, and friendly support for when we needed it.".

Solution:

"Linode's combination of speed (SSD, large 40Gb network) and reliability (large provider with lots of experience and 99.99 percent uptime) met our criteria perfectly."

Linode's infrastructure and track record convinced Xing it would expertly handle the load. A subsequent offer from Linode to sponsor the open-source project's server - removing the obligation of even a $10 per month fee - made Xing's decision even easier.

Consequently, Xing migrated Brick from its original, local, shared host to Linode's 40 Gb network with SSD servers, Intel E-5 processors, doubled RAM, guaranteed uptime, and 11 years of experience as a cloud host.

Results:

Brick's popularity grew rapidly throughout spring and early summer 2014. When Buffer (https://blog.bufferapp.im/), a social-media management app, started using Brick at the end of July, traffic more than doubled in terms of both requests and bandwidth (from 300,000 requests to 700,000, and from 10GB to 30GB bandwidth).

Shared hosting could not have handled this load spike despite Brick's CDN, Fastly, absorbing most of the traffic. The spike, easily handled by Linode's origin server, would have necessitated Brick moving to a more expensive (and thus unaffordable), higher-capacity plan on shared hosting – or being suspended by its initial shared-host for exceeding use limits of its lower tier plan.

Linode's infrastructure has allowed Brick to scale to the size it is today. With "dramatically” accelerated download speed, Brick users experienced less latency (from 350 ms to under 200 ms) per request, a 43 percent improvement. Based on a subsequent benchmark run by Brick of 100,000 sequential requests to the PHP script, CSS generation time dropped by more than a factor of 7 (from 32.4 to 4.4 seconds).

"Being hosted on Linode also means Brick's users know they can rely on the service to be up," said Xing.