Thanks to Tony Bourke for the accompanying video:
What is a Cloud Application?
I just wrote a fairly long answer to ‘What is a Cloud Application?’ on Quora:
A cloud application is an application that runs on cloud services. That’s obvious I know, so the question is really ‘what are Cloud Services?’, or ‘what’s the difference between Cloud Services and an On-Premise Solution?’
You’ll sometimes hear the answer that ‘Cloud Services are IT services that are available over the public Internet’. It’s a bit more complicated than that though because that doesn’t take Private Cloud into account. Let me explain…
- Public Cloud is where an external provider offers cloud services to multiple customers.
- Private Cloud is where the cloud services are dedicated to a single customer. The infrastructure could be owned by the organisation themselves or by an external cloud provider.
- Hybrid Cloud is where the the consumer has a mix of Public and Private Cloud. Often they will start out with Private Cloud and then expand out to Public Cloud for additional scalability.
- On-demand usage: usage can be self-provisioned by the consumer and automated requiring no further work from the provider.
- Ubiquitous access: can be accessed from anywhere with any device.
- Multitenancy: services can be securely provided to multiple consumers over the same shared infrastructure.
- Elasticity: resources can be quickly scaled in or out on demand. Along with measured usage, this is a big selling point over traditional on-premises solutions.
- Measured usage: consumer’s resource usage can be tracked and billed. Consumer’s will typically have a manageable monthly OpEx cost rather than a large upfront CapEx cost.
- Resiliency: services can be automatically failed over to a redundant resource.
So you could have a Private Cloud solution that is owned and operated by the company using it, on their own premises. This differs from a traditional on-premise solution in that it has the characteristics above. The company’s internal departments can use self-service to order their own automatically provisioned services.
Cloud Delivery Models
The last main thing to discuss is the Cloud delivery models. The main difference between them is where the demarcation point between provider and consumer is. They build on top of each other, with IaaS providing the most control to the consumer.
- Infrastructure as a Service (IaaS): Consumers get access to the operating system desktop and can install their own applications. Amazon Web Services EC2, Microsoft Azure Virtual Machines and IBM Cloud are examples of IaaS.
- Platform as a Service (PaaS): Consumers get access to a pre-built environment, commonly used for software development and testing. Microsoft Azure Web Services and IBM Cloud are examples of PaaS.
- Software as a Service (SaaS): Consumers get access at the software level. Microsoft Office 365 and Salesforce.com are examples of SaaS.
Many of the terms here were originally defined in the NIST Definition of Cloud Computing
The Archimedius blog has regularly updated articles on the future of Cloud Computing