Q3 2015 - Q4 2015

Traffic growth

Traffic has continued to rise; we've gone from 2 million requests and 900 gigabits per second at the end of August 2015 to 2.5 million requests and 1.3 terabits per second as of today. We are honored that new and existing customers continue to entrust more of their traffic to us.

Point of presence (POP) expansion

Our POP in São Paulo, Brazil is finally live after our heroic data center team wrestled with bureaucracy, logistics, and, in one memorable occasion, an actual water buffalo (it’s a long story and we can’t talk about it until all the court cases have been settled).

We’ve also added two new Australian POPs. The first is in Brisbane, affectionately known as Brissy, or Bris-Vegas. The second is in Perth, which, as the capital of Western Australia, holds the twin honors of being both the most isolated and the sunniest capital city in the world. (Although Honolulu also claims it’s the most isolated.) Perth also has the highest number of self-made millionaires per capita in any city in the world.

So now you know.

Feature releases

As well as the usual performance improvements, long term projects (more coming soon) and preparations for the end of the year, we've also rolled out some new features:

Implement std.time()

We’ve added a VCL function which is essentially equivalent to std.time() from Varnish upstream. It converts a string to a time. The API is:

TIME time(STRING s, TIME fallback)

If conversion fails, fallback will be returned.

It supports all the formats upstream std.time() supports, except ISO 8601:

"Sun, 06 Nov 1994 08:49:37 GMT"
"Sunday, 06-Nov-94 08:49:37 GMT"
"Sun Nov 6 08:49:37 1994"

For example, you can do something like:

if (std.time(resp.http.last-modified, now) < now - 1w) {


} >

Read more in our docs.

Provide an std.integer2time function

This VCL function does exactly what you’d expect it to — turn an integer (epoch seconds) into a VCL TIME object. The API is:

TIME integer2time(INT time)

For example, you can do something like:

