--- title: Deltacloud Roadmap extension: html filter: - markdown - outline --- # Deltacloud Roadmap The current roadmap is maintained in [teambox](https://teambox.com/projects/deltacloud/task_lists) 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](https://teambox.com/projects/deltacloud/task_lists)* 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][1]. Of course, the quickest way to get anything into Deltacloud is to [send us patches][2] — we will of course take patches for anything, regardless of whether they adress items on the roadmap or anything else. [1]: /contribute.html [2]: /contribute.html ## 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](http://markmc.fedorapeople.org/rhevm-api/en-US/html/index.html). 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