Date post: | 19-May-2015 |
Category: |
Technology |
Upload: | bret-piatt |
View: | 1,796 times |
Download: | 0 times |
Cloud Deployment ToolkitHow the cloud reaches your IDE
Bret PiattRackspace Hosting
Historical Background
of software deployment
Evolution of software deployment
Pushing around a cartfull of punch cards
Single click deployment to a cloud over a global network
Mainframe EraDevelopment done on a centralsystem preventing version issuesfor libraries and other applicationcomponents.
Slow development process asdepartments needed to time-sharefor access to terminals or directdata loading resources.
Benefits: Development and production environment consistency
Drawbacks: Slow development, limited access to resources
Client/Server EraDevelopment speed increases asportions of the application can bewritten and tested on distributedsystems.
Client/Server and client systemversion compatibility issuesintroduced.
Benefits: More rapid development
Drawbacks: System version compatibility issues introduced
Internet PC EraDevelopment speed continuesto increase with easy accessto libraries and better developmenttools allowing more developers towork on the same project together.
Version compatibility issues become more complex as the OS,libraries, and other dependentapplications proliferate.
Benefits: Application development is faster than ever before
Drawbacks: Compatibility becomes a nightmare
Internet Mobile EraThousands of OS versions andsystem form factors exist now.Developing an application for anysingle platform is very easy.
Building an application to work on allmay require complete re-writes.Browser based applications have thepotential to neutralize this.
Benefits: Single platform development is easier than ever
Drawbacks: Compatibility now requires many full re-writes of an application
How do we fix the growing complexity?
Portable platforms such as the JVMInfrastructure automation and flexibility through cloudIDE integration through tools such as the Cloud Deployment Toolkit in EclipseA standardized way to define application infrastructure
Overview of Cloud Computing
Base definitions of Cloud ComputingEssential Characteristics
On-demand Self-serviceBroad Network AccessResource Pooling Rapid ElasticityMeasured Service
Service ModelsSoftware as a ServicePlatform as a ServiceInfrastructure as a Service
Deployment ModelsPrivate CloudCommunity CloudPublic CloudHybrid Cloud
The promise of Cloud for a developerInstantly provision an environment that has the
proper stack to run any given application.
Turning "the world" upside downWe 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!
Open Source Is Leading CloudInteroperability
LibvirtPick a hypervisor, any hypervisor
jcloudsLike Java, like many clouds?
Dasein Cloud APIDream of all the clouds being the same?
Platforms, libraries, and specificationsDeltacloud
Link virtualization & cloud
LibcloudWrite once, use many clouds
Rackspace Cloud APIsSpecs any provider can use
Cloud Deployment Toolkithttp://www.eclipse.org/proposals/cdtk/
Allow deployment through a single plugin to multiple IaaS..
With plans to support all additional IaaS APIs as available..
Cloud Deployment Toolkit
Connecting your IDE to the cloud
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
Who is helping the project today?
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 IDEHelp define a common IaaS specification data exchange between pluginsProvide integration with application server code deployment pluginsProvide integration with debugger pluginsProvide integration with testing and performance tool plugins
Easy integration into IDE workflowDefine 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 theconfiguration dataautomatically savingdevelopers the manualentry.
Define an environment in XMLList out number and type of servers, versions of OS, network and storage configuration, etc..
When ready to use, build createsServers 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..
Reports provide costs for accountingInstance Report
NameSizeOSBandwidthCost
Should other information beincluded?
Should other reports be created?
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
Questions?
Ask on the project forum linked through the proposal at:
http://www.eclipse.org/proposals/cdtk/
Twitter: @[email protected]