Introducing Fastly Staging Environment: Test with Confidence, Deploy with Ease
Available today, Fastly's Staging Environment lets you test your CDN and Compute configurations effortlessly – with just a click – before they go live. Gain peace of mind with complete confidence in your deployments, ensure flawless performance, and save time troubleshooting.
How did we get here?
When Fastly launched, way back in 2011, one of the guiding principles was "instant", and still is.
At the time, with other CDNs, updating content could take hours unless you paid extra for a limited number of "Fast Purges" that could be done in minutes. Even now, it's taken over 10 years since we wrote a blog post describing exactly how we wrote our purge system for another CDN to even get close.
Logs and metrics were FTP'd to you once every 24 hours (not FTPS or SFTP, just plain ol' insecure FTP), and deploying a configuration change for your CDN could take hours which made every change risky because you wouldn't know if anything had gone wrong and you couldn't fix it if had. This is why every Fastly deployment has been versioned. When a change was pushed to production it was locked immutably in our database so our customers, or us if necessary, could roll back in seconds.
And this worked incredibly well for over a decade. Customers were delighted with the power and flexibility it gave them. Much like the seminal DevOps presentation by John Allspaw and Paul Hammond from Velocity 2009 "10+ Deploys Per Day: Dev and Ops Cooperation at Flickr" the ability to make lots of rapid changes kept our customers safe since each change was easy to reason about, easy to test in isolation and easy to rollback in case something went wrong or, more often, fix and roll forward.
Customers built us into their CI/CD pipelines and architectures - they used Chef and Terraform or custom API hooks. They built feature flag systems into our Edge Scripting and did Canarying and Gradual Rollouts.
But we started to get requests for us to provide a built-in staging environment - often from very large customers who rely on Fastly for very big events, major promotions, product launches, and more.
What is Fastly’s Staging Environment?
When it came to how we wanted to build staging - one thing was clear, we didn’t want to limit testing to staging PoPs or a separate staging network. We wanted our Staging Environment to be as close to the Production Environment as possible so that when you test you're not testing in different regions on different hardware with different latencies.
In accordance with our guiding principle of “instant”, we wanted everything to work without you, our dear customers, having to change anything.
No staging domains (unless you want it), service pinning, region compliance, PCI, TLS certificates, DDoS protection… everything should just work.
And so that's what we've released - everything just works. Behind the scenes, there's a lot of work - but upfront you just hit the "stage" button (or call the API or run the CLI command) and it all happens for you. No code changes needed, no if (staging) { … }
in your code.
Soon you'll be able to do Canary deployments (aka Green/Blue deployments or Gradual Rollout) where you slowly migrate live customers over to a new version.
As always everything we've built is part of our platform philosophy - we build the components and the components let us, and you, build more things on top of the platform.
Gain peace of mind, ensure flawless performance, and save time troubleshooting by using Fastly’s Staging Environment today. Learn more in our documentation and reach out to a Fastly representative to get it enabled today!
As always, if you have any questions, suggestions, feature requests or comments feel free to reach out.