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.
3. Evolution of software deployment
Pushing around a cart Single click deployment to a
full of punch cards cloud over a global network
4. Mainframe Era
Development done on a central
system preventing version issues
for libraries and other application
components.
Slow development process as
departments needed to time-share
for access to terminals or direct
data loading resources.
Benefits: Development and production environment
consistency
Drawbacks: Slow development, limited access to resources
5. Client/Server Era
Development speed increases as
portions of the application can be
written and tested on distributed
systems.
Client/Server and client system
version compatibility issues
introduced.
Benefits: More rapid development
Drawbacks: System version compatibility issues introduced
6. Internet PC Era
Development speed continues
to increase with easy access
to libraries and better development
tools allowing more developers to
work on the same project together.
Version compatibility issues
become more complex as the OS,
libraries, and other dependent
applications proliferate.
Benefits: Application development is faster than ever before
Drawbacks: Compatibility becomes a nightmare
7. Internet Mobile Era
Thousands of OS versions and
system form factors exist now.
Developing an application for any
single platform is very easy.
Building an application to work on all
may require complete re-writes.
Browser based applications have the
potential to neutralize this.
Benefits: Single platform development is easier than ever
Drawbacks: Compatibility now requires many full re-writes
of an application
8. How do we fix the growing complexity?
Portable platforms such as
the JVM
Infrastructure automation
and flexibility through cloud
IDE integration through tools
such as the Cloud
Deployment Toolkit in
Eclipse
A standardized way to
define application
infrastructure
10. Base definitions of Cloud Computing
Essential Characteristics
On-demand Self-service
Broad Network Access
Resource Pooling
Rapid Elasticity
Measured Service
Service Models
Software as a Service
Platform as a Service
Infrastructure as a Service
Deployment Models
Private Cloud
Community Cloud
Public Cloud
Hybrid Cloud
11. The promise of Cloud for a developer
Instantly provision an environment that has the
proper stack to run any given application.
12. Turning "the world" upside down
We used to bring the data to the application....
....now we need to bring the application to the data!
5GB takes 7 minutes on a 100Mbps network..
5TB takes 12 hours on a 1Gbps network..
5PB takes a truck ... or 52 days on a 10Gbps network!
14. Platforms, libraries, and specifications
Deltacloud Libvirt
Link virtualization & cloud Pick a hypervisor, any hypervisor
Libcloud
Write once, use many clouds
jclouds
Like Java, like many clouds?
Rackspace Cloud APIs Dasein Cloud API
Specs any provider can use Dream of all the clouds being the same?
15. Cloud Deployment Toolkit
http://www.eclipse.org/proposals/cdtk/
Allow deployment through a single plugin to multiple IaaS..
With plans to support all additional IaaS APIs as available..
17. What is the Cloud Deployment Toolkit?
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.
Design Build Deploy Test
19. What is the relationship with 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.
Tie in to other development tools in the IDE
Help define a common IaaS specification data exchange
between plugins
Provide integration with application server code deployment
plugins
Provide integration with debugger plugins
Provide integration with testing and performance tool plugins
20. Easy integration into IDE workflow
Define the deployment
environment in XML as the input
format for CDTK.
After CDTK creates the
infrastructure it will add the live
system details in a data
exchange format to share with
other plugins.
Other plugins accept the
configuration data
automatically saving
developers the manual
entry.
21. Define an environment in XML
List out number and type of servers, versions of OS, network
and storage configuration, etc..
22. When ready to use, build creates
Servers are listed for easy right click use by other plugins..
Full lists can also be exported to other plugins to install and
configure software, deploy application code, and more..
23. Reports provide costs for accounting
Instance Report
Name
Size
OS
Bandwidth
Cost
Should other
information be
included?
Should other
reports be
created?
24. How can I help?
Contribute feedback and
suggestions to the project forum
Work on the project directly with
code, documentation, etc..
Spread the word about the project
to your fellow developers
Talk to your company about cloud
computing and how it can help
your development process
25. Questions?
Ask on the project forum linked through the proposal at:
http://www.eclipse.org/proposals/cdtk/
Twitter: @bpiatt
bret.piatt@rackspace.com