While the word Internet has been one of the most important computer terms in recent history, there has not been another term as attractive as “cloud computing.” Today, this term could be representing the next biggest trend in the information technology industry. This article will explain some of the basic ideas behind the cloud computing phenomenon—a concept that might change the way we understand the computing process.
Defining the Cloud
There are several definitions of cloud computing. The basic notion of cloud computing refers to the technology infrastructure model that enables several types of computing tasks to be performed over a network. The network can be a local area network or a wide area network like the Internet. The network will depend on the type of cloud—a private or public cloud computing service. A cloud computing infrastructure is composed of several types of hardware components (servers, storage systems, network components, etc.), software application components (programs, services, protocols, etc.), and information—the basic component of a cloud (Figure 1.).
Figure 1. A cloud platform is able to provide many computing services
If we consider the technological components previously mentioned, it’s evident that many are used to perform an organization’s daily tasks. Currently networks, servers, applications, and other technology tools are used to develop much of the computing processes in an organization. So, what is the difference between a traditional computing model and a cloud infrastructure?
While a traditional computing model infrastructure is based on resources such as hardware components (servers, storage devices or applications like enterprise resource planning [ERP], customer relationship management [CRM], and others), and business information, a cloud computing model infrastructure is based on services. This approach is different: in a traditional computing model all resources interact and affect the general infrastructure whereas the service oriented architecture (SOA) of a cloud computing model creates a more natural separation between two main layers. One is formed by the technology within the cloud infrastructure (computing hardware and applications) and the other is formed by information resources. Services can be configured, provisioned, or escalated internally without end user intervention or awareness. In a traditional computing system, it is more difficult to achieve the separation between the technical infrastructure and the functional infrastructure of the computing module (Figure 2.)
Figure 2. Cloud architecture enables clear separation between technology infrastructure and information infrastructure, based on services
Cloud Computing General Architecture
To achieve functional and technical separation, a cloud computing system relies on some basic architecture components:
First, most cloud computing infrastructures are divided into three main parts (see Figure 3):
• The Technology Architecture: This is the first layer of the cloud platform (servers, operating systems, network devices, etc.)
• The Application Architecture: This is part of the functional layer and it’s formed by all business applications under the cloud computing platform.
• The Information Architecture: This layer enables information to be available from anywhere in the cloud, and guarantees that the information will be secure, consistent, and reliable.
Figure 3. Basic cloud computing architecture
Based on the previous architecture scheme, a cloud computing platform is able to provide
• a fully independent infrastructure that is hidden from the final user;
• a fully scalable platform that is able to increase resources without any awareness from the end user; and
• a cost saving platform for an organization, which reduces maintenance costs.
Cloud Computing General Features
To achieve the previous goals mentioned, a cloud computing platform needs to have some general features. There are still some divergences regarding all the features a cloud platform needs to have or which are crucial. The following is a shortlist of basic elemental features a cloud computing platform needs to have:
• Network Access: Network access is crucial for a cloud platform to operate. This network access has to be provided with any intervention from the final user.
• Measured Service: This feature makes a cloud computing platform interesting from an economical point of view. A service provided by a cloud platform is used “on-demand”, which makes it possible to use a pay- as-you-go (PAG) or utility service. You can pay your service based on a fix rate or based on other factors like the number of users, usage (time), and so on.
• Elasticity: This means rapid scalability. Resources (hardware and software) are provided without any intervention or awareness from the final user side. This is all based on consumption demand.
• Resource Pooling: In a cloud computing platform, all resources are pooled. This means that all resources serve multiple users by using methods to use resources both virtual and physical—depending on the demand. In this case, the concept of virtualization has great relevance in order to achieve this goal. The resource pooling capability is available because of the multitenant design of a cloud computing platform.
As we mentioned previously, the resource pooling capability of a cloud computing platform often resides in multi-tenant architecture. Multi-tenancy means that a computing resource can be used by more than one consumer. Resources such as storage, processing, memory, applications, and others can be shared between different consumers. These consumers can be located in the same organization, or can be from totally different companies.
To achieve multi-tenant capabilities, some technologies like virtualization, isolation, segmentation, and governance are necessary. Multi-tenancy gives a cloud computing platform cost advantages because all resources can be shared, which enable companies to save time, money, and human resources (HR) (Figure 4.).
Figure 4. Multi-tenancy
Cloud Service Models
Now that we defined the basics of a cloud computing platform and how it works, let’s check how a cloud computing platform can be used to provide end users with computing resources. A cloud platform can deliver many types of services through a network. Based on the services that it provides, it can classify the type of delivery or service model we are using (Figure 5):
• Infrastructure as a Service (IaaS): A consumer is provided with computing resources such as processing, storage, and networking in order to run operating systems and applications as required. Users don’t control the cloud infrastructure but can control operating systems and many types of applications.
• Platform as a Service (PaaS): Users are provided with the ability to deploy commercial applications or in-house created applications supported by a provider. Users have control over deployed applications but not over other infrastructure components such as storage or processing.
• Software as a Service (SaaS): The user is able to use the software application from the provider. This application is running under a cloud computing platform over the network, and generally is available through a network interface such as a Web browser. The user doesn’t have control over any other resource but the application itself. And the control over the application consists basically in a set of configuration options to personalize the application for the client.
Figure 5. IaaS, PaaS, and SaaS service models
Types of Clouds
Now, cloud services can be also categorized based on the way they are deployed. So, a cloud platform infrastructure can be deployed as a public, private, or hybrid cloud.
• Public Cloud: A public cloud enables general access to all organizations. Public clouds enable organizations to transfer capital costs to operational costs. Public clouds are formed by organizations dedicated to selling cloud-based services.
• Private Cloud: The cloud infrastructure is created and deployed only for a single organization. It could be managed by the same organization or by a third party. Private clouds requires from a company not only to assume operational costs but also capital costs.
• Hybrid Clouds: These types of clouds combine the features of public and private clouds and deliver a single cloud solution. Using these types of cloud platforms enable organizations to delegate tasks with specific security or other concerns to a private cloud while letting all public operations to the public cloud segment.
Benefits and concerns of cloud computing platforms:
The Cloud Providers
Provided this basic information regarding a cloud computing platform, here are some of the most important cloud providers
Despite the hype for cloud computing related technologies and services, we have to be aware that as with any other new or old technology, it is always important to address the specific needs of an organization in order to get the best cloud computing services. This is just a jumpstart to a deeper and thoughtful consideration to what could be the real benefits of heading your computing resources to the cloud.
When considering the using the “cloud,” it’s necessary to assess a complete risk and maturity study within the organization in order to decide if a cloud related adventure is needed. It’s important to establish an evaluation strategy to assess the benefits and drawbacks of deploying any type of cloud service for your organization in terms of security, data manipulation, and technical (hardware and software) capabilities of a vendor according to your organization’s needs. If the platform is not exploited at the top of its capabilities, it doesn’t matter which type of computing platform you organization may have, your organization could be losing money by not being able to take advantage of a full computing platform service.