Once you start running a Flow application from multiple web servers you need to figure out where and how to store all the file uploads, documents and other assets. Setting up an NFS share as a common file base is possible but often cumbersome and, let's face it, so nineties. You really want to store all your persistent resources in the cloud and, as a bonus, use a content delivery network for high speed and reliable access by your users.
Store Content and Deliver Content
There are basically two scenarios we need to cover:
- instead of using the local file system (./Data/Persistent/Resources), we'd like to transparently store all "persistent resources" in a cloud location
- instead of publishing resources to the local file system (./Web/_Resources), we'll want to publish them to the cloud and use a URI provided by the CDN or cloud storage
These scenarios have been in the back of my mind from the beginning when I started designing the resource management in Flow. The plumbing is there, but it lacks the actual implementation and a few adjustments to really store and publish content to the cloud.
Make it Happen
These days I'm working on related parts in the Flow core. I will create a first prototype which can upload resources to Rackspace CloudFiles and use its publishing mechanism.
There's only so much time I can spend with it out of curiosity, so I won't be able to make this generic and polished enough for the common case. Unless … you need this for your own Flow or Neos project! Do you want to store resources in Amazon S3? Or use Akamai as a CDN? Get in touch with me if you need some cloud-resource functionality and have a budget for it.
Which cloud and multi-server features are on your wish list?