Cloud Computing Elements: Resource Pools/Cloud Models and Services

Now that you have a context for the types of cloud environments, it’s important to understand the common elements required to make clouds functional. In this section, we give you the basics of what you need to know. Figure 1-1 illustrates the related elements that come together to create clouds. On the bottom of the diagram is a set of resource pools that feed a set of cloud delivery services. On the top of the diagram are the common service elements needed to support these delivery models.

Figure 1-1: How the cloud elements fit together.

9781118235003-fg0101.eps

One of the fundamental differences between cloud computing and traditional computing is the way a cloud is designed to manage workload resources. Managing workloads is foundational to the cloud. For more details on workload management, you may want to read Chapter 12. Whereas a data center is designed to manage applications, a cloud is intended to manage a pool of resources, which is precisely what it sounds like — a set of shared, configured services that are independent of a physical location. In many situations, cloud service providers create a multi-tenant environment to support the deployment of these resources. Multi-tenancy enables the sharing of a service while keeping the data and configurations of individual customers separate.

For example, say that you are a cloud provider. You don’t want your customers to have to select one specific server or one storage system for their workloads or data. Instead, you want the customers to be abstracted from that idea so that they can simply say, “I need some more storage” and those storage resources are pooled together from various physical systems to create a set of resources. In other words, customers don’t need to know which storage system they’re accessing. These shared resource pools are shown at the bottom of Figure 1-1.

tip.eps To make resource pooling work, each pooled element needs to be written with service-oriented constructs in mind. Consequently, each resource is written as an independent service without dependencies and with well-defined interfaces. For more details on service orientation, turn to Chapter 3.

Understanding the foundations of cloud computing calls for an understanding of the four different cloud delivery models:

check.png Software as a Service

check.png Platform as a Service

check.png Infrastructure as a Service

check.png Business Process as a Service

Part II has a chapter on each of these models, but here we cover the basics on the different cloud computing delivery models. These are illustrated as infrastructure services, platform services, and software services in Figure 1-1.

Infrastructure as a Service

Infrastructure as a Service (IaaS) is the delivery of services such as hardware, storage, networking, data center space, and various utility software elements on a request basis. There are both public and private versions of IaaS. In the public IaaS, the user simply needs a credit card to acquire these resources. When that user stops paying, the resource disappears. In a private IaaS service, it is usually the IT organization or an integrator who creates an infrastructure designed to provide resources on demand to internal users and sometimes business partners. Whereas criteria for a public cloud are based primarily on the ability to pay for a service, a private service applies company policy to a service request. IaaS is the fundamental element used by other cloud models. Some customers will bring their own tools and software to create applications. For more details on IaaS, turn to Chapter 5.

Platform as a Service

Platform as a Service (PaaS) is a mechanism for combining IaaS with an abstracted set of middleware services, software development, and deployment tools that allow the organization to have a consistent way to create and deploy applications on a cloud or on-premises environment. A PaaS offers a consistent set of programming and middleware services that ensure developers have a well-tested and well-integrated way to create applications in a cloud environment. A PaaS environment brings together development and deployment together to create a more manageable way to build and deploy applications. A PaaS requires an Infrastructure service. For more on PaaS, see Chapter 7.

Software as a Service

Software as a Service (SaaS) is a business application created and hosted by a provider in a multi-tenant model. Customers pay for the service either per user on a monthly or yearly contract model. The SaaS application sits on top of both a Platform as a Service and foundational Infrastructure services. Typically, these underlying services aren’t visible to end users of a SaaS application. To read more details on SaaS, turn to Chapter 6.

Business Process as a Service

In traditional computing environments, business processes are often built into the application. For example, there may be a payment service or a service that sets up a delivery service request. However, one of the benefits of the movement to cloud computing is that organizations can use cloud-based business process services across the organization. Standardizing on business process services reduces the chance of error and makes it easier for an organization to ensure that the right services are used for the right purpose. If your company is using only a few cloud services, you may wonder why you need to worry about business process services. However, because organizations will use more cloud services over time, business leaders will want the ability to move data among various cloud applications and data center services. So, having a plan for thinking about business process services from a cross-environment perspective will help streamline your organization’s movement toward cloud services. These BPaaS can become a revenue source for both cloud consumers and service providers.

