Layers of Cloud Computing

 The three layers

Cloud computing is a general term for anything that involves delivering hosted services over the Internet. These services are broadly divided into three categories:
  • Infrastructure-as-a-Service (IaaS)
  • Platform-as-a-Service (PaaS)
  • Software-as-a-Service (SaaS).

The name “cloud computing” was inspired by the cloud symbol that was often used to represent the Internet in flow charts and diagrams.
Fig. 3.2/1: Layers of cloud computing
Fig. 3.2/1: Layers of cloud computing

Lets examine these three layers

Fig. 3.2/2: Layers of CC
Fig. 3.2/2: Layers of CC

 Infrastructure as a Service (IaaS)

_
The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications; and possibly limited control of select networking components (e.g., host firewalls).
For IaaS, the Cloud Provider acquires the physical computing resources underlying the service, including the servers, networks, storage and hosting infrastructure. The Cloud Provider runs the cloud software necessary to makes computing resources available to the IaaS Cloud Consumer through a set of service interfaces and computing resource abstractions, such as virtual machines and virtual network interfaces.
The IaaS Cloud Consumer in turn uses these computing resources, such as a virtual computer, for their fundamental computing needs Compared to SaaS and PaaS Cloud Consumers, an IaaS Cloud Consumer has access to more fundamental forms of computing resources and thus has more control over the more software components in an application stack, including the OS and network. The IaaS Cloud Provider, on the other hand, has control over the physical hardware and cloud software that makes the provisioning of these infrastructure services possible, for example, the physical servers, network equipments, storage devices, host OS and hypervisors for virtualization.
A Cloud Provider’s activities can be described in five major areas: service deployment, service orchestration, cloud service management, security, and privacy.

 Platform as a Service (PaaS)

_
The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment.
For PaaS, the Cloud Provider manages the computing infrastructure for the platform and runs the cloud software that provides the components of the platform, such as runtime software execution stack, databases, and other middleware components. The PaaS Cloud Provider typically also supports the development, deployment and management process of the PaaS Cloud Consumer by providing tools such as integrated development environments (IDEs), development version of cloud software, software development kits (SDKs), deployment and management tools. The PaaS Cloud Consumer has control over the applications and possibly some the hosting environment settings, but has no or limited access to the infrastructure underlying the platform such as network, servers, operating systems (OS), or storage.
Fig. 3.2/3
Fig. 3.2/3

Using a PaaS model

Using a platform-as-a-service (PaaS) model lets organizations standardize processes, lower costs, and realize faster time to value. An end-to-end PaaS environment can provide the following key advantages:
  • Reduce lead time for launching new applications.
  • Provide flexibility to support both cloud-centric or cloud-enabled workloads.
  • Enable developers to easily build, deploy, and manage cloud applications while using services and frameworks that are available in a cloud environment.
  • Capture changing trends in elastic cloud environment.
  • Take advantage of built-in operational and business support services for applications.

Business approach to cloud computing

