Cloud Deployment Toolkit

The project has been created. Please visit the project page.

Cloud Deployment Toolkit

The Cloud Deployment Toolkit (CDTK) project is a proposed open source project under the Eclipse Technology Project.

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the Eclipse community. Please send all feedback to the CDTK forum.

Background

Cloud computing is changing the Software Development Life-Cycle (SDLC) by allowing developers to rapidly provision systems and test new code on a fully functional clone of the target production environment. In order for the development process to use cloud effectively the environment provisioning and code deployment needs to be integrated in the IDE.

Cloud computing has three different Service Models as defined in the NIST Definition of Cloud Computing. Infrastructure as a Service (IaaS) is the Service Model that allows server platforms to be provisioned. Cloud IaaS is an emerging technology with many different implementations. These differences lead to inefficiences in the development process as teams need to learn to interact with each cloud functions without an abstraction to facilitate the deployment process across each IaaS cloud.

The Cloud Deployment Toolkit will provide this abstraction allowing developers to use the same workflow to provision resources across multiple providers. This will allieviate IT management concerns that applications will become locked in to a specific IaaS platform.

Scope

The objectives of the Cloud Deployment Tool kit (CDTK) are:

  • Allow architects to define and share system specifications in an abstract format.
  • Allow developers to easily manage, share, and clone IaaS cloud infrastructures.
  • Allow developers to easily deploy code to IaaS cloud infrastructures.
  • Provide reports on IaaS resource utilization for IT management.
  • Allow developers to easily share reports on IaaS resource utilization.
  • Provide integration with application server code deployment plugins.
  • Provide integration with debugger plugins.
  • Provide integration with testing and performance tool plugins.

Description

The Cloud Deployment Toolkit provides an abstraction to multiple IaaS cloud platforms allowing developers to create and work with a full clone of the production environment. They can test code changes for both functionality and performance speeding up the development process.

Through the reporting module developers can provide IT management with resource usage and associated costs. By integrating this with performance analysis tools production operating costs can be accurately modeled.

Initial Contribution

With the CDTK we are looking at building on foundation libraries to handle the interface abstraction to the IaaS infrastructure. Projects under consideration are jclouds and the Dasein Cloud API. The project communities are represented on the project by Adrian Cole and George Reese respectively.

For the abstraction to define the IaaS system architecture the project team will evaluate and consieder existing similar mechanisms including OVF (Open Virtualization Format) 1.1 from the DMTF (Distributed Management Task Force) , the OCCI (Open Cloud Computing Interface) Infrastructure Model from the OGF (Open Grid Forum), and the Libvirt XML Format.

Relationship to Other Eclipse Projects

g-Eclipse is an existing Eclipse project that has its roots in grid computing. We believe the Cloud Deployment Toolkit (CDTK) is a similar but complementary approach to g-Eclipse. CDTK is focused on providing an abstraction to multiple IaaS platforms and a pluggable architecture for integration with other Eclipse tool projects.

A discussion with the g-Eclipse project team will continue in more detail at EclipseCon -- timing TBD -- for all interested parties to consider potential code re-use and project integration.

Legal Issues

Committers

The following individuals are proposed as initial committers to the project:

  • Mike Mayo, Rackspace Hosting - proposed project lead
  • George Reese, enStratus
  • Adrian Cole, jclouds
  • Wade Minter, Rackspace Hosting
  • Max Andersen, Red Hat
  • Michael Neale, Red Hat
  • Rob Stryker, Red Hat
  • Roy Ganor, Zend
  • Kenn Hussey, Cloudsmith
  • Henrik Lindberg, Cloudsmith
  • Thomas Hallgren, Cloudsmith
  • Michal Rûžička, Cloudsmith

Mentors

The following Architecture Council members will mentor this project:

  • Gunnar Wagenknecht
  • Chris Aniszczyk

Interested Parties

The following individuals, organisations, companies and projects have expressed interest in this project:

  • Basil Hashem, Aptana
  • Bret Piatt, Rackspace Hosting
  • Bob McWhirter, Red Hat
  • Andi Gutmans, Zend Technologies

Project Scheduling

2010-03 v0.1: Preview release for EclipseCon
2010-06 v0.2: Functional release with IaaS provisioning
2010-09 v0.3: Stable IaaS provisioning, functional IT management reporting
2011-01 v0.5: Stable IT management reporting
2011-03 v0.6: Functional framework for interaction with other plugins
2011-05 v0.8: Stable framework for interaction with other plugins
2011-09 v1.0: Stable complete plugin with support for a majority of IaaS cloud platforms

Changes to this Document

Date Change
20-December-2009 Document created
20-February-2010 Draft revision based on feedback from project team
02-March-2010 Added Roy Ganor to project team. Clarified bullet points in the scope section. Added projects to the initial contribution section.
11-March-2011 Added Basil Hashem as an interested party. Added OVF, OCCI, and Libvirt evaluation to initial contribution section.
19-March-2011 Added mentors.