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.
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.