Introduction to cloud computing
Introduction to cloud computing
“Cloud Computing” is a collective term for a way to access computing resources.
Cloud Computing typically has the following characteristics:
- Computing resources are owned and made available to you as a service by a provider.
- Computing resources are located out of your sight and may be far from where you are.
- You access the resources using web interfaces, APIs and protocols over the internet.
- Providers use virtualization to obtain multi-tenancy; i.e. the same hardware is shared by multiple customers.
- You pay for the resources you use, and/or the capacity you reserve.
- You can dynamically scale your usage of cloud resources up and down.
Benefits of Cloud Computing
Cloud Computing provides anyone with access to computing resources. The customer does not need to invest capital in expensive servers, networking equipment, storage media, or a computer room. Cloud users can start small and scale up dynamically as their business grows, without guessing how much capacity they will need in the future. Resources can be acquired for temporary needs, and released when they are no longer required.
By utilizing cloud services, a customer offloads a lot of concerns (completely or partially) to the cloud provider:
- computer room/data center construction and operation
- hardware procurement, installation and maintenance
- software installation, configuration and maintenance
- performance optimization
The cloud provider, offering the same services to many customers, can achieve economies of scale and deliver these services to the customer with higher performance and uptime, at lower cost. Furthermore, cloud providers may offer services that would take a lot of resources for the customer to build. In sum, this allows the customer to focus on their core business.
Types of Cloud Services
Cloud services are typically divided into three layers of abstraction: Infrastructure, Platform and Software. These terms are not very precise, so we’ll explain them here.
Software as a service (SaaS)
Software as a Service (SaaS) means end-user applications delivered over the internet. Examples are GMail, Office 365, and countless more.
Infrastructure as a Service (IaaS)
Infrastructure as a Service (IaaS) is basically virtualized hardware. The physical hardware is located in some data center and operated by the provider. Virtualization technology makes computing resources available to the customer over the internet. Resources include not only compute servers but also storage, networking and possibly other types of hardware.
Platform as a Service (PaaS)
A Platform is software that is not an end-user application, but a useful building block for application development. Platforms provide a domain-specific abstraction for performing a specialized task. For example, a relational database is a piece of software that provides a higher abstraction layer (typically SQL) than a computer’s operating system (files and folders) for performing the task of organizing, storing and retrieving data - crucial to building applications.
When the platform is delivered as a service (PaaS), the provider takes care of running and maintaining the platform software on suitable hardware, and the customer relates only to the provided interface. This can free up the application developer from having to deal with machines, configuration, scaling, security etc.
A particular application (whether delivered as a service or not) may be built using any combination of IaaS and PaaS.