Foundational services supporting cloud resource models

No matter what type of resource pool is involved, some core capabilities are essential in the cloud environment, including the following:

check.png Elasticity and self-service provisioning

check.png Billing and meters of service usage

check.png Workload management

These are referred to as foundational service elements in Figure 1-1.

Elasticity and self-service provisioning

One benefit of the cloud is that customers have the potential to access as much of a service as they need when they need it. If they need computing services for a month, they can rent that service for that time period. They don’t have to buy a system to handle the need. Although this potential clearly benefits customers, it makes life more complicated for providers of services. In the cloud, the service provider can’t know in advance what a customer might need at any given time. So, service providers (whether a public provider or a private cloud provider) must create an environment that can scale to support a diverse set of customer requirements. A provider of cloud services needs to design a platform architecture that is optimized for the service the company is providing. The platform must be designed so that the users/customers provision resources such as computing or storage resources that they pay for on a per-unit basis. When the user no longer needs that resource and stops paying, the resource is released back into the pool of resources.

warning_bomb.eps There are situations when a service provider can’t anticipate the needs of a customer. Therefore, it is common for a service provider to add additional capacity from a third-party service provider. Typically, the consumer is unaware that they are dealing with an additional cloud service provider.

Self-service is one of the most important capabilities of cloud computing. With self-service, the developer of an application, for example, is able to use a browser or portal interface to acquire the resources needed to build an application, which is dramatically different than how a developer works in a data center. In the traditional data center model, a developer must request resources from IT operations, which might require IT to acquire more servers and storage and to purchase the required software. At this point, the system has to be configured to meet the development project requirements. Assuming that the cloud service is designed to meet the required goal, the developer can avoid these complicated steps. We go into more detail about how cloud computing helps with software development in Chapter 7, which focuses on Platform as a Service.

Billing and metering services

A cloud service has to provide a way to measure and meter a service. Consequently, a cloud environment includes a built-in service that tracks how many resources a customer is using. Customers consuming public cloud resources will be charged for a unit of usage — whether that is a CPU hour or an amount of storage. Customers using software as a service will be charged for each registered user on a per-year basis. In a private cloud, employees probably won’t be charged directly, but usage will be tracked. In many companies, a department’s budget will be tied directly to the amount and type of services it uses.

Managing workloads

As we mention earlier in this chapter, a cloud isn’t a single unified environment; rather, it’s a combination of resources that could be spread across systems and geographies. The cloud is a federated environment that brings together resources so that they can work together. To make this happen in an organized manner requires an organization of workloads. A workload is an independent service or collection of code that can be executed. So, you need to think about the cloud as a group of workloads that are managed as though they were a single cohesive environment. It is important in a cloud environment that workloads be designed to support the right task with the right cloud services. For example, some workloads will need to be placed in a private cloud because they require fast transaction management and a high level of security. Other workloads may not be so mission critical and can be placed in a public cloud.

When organizations begin thinking about cloud computing as a strategy, they must do more than simply go to a public or private resource and leverage those services. Like any computing environment, cloud computing requires that workloads be balanced and managed, regardless of the resource pool they’re based on. Within a well-designed cloud environment, workloads can move among resource pools in different cloud environments. Because, in the real world, you will use a combination of services, it’s important to think not just about an individual workload but also about a combination of workloads and how they interact with each other and with collaborators.

Management services

Many other management services are mandatory for ensuring that cloud computing is a well-managed platform that supports customer needs, including ensuring that a variety of workloads are supported in the right way. This is the case no matter what the cloud deployment and delivery model. Some core services are illustrated at the top of Figure 1-1. Security and governance are key services to ensure that your applications and data are protected. Data management in a hybrid environment is also critical since data will be moving between cloud environments. Moreover, the right level of service must be provided to meet consumer requirements. This is the case regardless of whether you’re dealing with a public, private, or hybrid model. That’s why hybrid cloud management and monitoring is so important. Finally, since various services will need to be integrated in a hybrid cloud, the interfaces between clouds are also important.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.106.150