Deltacloud Roadmap
The current roadmap is maintained in teambox where anybody can comment on tasks, and suggest new features.
Ye olde roadmap
This list is no longer maintained. It's only here for historical purposes. To see the current roadmap, go to teambox
This page lists the items we are currently working on for the next release, and a longer list of items we will address after the next release, roughly in order of priority.
If you have anything you'd like to see added to the roadmap, or think that some items should receive more attention, please let us know on the mailing list. Of course, the quickest way to get anything into Deltacloud is to send us patches — we will of course take patches for anything, regardless of whether they adress items on the roadmap or anything else.
Next release
This release will happen in mid to late January 2011. We very much hope to include all the items below, but might have to defer some of them, depending on the progress we make (and the amount of patches we receive)
- Upload/creation of blobs: the
/buckets
collection allows downloading blobs stored within buckets, but not yet creating and uploading them. The big challenge here is streaming the content to be uploaded to the backend cloud. - Update Apache Website: mostly housekeeping to make sure the information on the site is accurate, and to update the documentation on the site
- Capabilities for introspection: provide a lot more information to clients about what each driver actually supports; for example, this makes it possible for clients to discover if the driver supports rebooting instances
- RHEV-M driver: RHEV-M has a new, shiny, and very nice, REST API. The RHEV-M driver needs to be rewritten to take advantage of that.
- Formal API docs: A document that describes, in great detail, each possible call in the API, parameters, results, errors, etc.
- Load balancers: Add a new toplevel collection that can be used to manage load balancers in clouds that allow that (e.g., EC2)
- Runtime driver selection: So far, the driver to use is selected when you start the Deltacloud server; this becomes very unwieldy with clouds that offer multiple endpoints/regions, and with internal clouds. We'll make it possible to select the driver, and the API endpoint that the server uses through HTTP headers
- Store blobs in tempfile by default: Rack doesn't have a universal way
to stream blobs, either for upload or download; the only Rack conformant
way to deal with large objects is to store them in temporary files -
we'll make that the default, and add proper streaming for some of the
more popular servers (most likely
thin
for now) - Rewritten EC2 driver: the current EC2 driver depends on too many API-wrapper gems; a rewrite will make sure we only use one gem (AWS) for it
- Launch multiple instances with one call: The API right now allows only creating single instances. For clouds that support it, the API should allow launching many instances in one operation.
- Remote command execution: Add a way to log into an instance and run a commend there as one API call
- Clarify shutdown semantics: the various drivers are a little squishy on whether shutting down means a clean ACPI shutdown or yanking the (virtual) power chord out of the instance
- Create images from uploaded bits: Allow posting to the
/images
collection so that bits in appropriate storage can be designated as images
Backlog
These are items we think we'll work on in future releases. There is no guarantee that we will actually wind up doing that — listing them here simply means that they seem like a good idea today. The list is roughly in the order in which we think the items should be addressed, with the most pressing ones at the top of the list.
- Dev guide/tutorials: documentation to make it easier for people to get started using Deltacloud
- Report password on instance creation (Rackspace): in Rackspace, you get a random root password when you create an insatnce, and it is only sent at instance creation.
- File injection (Rackspace): support direct injection of files into the instance
- Create image from running server: in many clouds, that's the only way to create images. Support a magic call that sets the machinery to freeze a running instance into an image in motion
- Driver for Google storage
- Improve streaming support for blobs: stream uploads; probably need to
support streaming for more than just
thin
(torquebox ? passenger ?) - Partial Upload: several storage services allow uploading and downloading ranges of a blob, often also in parallel. Add that feature to Deltaclouds storage API
- Billing info: define a model and API calls to represent billing information and the billing model of the cloud. The aim is to make it possible for clients to find out how much and why they are being charged for current resource usage, and to enable them to make what if computations. Since none of the public clouds support that, needs to be done carefully in conjunction with some of the open-source players, especially RHEV-M
- Attach EBS: attach block storage to instances in EC2
- Formal testing against live clouds: run the test suite against each cloud we support on a regular basis
- vCloud driver: full support for VMWare's vCloud so we can talk to these private clouds
- Stateful instances: the API is very much focussed on stateless instances (with a couple of exceptions) Cleanly define handling stateless and stateful side-by-side
- IP address mgmt: another toplevel collection to represent the IP addresses your account owns/has access to
- Apply public IP(s) to server: support things like EC2's elastic IP
- Manage password lists: some clouds allow predefining a list of passwords and then applying them to instances. Support managing these lists
- technology compatibility kit: a test suite that can be run against an implementation of the Deltacloud API and report on any problems with the API implementation
- Firewalls: there are a couple very different models out there how instances can be firewalled from the rest of the cloud and from the internet at large. Support defining and manging firewall rules and applying them to instances
- Public Deltacloud instances: it would be nice for testing etc. to have a few Deltacloud instances running at a well-known address
- Spot instances: Support EC2's auction-based way of running instances
- Reserved instances: Support EC2's preallocated instances
- Bare-metal servers: some clouds also manage physical bare-metal servers
- Text/graphical console: As much as possible, make it possible for clients to open an interactive console; this is very speculative, and not possible in most clouds
- Console logs: access whatever logs the backend cloud API produces for an instance through Deltacloud
- IBM cloud driver
- NTT cloud driver
- Monitoring (Cloudwatch)
- Error reporting: clean up forwarding of backend errors
- Account creation/registration: make it possible to create an account in various backend clouds through Deltacloud