if (time.is_after(now, std.integer2time(std.atoi("218448601")))) {


Read more in our docs.

Seeded randomness

At Fastly we’ve had various randomness functions in VCL for some time, and we’ve now enabled one of these functions to be “seeded,” allowing users to control the level of randomness. It is identical to randombool, except it takes an additional parameter, which is used to seed the random number generator.

It should be noted: this does not use secure random numbers and should not be used for cryptographic purposes.

The API is:

BOOL randombool_seeded(INT numerator, INT denominator, INT seed)

For example, you can do something like:

set req.http.My-HMAC = digest.hmac_sha256("sekrit", req.http.X-Token);

set req.http.HMAC-Chopped = regsub(req.http.my-hmac, "^(..........).*$","\1");

if (randombool_seeded(5,100,std.strtol(req.http.hmac-chopped ,16))) {

set req.http.X-Allowed = "true";

} else {

set req.http.X-Allowed = "false";


Read more in our docs.

Better URL introspection

In our quest to prevent you from having to do parsing using regular expressions, we’ve implemented some functionality to allow you to get the dirname (the directory) and the basename (the filename) for a URL.

For example, with the URL http://www.example.com/some/path/index.html, you can apply the functions like this:

set req.http.X-Basename = req.url.basename; # X-Basename is now index.html

set bereq.http.X-Dirname = bereq.url.dirname; # X-Dirname is now /some/path

Read more in our docs.

Regular expression matches

As mentioned above, while we strive to free you from regular expression-based parsing, we realize how useful regexes are. So we’ve added some functionality that lets you capture the matches from them:

set req.http.Foo = “abbbccccc”;

if (req.http.Foo ~ "^(a+)(b+)(c+)") {

set resp.http.match0 = re.group.1; # now equals ‘a’

set resp.http.match1 = re.group.2; # now equals ‘bbb’

set resp.http.match2 = re.group.3; # now equals ‘cccccc’


Read more in our docs.

Drupal 8 plugin

Drupal powers content management for 12.2% of the top 100,000 websites worldwide, including whitehouse.gov, Weather.com, Pinterest, NBCUniversal, Tesla, Pfizer, MLS, NBA, the GRAMMYs, the Emmys, and Harvard. We’re pleased to announce we’ve partnered with the Drupal Association, helping them reduce page load times and deliver downloads in advance of the Drupal 8 release. (Read more about the migration on their blog.) Our Drupal 7 plugin makes it easy to integrate Fastly with your Drupal site. Our team is working to ensure end-to-end compatibility with Drupal 8 caching and Fastly’s surrogate keys — more on this in Q1’16!

HLS Timed Metadata Injection

Fastly’s Timed Metadata Injection (ID3 tags) feature provides a flexible and dynamic way to embed custom metadata about the stream into video segments at specified time instances. These metadata injections are useful in a variety of scenarios, like signaling a video player to start ad breaks, disable player controls, beacon performance and engagement measurements, and give contextual metadata about what’s currently being played, etc. This feature is currently available for HLS streaming format due to its adoption for streaming videos to a wide variety of platforms and devices.

If you’re interested in Video-on-Demand, Streaming Media, or DASH, please get in contact with sales@fastly.com.

New Support Plans and Professional Services Packages

We strive to make onboarding, implementation, and maintenance of your service as easy as possible. When needed, our amazing Customer Engineering team is on deck to help customers move even faster. As we grow and customer needs diversify, we want to have the right plans in place.

Every customer is still automatically covered by our Standard Support Plan, free of charge. That’s the part of the Fastly service which gives you access to help, documentation, our Community Forum and online support system. If you have more complex requirements, you can now upgrade to our Gold Support Plan for priority routing and additional coverage. Our Platinum Support Plan offers the highest level of support, including  24/7/365 phone support, expedited response times, and dedicated account management.

For customers requiring technical expertise during setup and integration, hands-on training or consultation services on Fastly, Varnish, VCL, or site performance optimization, we have Professional Services packages to meet your needs.

If you’re interested, please contact sales@fastly.com.

Origin Peering

Origin Peering (OP) is a way for Fastly customers to reduce their bandwidth costs by moving origin-pull traffic away from transit or peering to a dedicated Fastly network connection. This is achieved by installing one or more 10G private network interconnects (PNI) with our customers in physical locations where we both have POPs (currently we support IAD and SJC, with more locations in the coming months). This provides our customers with at least one dedicated physical path (with dedicated bandwidth) from their chosen shield POP(s) to their origin, from which we would normally pull their content. The customer will route this traffic to Fastly over a standard BGP session. The Origin Peering product does not apply to certain partners or Internet exchange point peers, where our standard peering policy applies.

If you’re interested, please contact sales@fastly.com.

Bug Fixes

  • We’ve improved our loop detection algorithm to allow customers to use other customers as origins. This is useful when a customer needs, say, an Image Processing service like Resrc.it or Imgix (both of whom are customers of ours).

  • We’ve fixed a bug where an Expires header of “Thu, 1 Jan 1970 00:00:00 GMT” would be considered invalid.

Community update


Q3-Q4 is conference season for us, so our engineering team has been on the road. Highlights include:

  • Google Next Paris and Tel Aviv, where CTO Tyler McMullen discussed performance-driven scalability and Fastly’s Cloud Accelerator.

  • Strange Loop, a multidisciplinary conference that brings together the developers and thinkers building tomorrow’s technology. Fastly Engineers Ines Sombra and Devon O’Dell both gave talks.

  • Surge, a practitioner-oriented conference featuring some of the most established professionals in the Ops field. Both VP of Technology Hooman Beheshti and Engineer Nathan Taylor gave talks.

  • GOTO London, an agile and software development conference. Fastly engineer Ines Sombra keynoted.

  • All Things Open, an open source-oriented conference where Fastly UX Engineer Jade Applegate spoke about secure design.

  • OSCON EU, where the open source community gathers to celebrate achievements, spark new ideas, and map the future of open computing through collaboration, education, and connecting people with technology. Fastly Engineer Devon O’Dell spoke.

  • Velocity EU, where VP of Technology Hooman Beheshti spoke.

  • QCon San Francisco, a practitioner-driven conference for technical team leads, architects, engineering directors, and project managers who influence innovation in their teams. Fastly Engineer Ines Sombra and CTO Tyler McMullen spoke.

Check out our events page to keep track of which conferences we’ve been to and which ones we’ll be attending in the coming months.

Open source projects we’re supporting

We’re continuing our efforts to support open source projects by donating our services. Here are some projects that have recently started using Fastly:

If you have an open source project that could use Fastly services, please reach out to community@fastly.com. Want to chat with Fastly engineers and other customers using our product? Check out our Community Forum.

Ready to get started?

Get in touch or create an account.