Orbit is our highly available and durable object storage service. All Cloud Server and Cloud SQL snapshots are stored in Orbit, but it can be used directly via a HTTP API for storage of data.
Orbit is based on the excellent OpenStack Swift project and we’ve recently rolled out some updates that improve performance and add a few new features and other improvements too:
There have been lots of performance improvements in many areas, but the most noticeable is a 30% decrease in container lookup latency. If you have large containers containing many objects you’ll notice a speedup in lookup times.
And due to some networking improvements, we can now serve object data up to 22% faster. If you’re building servers from large snapshots you should definitely see the gains there.
Orbit has always allowed you to setup versioning of objects, so that overwriting an object causes the original object to be copied to a separate archive container and deleting of an object restored the previous archived version.
With these updates, Orbit now supports “history mode” versioning so that deleting an object no longer restores the previous version and instead archives the current object and deletes it from the primary container. This makes versioning act more like a back-up system, so that deleted objects are better preserved.
Combine this with separate access controls for your archive containers and you have a good backup solution for your object data.
Temporary URLs allows the creation of a special URL that points to a specific object and allows reads and/or writes to it for a limited amount of time without requiring authentication credentials. This is perfect for when you want to control access to objects via a separate application but still want Orbit to handle the serving of the objects.
Temporary URLs used to require an account-wide key, which made it difficult to separate access between different applications using the same account. With these updates, you can now set per-container keys.
And Temporary URLs can now be created with a prefix, allowing access to multiple objects with one URL - useful for providing temporary access to a whole sub-path within a container.
Orbit supports server-side copying of objects, allowing you to copy and move data around without having to download and re-upload. And now you can do do these server-side copies of between accounts.
If you’d rather avoid making a full copy (and avoid the associated storage costs) you can now symlink objects between containers and even between accounts which just creates a “pointer” to the original data.
Domain remapping is now supported, so you can point your own domains at Orbit and requests will be rewritten to the root of your container - making it easy to serve static sites directly from Orbit without cluttering the URLs with your account and container names. This is currently HTTP-only but we’re working on a solution for HTTPS domain remapping so watch this space.
And as ever, Orbit runs on our entirely UK owned and operated infrastructure, stores three copies of each object stored on separate storage devices replicated across two separate datacentres. Data is encrypted in-flight and at-rest on disk.
You can read and write data to Orbit containers using the standard OpenStack Swift HTTP API, any number of libraries (Ruby, Node, PHP etc), the Swift CLI tool or even the simple SFTP service. Anything that can use OpenStack Swift can use Orbit!
The Swift API is well supported but we know that the S3 API has become a strong defacto standard for storage systems over the last few years, particularly in the Kubernetes world. We’ve now laid the foundation for providing an S3-compatible API for Orbit, so you can expect that within the next few weeks.
You can sign up for Brightbox Cloud in just a couple of minutes and use your £20 free credit to play with Orbit. Give it a go!