Cloud Computing
Cloud computing refers to a type of utility computing provided by various organizations running data centres. These organizations needed to make their resources available to customers. Customers would request computational tasks, storage, and other resources, which would be charged on a per-use and/or per-resource basis. The main feature of cloud computing is that the resources provided are easily accessible through virtualization. Virtual resources are versions, or emulations, of the original resource, and not the original resource itself. Virtualization offers users transparency in that when they use the virtual resource, it appears to the user as the original resource. For instance, virtual memory refers to physical storage, such as a disk, that is used by an application as memory, although physical memory is not used. When a program accesses virtual memory, in reality it is reading a disk. As another example, a specific operating system may offer a virtualization layer so that users can transparently work with and execute commands from a completely different operating system. In this case, the original operating is emulating, or providing a virtual version of, the new operating system. Other examples of virtualized resources include virtual storage, virtual processors for computing, and virtual machines, such as the programs that run Java bytecode. Virtualization has the benefit of offering programmers a simple, abstract view of applications, and reduces resource management difficulties, thereby allowing sharing of processes (running programs) and resources (van Steen & Tanenbaum, 2016).
The virtualized resources provided by cloud computing are easily modified and can be dynamically configured, thereby enabling scalability in which the system can grow or change depending on users’ needs, and users, in turn, can simply request more resources. Cloud computing typically implements a pay-per-use model, with services guaranteed by customized service level agreements (SLAs) (van Steen & Tanenbaum, 2016).
The organization of clouds systems consists of four layers:
- The hardware layer includes processors, routers, power systems, cooling systems, and other physical resources required to realize the system.
- In the infrastructure layer, virtualization techniques are employed to enable virtual resources such as storage, servers, and computing resources.
- Analogous to an “operating system” for cloud systems, the platform layer facilitates the development and deployment of applications that run on a cloud system. These tasks are carried out through vendor-specific application programming interface, or API, provided through the platform layer.
- The applications themselves run in the applications layer. Examples include suites of office software, word processors, spreadsheets, etc., as well as specialized applications (van Steen & Tanenbaum, 2016).
Cloud computing provides three main categories of services. Infrastructure-as-a-Service (IaaS) provides computing resources and is function of the hardware and infrastructure layers. Platform-as-a-Service (PaaS) allows users to employ hardware and software tools through cloud providers, and enables these users to develop and deploy systems “in the cloud” instead of on locally-available computing hardware. PaaS is implemented through the platform layer. Software-as-a-Service (SaaS) allows users to execute computing tasks and to run applications, and is therefore implemented in the applications layer (van Steen & Tanenbaum, 2016).