Cloud computing represents a model for the provision of IT resources where computing infrastructure is hosted by a third-party provider that offers speed, reliability, scalability and ubiquitous presence for the client. The advantage for businesses is that they no longer need to invest in implementing and maintaining their own hardware solutions to provide computer services but rather pay a subscription fee to the provider for the resources they use. Providers of cloud computing services also benefit from economies of scale by delivering the same services to a large number of customers.
Cloud computing applications can be broken down into three main types of service delivery models:
• Infrastructure as a Service (IaaS) – infrastructure refers to the basic building blocks of computing resources, that is, the physical devices that provide storage, processing and networking elements. The advantage for clients of having their infrastructure outsourced to the cloud is that they no longer need to invest in new hardware on-going maintenance costs are reduced significantly. Cloud providers also offer service level guarantees than ensure their computing function is always available.
• Software as a Service (SaaS) – just as the hardware element of a computing function is outsourced to a cloud provider, so is the software that runs on it. This is the dominant cloud computing model that most users interact with. Clients no longer have to concern themselves with buying licenses, managing updates and ensuring they have sufficient hardware and bandwidth to run the software applications that they require. They simply pay a monthly fee for the number of users they require and the rest is taken care of by the cloud provider. These applications are typically delivered through the internet so are available to the client wherever there is an internet connection providing considerable flexibility.
• Platform as a Service (PaaS) – this is used by companies that are involved in developing software. The cloud provider offers a complete development environment based on the underlying network, storage and servers that is provided through their SaaS offering. This environment can include software development tools, compilers, test beds, database management and operating systems as required for the development project and is wholly maintained and managed by the cloud provider.
Using cloud services makes companies much more flexible and agile; they can test out ideas and implementations without having to purchase hardware and software or create computing environments that might become redundant. The ability to create new services or software for users without the time and effort that would be required in a traditional IT environment is the main benefit of cloud computing applications.