Cloud computing represents a business transformation rather than an IT transformation. Trends, such as how to best use social media and mobile computing and the pressure to innovate and think differently, are pushing traditional IT delivery approaches to the breaking point. Today’s businesses need to be agile in order to develop and deploy applications dynamically to meet both market and client needs. Platform as a service (PaaS) provides cloud services that can help you get agile business applications to market quicker and scale those applications as per market needs.
According to the National Institute of Standards and Technology (NIST), a PaaS cloud provides a toolkit for conveniently developing, deploying, and administering application software. A PaaS cloud is structured to support large numbers of subscribers, process very large quantities of data, and potentially be accessed from any point in the Internet. PaaS clouds typically provide a set of software building blocks and a set of development tools, such as programming languages, and support runtime environments that facilitate the construction of high-quality, scalable applications. Using a PaaS cloud environment can give your organization economics and speed, while maintaining the ability to differentiate services at the application layer.
By changing how business and society run, cloud computing has opened up huge avenues of innovation. Developers are combining systems of record with systems of engagement, and a new style of cloud-based applications is emerging, where mobile, social, analytics, and cloud systems work together to address a business challenge in an agile way. For these applications to work together without much investment and to be sustainable, cloud computing needs to be built upon open standards on a software defined infrastructure.
Developing and deploying solutions with a PaaS cloud provides clear benefits, but you also need to develop proper security for cloud implementations. In addition to the typical challenges of developing secure IT systems, cloud computing presents an added level of risk. Essential services are often outsourced to a third party in cloud environments. The “externalized” aspect of outsourcing makes it more difficult to maintain data integrity and privacy to support data and service availability, and to demonstrate compliance.
IBM® has defined the Cloud Computing Reference Architecture (CCRA) based on years of experience of working with customers who have implemented cloud computing solutions. IBM CCRA is a blueprint for designing cloud computing implementations that is driven by functional and nonfunctional requirements (NFRs) collected from many cloud computing implementations. IBM CCRA provides guidelines and technical work products, such as service and deployment models. It defines the overarching implementations as adoption patterns. An adoption pattern embodies the architecture patterns that represent the ways organizations are implementing cloud computing solutions. An adoption pattern can help guide the definition and set up of your cloud computing solution.
The adoption pattern for the PaaS cloud as defined by the CCRA contains prescriptive guidance about how to design, implement, and deploy a PaaS cloud solution from both a cloud-enabled and a cloud-centric perspective. It also defines the core requirements for the PaaS cloud and provides guidance about adding new capabilities as needed. The adoption pattern at present contains three macro patterns that each address a specific realm of business need for a PaaS cloud solution. This modular approach allows the extension of a PaaS cloud solution to add new capabilities and components as needed. A PaaS cloud adoption pattern covers the categories of cloud computing services that facilitate developing and deploying applications using a set of middleware and integrated services.
Features of the PaaS macro patterns
The PaaS macro patterns include the following features:
  • Middleware deployment and management
    This feature is focused on elastic services and applications platform capabilities. Virtual application patterns allow you to monitor and manage applications for performance. You can model and implement middleware patterns, thus exposing them as services in a self-service catalog. You can then automate their deployment, monitor resource utilization, and perform lifecycle management of the middleware. These capabilities and more are provided as cloud services to develop cloud-centric applications. These applications offer a wide range of services that address the social, mobile, and big data analytics solutions in a cloud. Optionally, these features can enhance middleware management with capabilities for service level agreements (SLAs) and user-specified quality of service (QoS) through features, such as auto-scaling vertically and horizontally, workload throttling, fault detection and tolerance, high availability for unplanned failures, continuous availability for planned failures, and so on.
  • Application development and deployment
    This feature is focused on application lifecycle management (ALM) capabilities. Use cases allow you to streamline and reduce the cycle time of development, test, and time to production.
  • Cloud integration services
    These services are focused on application interfaces (APIs) for various service integrations across cloud environments that can be on or off premise. These services also include data center integration.

IBM integrated family of cloud technologies

With IBM’s broad and integrated family of cloud technologies, you can get a cloud application platform that is built to meet your unique requirements. You can develop and test application patterns on IBM SmartCloud® Application Services and then deploy applications with the following solutions:
  • BM PureApplication™ System allows you to use IBM PaaS in your private cloud with our expert integrated system of hardware and pattern-based deployment for private cloud application management. You can capture expertise with patterns that are ready to deploy and scale applications with policy-based automated scaling.
  • IBM Workload Deployer provides pattern-based deployment support to create, deploy, and manage application environments on your hardware in a private cloud.
  • IBM SmartCloud Enterprise/SoftLayer is the public infrastructure as a service (IaaS) available from IBM. IBM SmartCloud Application Services PaaS runs on, and automatically deploys virtual resources to, IBM SmartCloud Enterprise. You can use best-in-class open Java and PHP Hypertext Preprocessor (PHP) support, enjoy peace of mind with enterprise-class security, and reduce costs with pay-for-use metered pricing.
These solutions share IBM’s open cloud architecture, which is based upon innovation found in OpenStack. IBM has added functionality to its products to make its architecture a complete end-to-end cloud platform. IBM benefits from the unparalleled innovation found in open source communities such as OpenStack. Additionally, IBM benefits from the vibrant ecosystem of independent software vendor (ISV) partners that grow from these open source and open standards initiatives. IBM clients also benefit from the ability to take advantage of the open source and open standards APIs. IBM’s preconfigured middleware patterns and virtual resources make the deployment of applications fast and repeatable.

 Software as a Service (SaaS)

_
The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
For Software as a Service, the cloud provider deploys, configures, maintains and updates the operation of the software applications on a cloud infrastructure so that the services are provisioned at the expected service levels to cloud consumers. The provider of SaaS assumes most of the responsibilities in managing and controlling the applications and the infrastructure, while the cloud consumers have limited administrative control of the applications.

 Examples

  • IaaS – this is the raw compute environment – ex: Amazon Web Services, Rackspace
  • PaaS – middleware + business support services – someone can build on this platform and use the services as needed ex: Force.com, Google App Engine
  • SaaS – the application and there are thousands of them; most notably: Salesforce.com, Success Factors