What makes an application cloud-enabled?

Registered by Mathias Gug

What makes an application enabled for the Ubuntu Entreprise Cloud? How to port an application to the cloud?
What kind of services should be provided by the cloud infrastructure to the cloud-enabled applications?

deployment, configuration management, data store, authentication, authorization, access control, accounting and monitoring, audition and logging

Blueprint information

Status:
Not started
Approver:
Rick Clark
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
Drafting
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

Couple of points:
a) Cloud is about elasticity and multi-tenancy. There are also other defining characteristics - pl see http://doubleclix.wordpress.com/2009/04/13/six-essential-traits-of-a-cloud-infrastructure-or-how-to-define-a-cloud-without-defining-it/
b) The three currently accepted cloud forms are IaaS,PaaS and SaaS. The capabilities required by an application depends on what application type one is talking about
c) There is also the added dimension of public/private and intercloud types - pl see my presentation at http://federalcloudcomputing.wik.is/@api/deki/files/38/=Cisco_-2009-03-23_SATCCI__D.pdf for some details.

The reason I am adding these notes is because, we need to look at applications from these dimensions and then explore the requirements for each type of application - for example authC and authZ are valid for SaaS while elasticity and multi-tenancy would be applicable for all types.

=================
Discussion from UDS Karmic

= Cloud Enabled Applications =

https://blueprints.edge.launchpad.net/ubuntu/+spec/server-karmic-cloud-enabled-application

What makes an application enabled for the Ubuntu Entreprise Cloud? How to port an application to the cloud?
What kind of services should be provided by the cloud infrastructure to the cloud-enabled applications?

deployment, configuration management, data store, authentication, authorization, access control, accounting and monitoring, audition and logging

 * Brainstorming session about cloud applications.

 * Application should be able to run on multiple instances in the cloud.
  * For example: session information should be available to multiple instances.
  * My application can take advantage of x number of instances.
  * Cloud optimized set of applications has great value.

 * How would you expand a service, such as Apache, that uses block level storage.
  * Use S3 because it scales.

 * Define what the Cloud is?

 * Cloud aware application features.
  * For Example: Should monitoring be in the application, or use the cloud monitoring.

 * What services should be made available to software developers.
  * Storage
  * SQL?
  * Memcache

 * Messaging system to synchronize between instances.
  * RabbitMQ possible solution.

 * Central cloud logging service.
  * Individual applications can take advantage of.

 * Cloud monitoring service provided to applications.
  * Could add a billing system based on the monitoring system.

 * Enable users to provide services for the cloud to each other.

 * Which services need to be global to the cloud and which should be run per instance.

 * Services won't necessarily be for web based applications.
  * Applications shouldn't be taylored to a specific cloud API.

 * Probably won't need to scale private cloud storage as far as S3.
=================

(?)

Work Items